2.0.3 • Published 3 days ago

@zanichelli/idp-login-topbar v2.0.3

Weekly downloads
-
License
ISC
Repository
bitbucket
Last release
3 days ago

IDP Login Component

Overview


Release Notes {#changelog}

v2.0.0

  • Added googleLogin prop for Google login

v1.4.21

  • Updated @zanichelli/zanichelli-appswitcher dependency to version ^1.1.3
  • Added tooltip to appswitcher button

v1.4.20

  • Updated css variables

v1.4.19

  • Added iss to LoginSuccess and UserLoaded events

v1.4.18

  • Updated @zanichelli/zanichelli-appswitcher dependency to version ^1.1.3
  • Updated @zanichelli/albe-web-components dependency to version ^9.0.0
  • Improved accessibility

v1.4.14

  • Added getUserInfo method
  • Added teachingGroups to LoginSuccess and UserLoaded events

v1.4.13

  • Updated @zanichelli/albe-web-components dependency to version ^7.1.1
  • Improved accessibility

v1.4.0

  • Introduces the zanichelli-appswitcher component. IMPORTANT: in order to use this component, you need at least version 6.5.1 of albe-web-components. To setup your idp-login component to show the appswitcher, you'll need to:
    • to show the appswitcher icon, add the attribute show-app-switcher and set it to true
    • to define the host that will identify your website, add the attribute current-host and set it to your host (eg. "my.zanichelli.it")

v1.3.0

  • New IdpLoginInline component

v1.2.0

  • Added regBackUrl prop for signUp url

v1.1.0

  • Updated @zanichelli/albe-web-components dependency to version ^4.0.2 || ^5 || ^6

v1.0.10

  • Updated "Attiva opera" URL
  • Fixed font import console error

v1.0.9

  • Fixed invalid myZanichelli URL used by showMyzLink

v1.0.8

  • Added showMyzLink prop - non braking change, default set to false

v1.0.6

  • Updated @zanichelli/albe-web-components dependency to version ^4

v1.0.5

  • Added userLoadedFail event

Installation {#installation}

Download the package running this command:

yarn add @zanichelli/idp-login-topbar

or import with jsDelivr or Unpkg in your html:

// using jsDelivr
<script type="module" src="https://cdn.jsdelivr.net/npm/@zanichelli/idp-login-topbar/dist/wc/idp-login-topbar/idp-login-topbar.esm.js"></script>

// using unpkg
<script type="module" src="https://unpkg.com/@zanichelli/idp-login-topbar"></script>

Albe Web Components dependency

This component requires Albe Web Components Library. You can install Albe via NPM

yarn add @zanichelli/albe-web-components

or include it in your app with script tag:

// using jsDelivr
<script type="module" src="https://cdn.jsdelivr.net/npm/@zanichelli/albe-web-components/dist/web-components-library/web-components-library.esm.js"></script>

// using unpkg
<script type="module" src="https://unpkg.com/@zanichelli/albe-web-components/dist/web-components-library/web-components-library.esm.js"></script>

You need to include stylesheet too:

// using jsDelivr
<link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@zanichelli/albe-web-components/www/build/web-components-library.css" />

// using unpkg
<link type="text/css" rel="stylesheet" href="https://unpkg.com/@zanichelli/albe-web-components/www/build/web-components-library.css" />

Usage {#usage}

Usage custom element

import { defineCustomElements as defineAlbeComponents, applyPolyfills } from '@zanichelli/albe-web-components/loader';
import { defineCustomElements as defineIdpTopbar } from '@zanichelli/idp-login-topbar/dist/wc/loader';

applyPolyfills().then(() => {
  defineAlbeComponents(window);
  defineIdpTopbar(window);
});

return <idp-login></idp-login>;

Usage React Bindings

import { IdpLogin } from '@zanichelli/idp-login-topbar/dist/react';

return <IdpLogin />;

Please refer to component documentation to see properties and events list

Components {#components}

Topbar with modal login form {#idp-login}

Custom element: <idp-login /> React binding: <IdpLogin />

Properties

Refer to section Enums and Types for "type" column details.

PropertyAttributeDescriptionTypeDefault
actionItemsaction-itemscustom actions menu list optionalMenuItem[] \| string[]
contentMaxWidthcontent-max-widthmaximum width of topbar contentnumberundefined
currentHostcurrent-hostcurrent host - enables handling last visited apps in appswitcherstringwindow.location.host
envenvenv: dev, test, prodenvType.dev \| envType.prod \| envType.testenvType.test
fixedModalfixed-modalfix the modal to open state optionalbooleanfalse
googleLogingoogle-logindisplay google login buttonbooleanfalse
logologoshow MyZanichelli logobooleantrue
menuItemsmenu-itemscustom dropdown menu items list optionalMenuItem[] \| string[]
modalOpenmodal-openmodal state trigger optionalbooleanfalse
regBackUrlreg-back-urlback Url for registration step optionalstringundefined
showAppSwitchershow-app-switcheradd app-switcherbooleantrue
showMyzLinkshow-myz-linkshow myZanichelli linkbooleanfalse
themethemetheme variant, default 'dark'ThemeVariant.DARK \| ThemeVariant.LIGHTThemeVariant.DARK
zainoDigitaleTargetUrlzaino-digitale-target-urlredirect url after ZD login optionalstringundefined
Events
EventDescriptionType
loginFailedemitted on login failCustomEvent<IdpException>
loginSuccessemitted on login successCustomEvent<{ token: string; teachingGroups?: TeachingGroup[]; }>
logoutFailedemitted on logout failCustomEvent<any>
logoutSuccessemitted on logout successCustomEvent<{ json: string; }>
userLoadedemitted when user data has loadedCustomEvent<{ e: User; teachingGroups?: TeachingGroup[]; }>
userLoadedFailemitted when user data loading has failed (user is not logged)CustomEvent<{ statusCode: number; }>
Methods
getUserInfo() => Promise<undefined | null | UserLoaded>

return current user data

Returns

Type: Promise<UserLoaded>

logout() => Promise<void>

logout current user

Returns

Type: Promise<void>

Inline login form {#idp-login-inline}

Custom element: <idp-login-inline /> React binding: <IdpLoginInline />

Properties

Refer to section Enums and Types for "type" column details.

PropertyAttributeDescriptionTypeDefault
envenvenv: dev, test, prodenvType.dev \| envType.prod \| envType.testenvType.test
googleLogingoogle-logindisplay google login buttonbooleanfalse
regBackUrlreg-back-urlback Url for registration stepstringundefined
signupButtonsignup-buttondisplay signup buttonbooleantrue
zainoDigitaleTargetUrlzaino-digitale-target-urlredirect url after ZD loginstringundefined
Events
EventDescriptionType
loginFailedemitted on login failCustomEvent<IdpException>
loginSuccessemitted on login successCustomEvent<{ token: string; teachingGroups?: TeachingGroup[]; }>

Enums and Types {#enums}

enum envType {
  dev = 'dev',
  test = 'test',
  prod = 'prod',
}

enum ThemeVariant {
  DARK = "dark",
  LIGHT = "light",
}

type MenuItem = {
  id: string;
  label: string;
  link?: string;
  icon?: string;
  target?: string;
  subMenu?: MenuItem[];
}

type LoginSuccess = {
  token: string;
}

type LogoutSuccess = {
  json: string;
}

type UserLoaded = {
  e: User;
  teachingGroups?: TeachingGroup[];
};

type TeachingGroup = {
  id: number;
  code: string;
  descr: string;
};

type User = {
  id: number;
  email: string;
  username: string;
  surname: string;
  name: string;
  myz: MyzUserData;
  roles: UserRole[];
  is_employee: boolean;
  is_myzanichelli: boolean;
  is_verified: boolean;
  last_activity_at: string;
  created_at: string;
  updated_at: string;
  attributes: [];
  iss: string;
};

type MyzUserData = {
  id: number;
  isConfirmed: boolean;
  isApproved: boolean;
  isAuthorizedByParent: boolean;
};

Support {#support}

if you encounter CORS issues, make sure Zanichelli IDP allows requests from your Origin

2.0.3

3 days ago

2.0.2

9 days ago

2.0.1

20 days ago

2.0.0

1 month ago

2.0.0-RC11

1 month ago

1.4.21

3 months ago

2.0.0-RC10

3 months ago

2.0.0-RC9

3 months ago

1.4.20

4 months ago

2.0.0-RC8

5 months ago

1.4.19

8 months ago

1.4.18

10 months ago

2.0.0-RC1

6 months ago

2.0.0-RC2

6 months ago

2.0.0-RC3

6 months ago

2.0.0-RC4

6 months ago

2.0.0-RC5

6 months ago

2.0.0-RC6

5 months ago

2.0.0-RC7

5 months ago

1.4.17

1 year ago

1.4.14-rc

1 year ago

1.4.16-RC2

1 year ago

1.4.16-RC1

1 year ago

1.4.14-RC5

1 year ago

1.4.14-RC4

1 year ago

1.4.14-RC3

1 year ago

1.4.14-RC2

1 year ago

1.4.13

1 year ago

1.4.15

1 year ago

1.4.14

1 year ago

1.4.16

1 year ago

1.4.13-RC-adv

1 year ago

1.2.0

1 year ago

1.4.6-RC8

1 year ago

1.0.5-rc.2

2 years ago

1.4.6-RC7

1 year ago

1.4.6-RC6

1 year ago

1.0.5-rc.1

2 years ago

1.4.4-RC1

1 year ago

1.1.0

2 years ago

1.4.6-rc-2

1 year ago

1.4.6-rc-3

1 year ago

1.4.6-rc-4

1 year ago

1.4.6-rc-5

1 year ago

1.4.4-rc

1 year ago

1.1.0-RC2

2 years ago

1.1.0-RC3

2 years ago

1.1.0-RC1

2 years ago

1.4.11

1 year ago

1.4.10

1 year ago

1.4.12

1 year ago

1.4.6

1 year ago

1.0.9

2 years ago

1.4.5-rc

1 year ago

1.4.4

1 year ago

1.0.8

2 years ago

1.4.3

1 year ago

1.0.7

2 years ago

1.4.2

1 year ago

1.0.6

2 years ago

1.4.1

1 year ago

1.0.5

2 years ago

1.0.4

2 years ago

1.3.0-RC1

1 year ago

1.3.0-RC2

1 year ago

1.4.12-rc1

1 year ago

1.5.0-RC1

1 year ago

1.5.0-RC3

1 year ago

1.5.0-RC2

1 year ago

1.4.10-RC

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.0-a1

2 years ago

1.2.0-a2

1 year ago

1.4.6-rc

1 year ago

1.5.0-RC4

1 year ago

1.3.0-peerTest

1 year ago

1.4.9

1 year ago

1.4.8

1 year ago

1.4.7

1 year ago

1.0.10

2 years ago

1.0.2

2 years ago

0.0.13-rc

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.0.3

2 years ago

1.0.3-zte-4472

2 years ago

0.0.13-rc5

2 years ago

0.0.13-rc4

2 years ago

0.0.13-rc6

2 years ago

0.0.13-rc1

2 years ago

0.0.13-rc2

2 years ago

0.0.14-rc5

2 years ago

0.0.14-rc4

2 years ago

0.0.14-rc3

2 years ago

0.0.14-rc2

2 years ago

0.0.14-rc1

2 years ago

0.0.15-rc7

2 years ago

0.0.15-rc6

2 years ago

0.0.15-rc1

2 years ago

0.0.15-rc3

2 years ago

0.0.15-rc2

2 years ago

0.0.15-rc5

2 years ago

0.0.15-rc4

2 years ago

0.0.15

2 years ago

0.0.16-rc

2 years ago

1.0.2-rc3

2 years ago

1.0.2-rc2

2 years ago

0.0.11

2 years ago

1.0.2-rc1

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.10

3 years ago

0.0.9-rc1

3 years ago

0.0.8-rc2

3 years ago

0.0.8-rc1

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.8-alpha

3 years ago

0.0.6-rc1

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5-oauth

3 years ago

0.0.5-rc1

3 years ago

0.0.5-rc

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago