verben-authentication-ui 1.0.12 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/auth-callback/auth-callback.component.mjs +57 -0
- package/esm2022/lib/components/auth-callback/auth-callback.module.mjs +18 -0
- package/esm2022/lib/components/button/button.component.mjs +46 -0
- package/esm2022/lib/components/button/button.module.mjs +20 -0
- package/esm2022/lib/components/forgot-password/ForgotPasswordData.mjs +2 -0
- package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +92 -0
- package/esm2022/lib/components/forgot-password/forgot-password.module.mjs +34 -0
- package/esm2022/lib/components/mail/mail.component.mjs +69 -0
- package/esm2022/lib/components/mail/mail.module.mjs +21 -0
- package/esm2022/lib/components/mail-validation/mail-validation.component.mjs +108 -0
- package/esm2022/lib/components/mail-validation/mail-validation.module.mjs +34 -0
- package/esm2022/lib/components/o-auth/o-auth.component.mjs +107 -0
- package/esm2022/lib/components/o-auth/o-auth.module.mjs +19 -0
- package/esm2022/lib/components/otp-input/otp-input.component.mjs +86 -0
- package/esm2022/lib/components/otp-input/otp-input.module.mjs +23 -0
- package/esm2022/lib/components/reset-password/ResetPasswordData.mjs +2 -0
- package/esm2022/lib/components/reset-password/reset-password.component.mjs +108 -0
- package/esm2022/lib/components/reset-password/reset-password.module.mjs +34 -0
- package/esm2022/lib/components/role-control/ChildrenType.mjs +6 -0
- package/esm2022/lib/components/role-control/MappedRole.mjs +2 -0
- package/esm2022/lib/components/role-control/MappedRoleAction.mjs +2 -0
- package/esm2022/lib/components/role-control/MappedRoleContext.mjs +2 -0
- package/esm2022/lib/components/role-control/UIActions.mjs +7 -0
- package/esm2022/lib/components/role-control/UIs.mjs +40 -0
- package/esm2022/lib/components/role-control/base-table-style.mjs +53 -0
- package/esm2022/lib/components/role-control/role-control.component.mjs +1608 -0
- package/esm2022/lib/components/role-control/role-control.module.mjs +18 -0
- package/esm2022/lib/components/role-control/role-control.service.mjs +54 -0
- package/esm2022/lib/components/sign-in/sign-in.component.mjs +318 -0
- package/esm2022/lib/components/sign-in/sign-in.module.mjs +24 -0
- package/esm2022/lib/components/sign-up/sign-up.component.mjs +229 -0
- package/esm2022/lib/components/sign-up/sign-up.module.mjs +24 -0
- package/esm2022/lib/components/sso/base-table-style.mjs +53 -0
- package/esm2022/lib/components/sso/helper.mjs +16 -0
- package/esm2022/lib/components/sso/sso-form/sso-form.component.mjs +74 -0
- package/esm2022/lib/components/sso/sso.columns.mjs +29 -0
- package/esm2022/lib/components/sso/sso.component.mjs +236 -0
- package/esm2022/lib/components/sso/sso.module.mjs +63 -0
- package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +209 -0
- package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +22 -0
- package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +90 -0
- package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +19 -0
- package/esm2022/lib/components/user-management/base-table-style.mjs +53 -0
- package/esm2022/lib/components/user-management/services/user-management.service.mjs +88 -0
- package/esm2022/lib/components/user-management/user-management-form/use-management-form.component.mjs +73 -0
- package/esm2022/lib/components/user-management/user-management.columns.mjs +53 -0
- package/esm2022/lib/components/user-management/user-management.component.mjs +536 -0
- package/esm2022/lib/components/user-management/user-management.module.mjs +85 -0
- package/esm2022/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +26 -0
- package/esm2022/lib/components/user-request/user-request.component.mjs +320 -0
- package/esm2022/lib/components/user-request/user-request.module.mjs +38 -0
- package/esm2022/lib/components/user-request-approval/access-request.columns.mjs +29 -0
- package/esm2022/lib/components/user-request-approval/base-table-style.mjs +53 -0
- package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +260 -0
- package/esm2022/lib/components/user-request-approval/helper.mjs +56 -0
- package/esm2022/lib/components/user-request-approval/services/user-access-request.service.mjs +93 -0
- package/esm2022/lib/components/user-request-approval/states/user-access-request.state.mjs +92 -0
- package/esm2022/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +26 -0
- package/esm2022/lib/components/user-request-approval/user-request-approval.component.mjs +271 -0
- package/esm2022/lib/components/user-request-approval/user-request-approval.module.mjs +83 -0
- package/esm2022/lib/components/user-request-approval/user-request-form/use-request-form.component.mjs +86 -0
- package/esm2022/lib/models/ApplicationRoleAction.mjs +2 -0
- package/esm2022/lib/models/ApplicationRoleContext.mjs +2 -0
- package/esm2022/lib/models/ErrorResponse.mjs +11 -0
- package/esm2022/lib/models/OAuthParam.mjs +2 -0
- package/esm2022/lib/models/OAuthType.mjs +9 -0
- package/esm2022/lib/models/PagedResult.mjs +2 -0
- package/esm2022/lib/models/PasswordRequestParam.mjs +2 -0
- package/esm2022/lib/models/PermissionConfig.mjs +2 -0
- package/esm2022/lib/models/ResponseKeyValue.mjs +2 -0
- package/esm2022/lib/models/Role.mjs +2 -0
- package/esm2022/lib/models/RoleAction.mjs +2 -0
- package/esm2022/lib/models/RoleContext.mjs +2 -0
- package/esm2022/lib/models/SearchDynamicWrapper.mjs +2 -0
- package/esm2022/lib/models/SearchOperator.mjs +6 -0
- package/esm2022/lib/models/SearchPropertySign.mjs +11 -0
- package/esm2022/lib/models/SearchPropertyValue.mjs +2 -0
- package/esm2022/lib/models/SearchPropertyValueType.mjs +11 -0
- package/esm2022/lib/models/SortDirection.mjs +7 -0
- package/esm2022/lib/models/Tag.mjs +2 -0
- package/esm2022/lib/models/TenantConfig.mjs +2 -0
- package/esm2022/lib/models/UserRequest.mjs +2 -0
- package/esm2022/lib/models/auth-mechanism.mjs +8 -0
- package/esm2022/lib/models/base.mjs +2 -0
- package/esm2022/lib/models/conditions.mjs +13 -0
- package/esm2022/lib/models/log-in.mjs +2 -0
- package/esm2022/lib/models/mainUser.mjs +2 -0
- package/esm2022/lib/models/oauth-resp.mjs +2 -0
- package/esm2022/lib/models/oauth-response.mjs +2 -0
- package/esm2022/lib/models/object-state.mjs +8 -0
- package/esm2022/lib/models/otpValue.mjs +2 -0
- package/esm2022/lib/models/paged.mjs +2 -0
- package/esm2022/lib/models/query-params.mjs +2 -0
- package/esm2022/lib/models/request-status.mjs +5 -0
- package/esm2022/lib/models/resend-otp-data.mjs +2 -0
- package/esm2022/lib/models/sign-up.mjs +2 -0
- package/esm2022/lib/models/single-sign-on.mjs +2 -0
- package/esm2022/lib/models/status.mjs +6 -0
- package/esm2022/lib/models/user-access-request-status.mjs +7 -0
- package/esm2022/lib/models/user-access-request.mjs +2 -0
- package/esm2022/lib/models/user.mjs +2 -0
- package/esm2022/lib/pipes/async-label.pipe.mjs +25 -0
- package/esm2022/lib/services/authorization.service.mjs +26 -0
- package/esm2022/lib/services/encryption.service.mjs +52 -0
- package/esm2022/lib/services/environment.service.mjs +26 -0
- package/esm2022/lib/services/http-web-request.service.mjs +85 -0
- package/esm2022/lib/services/label.service.mjs +134 -0
- package/esm2022/lib/services/util.service.mjs +55 -0
- package/esm2022/lib/shared/shared.module.mjs +84 -0
- package/esm2022/public-api.mjs +48 -0
- package/esm2022/verben-authentication-ui.mjs +5 -0
- package/fesm2022/verben-authentication-ui.mjs +6622 -0
- package/fesm2022/verben-authentication-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/auth-callback/auth-callback.component.d.ts +17 -0
- package/lib/components/auth-callback/auth-callback.module.d.ts +8 -0
- package/lib/components/button/button.component.d.ts +17 -0
- package/lib/components/button/button.module.d.ts +10 -0
- package/{src/lib/components/forgot-password/ForgotPasswordData.ts → lib/components/forgot-password/ForgotPasswordData.d.ts} +1 -1
- package/lib/components/forgot-password/forgot-password.component.d.ts +30 -0
- package/lib/components/forgot-password/forgot-password.module.d.ts +10 -0
- package/lib/components/mail/mail.component.d.ts +32 -0
- package/lib/components/mail/mail.module.d.ts +11 -0
- package/lib/components/mail-validation/mail-validation.component.d.ts +42 -0
- package/lib/components/mail-validation/mail-validation.module.d.ts +10 -0
- package/lib/components/o-auth/o-auth.component.d.ts +30 -0
- package/lib/components/o-auth/o-auth.module.d.ts +9 -0
- package/lib/components/otp-input/otp-input.component.d.ts +21 -0
- package/lib/components/otp-input/otp-input.module.d.ts +13 -0
- package/lib/components/reset-password/ResetPasswordData.d.ts +5 -0
- package/lib/components/reset-password/reset-password.component.d.ts +30 -0
- package/lib/components/reset-password/reset-password.module.d.ts +10 -0
- package/lib/components/role-control/ChildrenType.d.ts +4 -0
- package/{src/lib/components/role-control/MappedRole.ts → lib/components/role-control/MappedRole.d.ts} +2 -3
- package/{src/lib/components/role-control/MappedRoleAction.ts → lib/components/role-control/MappedRoleAction.d.ts} +1 -2
- package/{src/lib/components/role-control/MappedRoleContext.ts → lib/components/role-control/MappedRoleContext.d.ts} +3 -4
- package/lib/components/role-control/UIActions.d.ts +5 -0
- package/lib/components/role-control/UIs.d.ts +38 -0
- package/lib/components/role-control/base-table-style.d.ts +1 -0
- package/lib/components/role-control/role-control.component.d.ts +131 -0
- package/lib/components/role-control/role-control.module.d.ts +8 -0
- package/lib/components/role-control/role-control.service.d.ts +9 -0
- package/lib/components/sign-in/sign-in.component.d.ts +95 -0
- package/lib/components/sign-in/sign-in.module.d.ts +13 -0
- package/lib/components/sign-up/sign-up.component.d.ts +68 -0
- package/lib/components/sign-up/sign-up.module.d.ts +13 -0
- package/lib/components/sso/base-table-style.d.ts +1 -0
- package/lib/components/sso/helper.d.ts +2 -0
- package/lib/components/sso/sso-form/sso-form.component.d.ts +21 -0
- package/lib/components/sso/sso.columns.d.ts +3 -0
- package/lib/components/sso/sso.component.d.ts +54 -0
- package/lib/components/sso/sso.module.d.ts +11 -0
- package/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.d.ts +67 -0
- package/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.d.ts +12 -0
- package/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.d.ts +39 -0
- package/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.d.ts +9 -0
- package/lib/components/user-management/base-table-style.d.ts +1 -0
- package/lib/components/user-management/services/user-management.service.d.ts +44 -0
- package/lib/components/user-management/user-management-form/use-management-form.component.d.ts +24 -0
- package/lib/components/user-management/user-management.columns.d.ts +3 -0
- package/lib/components/user-management/user-management.component.d.ts +134 -0
- package/lib/components/user-management/user-management.module.d.ts +14 -0
- package/lib/components/user-management/user-status-badge/user-status-badge.component.d.ts +12 -0
- package/lib/components/user-request/user-request.component.d.ts +80 -0
- package/lib/components/user-request/user-request.module.d.ts +11 -0
- package/lib/components/user-request-approval/access-request.columns.d.ts +3 -0
- package/lib/components/user-request-approval/base-table-style.d.ts +1 -0
- package/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +39 -0
- package/lib/components/user-request-approval/helper.d.ts +7 -0
- package/lib/components/user-request-approval/services/user-access-request.service.d.ts +65 -0
- package/lib/components/user-request-approval/states/user-access-request.state.d.ts +35 -0
- package/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +12 -0
- package/lib/components/user-request-approval/user-request-approval.component.d.ts +69 -0
- package/lib/components/user-request-approval/user-request-approval.module.d.ts +12 -0
- package/lib/components/user-request-approval/user-request-form/use-request-form.component.d.ts +25 -0
- package/lib/models/ApplicationRoleAction.d.ts +9 -0
- package/{src/lib/models/ApplicationRoleContext copy.ts → lib/models/ApplicationRoleContext.d.ts} +5 -6
- package/lib/models/ErrorResponse.d.ts +6 -0
- package/lib/models/OAuthParam.d.ts +9 -0
- package/lib/models/OAuthType.d.ts +7 -0
- package/lib/models/PagedResult.d.ts +9 -0
- package/lib/models/PasswordRequestParam.d.ts +5 -0
- package/{src/lib/models/PermissionConfig.ts → lib/models/PermissionConfig.d.ts} +3 -4
- package/lib/models/ResponseKeyValue.d.ts +5 -0
- package/{src/lib/models/Role.ts → lib/models/Role.d.ts} +5 -6
- package/lib/models/RoleAction.d.ts +10 -0
- package/lib/models/RoleContext.d.ts +10 -0
- package/{src/lib/models/SearchDynamicWrapper.ts → lib/models/SearchDynamicWrapper.d.ts} +2 -3
- package/lib/models/SearchOperator.d.ts +4 -0
- package/lib/models/SearchPropertySign.d.ts +9 -0
- package/{src/lib/models/SearchPropertyValue.ts → lib/models/SearchPropertyValue.d.ts} +6 -7
- package/lib/models/SearchPropertyValueType.d.ts +9 -0
- package/lib/models/SortDirection.d.ts +5 -0
- package/{src/lib/models/Tag.ts → lib/models/Tag.d.ts} +3 -4
- package/lib/models/TenantConfig.d.ts +18 -0
- package/lib/models/UserRequest.d.ts +32 -0
- package/lib/models/auth-mechanism.d.ts +14 -0
- package/lib/models/base.d.ts +12 -0
- package/lib/models/conditions.d.ts +11 -0
- package/lib/models/log-in.d.ts +8 -0
- package/{src/lib/models/mainUser.ts → lib/models/mainUser.d.ts} +2 -3
- package/lib/models/oauth-resp.d.ts +6 -0
- package/{src/lib/models/oauth-response.ts → lib/models/oauth-response.d.ts} +1 -1
- package/lib/models/object-state.d.ts +6 -0
- package/{src/lib/models/otpValue.ts → lib/models/otpValue.d.ts} +2 -4
- package/lib/models/paged.d.ts +9 -0
- package/lib/models/query-params.d.ts +8 -0
- package/lib/models/request-status.d.ts +3 -0
- package/lib/models/resend-otp-data.d.ts +8 -0
- package/lib/models/sign-up.d.ts +9 -0
- package/lib/models/single-sign-on.d.ts +7 -0
- package/lib/models/status.d.ts +4 -0
- package/lib/models/user-access-request-status.d.ts +5 -0
- package/{src/lib/models/user-access-request.ts → lib/models/user-access-request.d.ts} +4 -5
- package/lib/models/user.d.ts +18 -0
- package/lib/pipes/async-label.pipe.d.ts +11 -0
- package/lib/services/authorization.service.d.ts +14 -0
- package/lib/services/encryption.service.d.ts +13 -0
- package/lib/services/environment.service.d.ts +22 -0
- package/lib/services/http-web-request.service.d.ts +23 -0
- package/lib/services/label.service.d.ts +15 -0
- package/lib/services/util.service.d.ts +11 -0
- package/lib/shared/shared.module.d.ts +10 -0
- package/package.json +14 -10
- package/{src/public-api.ts → public-api.d.ts} +0 -24
- package/ng-package.json +0 -8
- package/src/lib/base/base-data.component.ts +0 -86
- package/src/lib/base/base-data.facade.ts +0 -157
- package/src/lib/base/base-data.service.ts +0 -49
- package/src/lib/base/base-data.state.ts +0 -94
- package/src/lib/base/models.ts +0 -14
- package/src/lib/components/auth-callback/auth-callback.component.css +0 -30
- package/src/lib/components/auth-callback/auth-callback.component.html +0 -6
- package/src/lib/components/auth-callback/auth-callback.component.spec.ts +0 -23
- package/src/lib/components/auth-callback/auth-callback.component.ts +0 -56
- package/src/lib/components/auth-callback/auth-callback.module.ts +0 -10
- package/src/lib/components/button/button.component.css +0 -3
- package/src/lib/components/button/button.component.html +0 -13
- package/src/lib/components/button/button.component.spec.ts +0 -23
- package/src/lib/components/button/button.component.ts +0 -24
- package/src/lib/components/button/button.module.ts +0 -11
- package/src/lib/components/forgot-password/forgot-password.component.css +0 -50
- package/src/lib/components/forgot-password/forgot-password.component.html +0 -38
- package/src/lib/components/forgot-password/forgot-password.component.spec.ts +0 -23
- package/src/lib/components/forgot-password/forgot-password.component.ts +0 -90
- package/src/lib/components/forgot-password/forgot-password.module.ts +0 -18
- package/src/lib/components/mail/mail.component.css +0 -0
- package/src/lib/components/mail/mail.component.html +0 -11
- package/src/lib/components/mail/mail.component.spec.ts +0 -23
- package/src/lib/components/mail/mail.component.ts +0 -47
- package/src/lib/components/mail/mail.module.ts +0 -13
- package/src/lib/components/mail-validation/mail-validation.component.css +0 -59
- package/src/lib/components/mail-validation/mail-validation.component.html +0 -37
- package/src/lib/components/mail-validation/mail-validation.component.spec.ts +0 -23
- package/src/lib/components/mail-validation/mail-validation.component.ts +0 -66
- package/src/lib/components/mail-validation/mail-validation.module.ts +0 -18
- package/src/lib/components/o-auth/o-auth.component.css +0 -26
- package/src/lib/components/o-auth/o-auth.component.html +0 -26
- package/src/lib/components/o-auth/o-auth.component.spec.ts +0 -23
- package/src/lib/components/o-auth/o-auth.component.ts +0 -115
- package/src/lib/components/o-auth/o-auth.module.ts +0 -11
- package/src/lib/components/otp-input/otp-input.component.css +0 -19
- package/src/lib/components/otp-input/otp-input.component.html +0 -15
- package/src/lib/components/otp-input/otp-input.component.spec.ts +0 -23
- package/src/lib/components/otp-input/otp-input.component.ts +0 -88
- package/src/lib/components/otp-input/otp-input.module.ts +0 -15
- package/src/lib/components/reset-password/ResetPasswordData.ts +0 -5
- package/src/lib/components/reset-password/reset-password.component.css +0 -29
- package/src/lib/components/reset-password/reset-password.component.html +0 -24
- package/src/lib/components/reset-password/reset-password.component.spec.ts +0 -23
- package/src/lib/components/reset-password/reset-password.component.ts +0 -108
- package/src/lib/components/reset-password/reset-password.module.ts +0 -18
- package/src/lib/components/role-control/ChildrenType.ts +0 -4
- package/src/lib/components/role-control/UIActions.ts +0 -5
- package/src/lib/components/role-control/UIs.ts +0 -38
- package/src/lib/components/role-control/base-table-style.ts +0 -52
- package/src/lib/components/role-control/role-control.component.css +0 -87
- package/src/lib/components/role-control/role-control.component.html +0 -603
- package/src/lib/components/role-control/role-control.component.spec.ts +0 -23
- package/src/lib/components/role-control/role-control.component.ts +0 -1884
- package/src/lib/components/role-control/role-control.module.ts +0 -10
- package/src/lib/components/role-control/role-control.service.spec.ts +0 -16
- package/src/lib/components/role-control/role-control.service.ts +0 -53
- package/src/lib/components/sign-in/sign-in.component.css +0 -21
- package/src/lib/components/sign-in/sign-in.component.html +0 -83
- package/src/lib/components/sign-in/sign-in.component.spec.ts +0 -23
- package/src/lib/components/sign-in/sign-in.component.ts +0 -267
- package/src/lib/components/sign-in/sign-in.module.ts +0 -17
- package/src/lib/components/sign-up/sign-up.component.css +0 -36
- package/src/lib/components/sign-up/sign-up.component.html +0 -132
- package/src/lib/components/sign-up/sign-up.component.spec.ts +0 -23
- package/src/lib/components/sign-up/sign-up.component.ts +0 -180
- package/src/lib/components/sign-up/sign-up.module.ts +0 -15
- package/src/lib/components/sso/base-table-style.ts +0 -52
- package/src/lib/components/sso/helper.ts +0 -17
- package/src/lib/components/sso/sso-form/sso-form.component.css +0 -13
- package/src/lib/components/sso/sso-form/sso-form.component.html +0 -109
- package/src/lib/components/sso/sso-form/sso-form.component.spec.ts +0 -23
- package/src/lib/components/sso/sso-form/sso-form.component.ts +0 -70
- package/src/lib/components/sso/sso.columns.ts +0 -32
- package/src/lib/components/sso/sso.component.css +0 -47
- package/src/lib/components/sso/sso.component.html +0 -208
- package/src/lib/components/sso/sso.component.spec.ts +0 -23
- package/src/lib/components/sso/sso.component.ts +0 -261
- package/src/lib/components/sso/sso.module.ts +0 -40
- package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.css +0 -8
- package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.html +0 -30
- package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.spec.ts +0 -23
- package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.ts +0 -155
- package/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.ts +0 -15
- package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.css +0 -17
- package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.html +0 -45
- package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.spec.ts +0 -23
- package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.ts +0 -57
- package/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.ts +0 -11
- package/src/lib/components/user-management/base-table-style.ts +0 -52
- package/src/lib/components/user-management/facades/user-management.facades.ts +0 -133
- package/src/lib/components/user-management/helper.ts +0 -38
- package/src/lib/components/user-management/index.ts +0 -4
- package/src/lib/components/user-management/services/user-management.service.spec.ts +0 -16
- package/src/lib/components/user-management/services/user-management.service.ts +0 -111
- package/src/lib/components/user-management/states/user-management.state.ts +0 -65
- package/src/lib/components/user-management/user-management-form/use-management-form.component.ts +0 -74
- package/src/lib/components/user-management/user-management-form/user-management-form.component.css +0 -0
- package/src/lib/components/user-management/user-management-form/user-management-form.component.html +0 -89
- package/src/lib/components/user-management/user-management-form/user-management-form.component.spec.ts +0 -23
- package/src/lib/components/user-management/user-management.columns.ts +0 -57
- package/src/lib/components/user-management/user-management.component.css +0 -31
- package/src/lib/components/user-management/user-management.component.html +0 -455
- package/src/lib/components/user-management/user-management.component.spec.ts +0 -23
- package/src/lib/components/user-management/user-management.component.ts +0 -626
- package/src/lib/components/user-management/user-management.module.ts +0 -60
- package/src/lib/components/user-management/user-status-badge/user-status-badge.component.css +0 -0
- package/src/lib/components/user-management/user-status-badge/user-status-badge.component.html +0 -8
- package/src/lib/components/user-management/user-status-badge/user-status-badge.component.spec.ts +0 -22
- package/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts +0 -22
- package/src/lib/components/user-request/user-request.component.css +0 -91
- package/src/lib/components/user-request/user-request.component.html +0 -137
- package/src/lib/components/user-request/user-request.component.spec.ts +0 -23
- package/src/lib/components/user-request/user-request.component.ts +0 -306
- package/src/lib/components/user-request/user-request.module.ts +0 -20
- package/src/lib/components/user-request-approval/access-request.columns.ts +0 -31
- package/src/lib/components/user-request-approval/base-table-style.ts +0 -52
- package/src/lib/components/user-request-approval/facades/user-access-request.facade.ts +0 -324
- package/src/lib/components/user-request-approval/helper.ts +0 -61
- package/src/lib/components/user-request-approval/services/user-access-request.service.spec.ts +0 -16
- package/src/lib/components/user-request-approval/services/user-access-request.service.ts +0 -122
- package/src/lib/components/user-request-approval/states/user-access-request.state.ts +0 -109
- package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.css +0 -0
- package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.html +0 -8
- package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.spec.ts +0 -23
- package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.ts +0 -22
- package/src/lib/components/user-request-approval/user-request-approval.component.css +0 -6
- package/src/lib/components/user-request-approval/user-request-approval.component.html +0 -273
- package/src/lib/components/user-request-approval/user-request-approval.component.spec.ts +0 -23
- package/src/lib/components/user-request-approval/user-request-approval.component.ts +0 -328
- package/src/lib/components/user-request-approval/user-request-approval.module.ts +0 -56
- package/src/lib/components/user-request-approval/user-request-form/use-request-form.component.ts +0 -98
- package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.css +0 -0
- package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.html +0 -94
- package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.spec.ts +0 -23
- package/src/lib/components/user-request-process/user-request-process.component.css +0 -0
- package/src/lib/components/user-request-process/user-request-process.component.html +0 -1
- package/src/lib/components/user-request-process/user-request-process.component.spec.ts +0 -23
- package/src/lib/components/user-request-process/user-request-process.component.ts +0 -12
- package/src/lib/components/user-request-process/user-request-process.module.ts +0 -12
- package/src/lib/models/ApplicationRoleAction.ts +0 -10
- package/src/lib/models/ApplicationRoleContext.ts +0 -10
- package/src/lib/models/ErrorResponse.ts +0 -7
- package/src/lib/models/FilterTypes.ts +0 -8
- package/src/lib/models/MailConfig.ts +0 -13
- package/src/lib/models/MessageConfig.ts +0 -5
- package/src/lib/models/MessageMedium.ts +0 -4
- package/src/lib/models/OAuthParam.ts +0 -10
- package/src/lib/models/OAuthType.ts +0 -7
- package/src/lib/models/PagedResult.ts +0 -9
- package/src/lib/models/PasswordRequestParam.ts +0 -5
- package/src/lib/models/PeriodMode.ts +0 -10
- package/src/lib/models/ReportSchedule.ts +0 -23
- package/src/lib/models/ReportType.ts +0 -5
- package/src/lib/models/ResponseKeyValue.ts +0 -5
- package/src/lib/models/RoleAction.ts +0 -11
- package/src/lib/models/RoleContext.ts +0 -11
- package/src/lib/models/SMSConfig.ts +0 -11
- package/src/lib/models/SearchOperator.ts +0 -4
- package/src/lib/models/SearchPropertySign.ts +0 -9
- package/src/lib/models/SearchPropertyValueType.ts +0 -9
- package/src/lib/models/SortDirection.ts +0 -5
- package/src/lib/models/TaskNotification.ts +0 -14
- package/src/lib/models/TaskNotificationMessageType.ts +0 -4
- package/src/lib/models/TaskNotificationType.ts +0 -4
- package/src/lib/models/Tenant.ts +0 -22
- package/src/lib/models/TenantConfig.ts +0 -19
- package/src/lib/models/UserRequest.ts +0 -38
- package/src/lib/models/auth-mechanism.ts +0 -15
- package/src/lib/models/base.ts +0 -13
- package/src/lib/models/conditions.ts +0 -11
- package/src/lib/models/log-in.ts +0 -8
- package/src/lib/models/oauth-resp.ts +0 -6
- package/src/lib/models/object-state.ts +0 -6
- package/src/lib/models/paged.ts +0 -9
- package/src/lib/models/query-params.ts +0 -9
- package/src/lib/models/request-status.ts +0 -4
- package/src/lib/models/resend-otp-data.ts +0 -8
- package/src/lib/models/resource.ts +0 -27
- package/src/lib/models/sign-up.ts +0 -11
- package/src/lib/models/single-sign-on.ts +0 -9
- package/src/lib/models/status.ts +0 -5
- package/src/lib/models/user-access-request-status.ts +0 -5
- package/src/lib/models/user-object-state.ts +0 -6
- package/src/lib/models/user.ts +0 -19
- package/src/lib/pipes/async-label.pipe.spec.ts +0 -8
- package/src/lib/pipes/async-label.pipe.ts +0 -20
- package/src/lib/services/authorization.service.spec.ts +0 -16
- package/src/lib/services/authorization.service.ts +0 -24
- package/src/lib/services/encryption.service.ts +0 -57
- package/src/lib/services/environment.service.spec.ts +0 -16
- package/src/lib/services/environment.service.ts +0 -30
- package/src/lib/services/http-web-request.service.spec.ts +0 -16
- package/src/lib/services/http-web-request.service.ts +0 -114
- package/src/lib/services/label.service.spec.ts +0 -16
- package/src/lib/services/label.service.ts +0 -177
- package/src/lib/services/util.service.spec.ts +0 -16
- package/src/lib/services/util.service.ts +0 -49
- package/src/lib/shared/shared.module.ts +0 -55
- package/src/styles.css +0 -96
- package/src/theme/tailwind-setup.css +0 -3
- package/src/theme/tailwind.css +0 -1035
- package/src/utils/components/base-data-view.component.ts +0 -131
- package/src/utils/models/DataViewConfig.ts +0 -19
- package/tailwind.config.js +0 -20
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { ErrorResponse } from '../../models/ErrorResponse';
|
|
4
|
+
import { MechanismType } from '../../models/auth-mechanism';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "../../services/http-web-request.service";
|
|
8
|
+
import * as i3 from "../../services/util.service";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "../button/button.component";
|
|
11
|
+
import * as i6 from "../otp-input/otp-input.component";
|
|
12
|
+
export class TwoFactorAuthOtpComponent {
|
|
13
|
+
fb;
|
|
14
|
+
server;
|
|
15
|
+
utilService;
|
|
16
|
+
customClass = '';
|
|
17
|
+
headlingClass = '';
|
|
18
|
+
headlingText = 'Two Factor Authentication';
|
|
19
|
+
paragraphClass = '';
|
|
20
|
+
resendClass = '';
|
|
21
|
+
width = '';
|
|
22
|
+
maxWidth = '';
|
|
23
|
+
margin = '';
|
|
24
|
+
pd = '';
|
|
25
|
+
bgColor = '#fff';
|
|
26
|
+
boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
|
|
27
|
+
border = '1px solid #66666680';
|
|
28
|
+
borderRadius = '24px';
|
|
29
|
+
textColor = '#333';
|
|
30
|
+
height = 'auto';
|
|
31
|
+
length = 6;
|
|
32
|
+
otpClass = '';
|
|
33
|
+
resendOtpData = {
|
|
34
|
+
MailAddress: '',
|
|
35
|
+
Password: '',
|
|
36
|
+
LoginType: 'InApp',
|
|
37
|
+
Tenant: 'PDLTC6',
|
|
38
|
+
Secrete: '$White360$',
|
|
39
|
+
RedirectUri: '/auth/otp',
|
|
40
|
+
};
|
|
41
|
+
User = {};
|
|
42
|
+
OtpData = {
|
|
43
|
+
User: this.User,
|
|
44
|
+
Token: '',
|
|
45
|
+
ValidateUrl: '',
|
|
46
|
+
Secret: '',
|
|
47
|
+
OTP: '',
|
|
48
|
+
Info: '',
|
|
49
|
+
Provider: MechanismType.InApp
|
|
50
|
+
};
|
|
51
|
+
btnClass = '';
|
|
52
|
+
btnBgColor = '#FFE681';
|
|
53
|
+
btnColor = '';
|
|
54
|
+
btnBorder = '';
|
|
55
|
+
btnBorderRadius = '24px';
|
|
56
|
+
btnPd = '';
|
|
57
|
+
btnText = 'Submit';
|
|
58
|
+
otpValue = '';
|
|
59
|
+
otpForm;
|
|
60
|
+
buttonClick = new EventEmitter();
|
|
61
|
+
otpChange = new EventEmitter();
|
|
62
|
+
clearStore = new EventEmitter();
|
|
63
|
+
onSubmitEnd = new EventEmitter();
|
|
64
|
+
resend = new EventEmitter();
|
|
65
|
+
constructor(fb, server, utilService) {
|
|
66
|
+
this.fb = fb;
|
|
67
|
+
this.server = server;
|
|
68
|
+
this.utilService = utilService;
|
|
69
|
+
}
|
|
70
|
+
ngOnInit() {
|
|
71
|
+
this.otpForm = this.fb.group({
|
|
72
|
+
otpValue: ['', [Validators.required, Validators.minLength(6)]],
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
onOtpChange(value) {
|
|
76
|
+
this.otpValue = value;
|
|
77
|
+
this.otpForm.get('otpValue')?.setValue(value);
|
|
78
|
+
this.otpChange.emit(this.otpValue);
|
|
79
|
+
}
|
|
80
|
+
async submitData() {
|
|
81
|
+
const data = {
|
|
82
|
+
User: this.User,
|
|
83
|
+
Token: this.OtpData.Token,
|
|
84
|
+
ValidateUrl: this.OtpData.ValidateUrl,
|
|
85
|
+
Secret: this.OtpData.Secret,
|
|
86
|
+
OTP: this.OtpData.OTP,
|
|
87
|
+
Info: this.OtpData.Info,
|
|
88
|
+
Provider: this.OtpData.Provider
|
|
89
|
+
};
|
|
90
|
+
this.clearStore.emit();
|
|
91
|
+
if (this.otpForm.valid) {
|
|
92
|
+
this.utilService.sendBI(true);
|
|
93
|
+
const res = await this.server.post(`Authentication/Validate`, data);
|
|
94
|
+
this.utilService.sendBI(false);
|
|
95
|
+
if (res instanceof ErrorResponse) {
|
|
96
|
+
this.onSubmitEnd.emit(res);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
var result = res;
|
|
100
|
+
this.onSubmitEnd.emit(result);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async resendOtp() {
|
|
105
|
+
const data = {
|
|
106
|
+
MailAddress: this.resendOtpData?.MailAddress,
|
|
107
|
+
Password: this.resendOtpData?.Password,
|
|
108
|
+
LoginType: this.resendOtpData?.LoginType,
|
|
109
|
+
Tenant: this.resendOtpData?.Tenant,
|
|
110
|
+
Secrete: this.resendOtpData?.Secrete,
|
|
111
|
+
RedirectUri: this.resendOtpData?.RedirectUri,
|
|
112
|
+
};
|
|
113
|
+
this.utilService.sendBI(true);
|
|
114
|
+
const res = await this.server.post(`Authentication/ResendOTP`, data);
|
|
115
|
+
this.utilService.sendBI(false);
|
|
116
|
+
if (res instanceof ErrorResponse) {
|
|
117
|
+
this.resend.emit(res);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
var result = res;
|
|
121
|
+
this.resend.emit(result);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
get styles() {
|
|
125
|
+
return {
|
|
126
|
+
'background-color': this.bgColor,
|
|
127
|
+
'box-shadow': this.boxShadow,
|
|
128
|
+
border: this.border,
|
|
129
|
+
'border-radius': this.borderRadius,
|
|
130
|
+
color: this.textColor,
|
|
131
|
+
width: this.width,
|
|
132
|
+
'max-width': this.maxWidth,
|
|
133
|
+
margin: this.margin,
|
|
134
|
+
height: this.height,
|
|
135
|
+
padding: this.pd,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpComponent, deps: [{ token: i1.FormBuilder }, { token: i2.HttpWebRequestService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
|
|
139
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TwoFactorAuthOtpComponent, selector: "verben-auth-otp", inputs: { customClass: "customClass", headlingClass: "headlingClass", headlingText: "headlingText", paragraphClass: "paragraphClass", resendClass: "resendClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", length: "length", otpClass: "otpClass", resendOtpData: "resendOtpData", User: "User", OtpData: "OtpData", btnClass: "btnClass", btnBgColor: "btnBgColor", btnColor: "btnColor", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnPd: "btnPd", btnText: "btnText" }, outputs: { buttonClick: "buttonClick", otpChange: "otpChange", clearStore: "clearStore", onSubmitEnd: "onSubmitEnd", resend: "resend" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the {{length}} digit code sent to you</p>\n <verben-otp-input \n [length]=\"length\" \n (otpChange)=\"onOtpChange($event)\"\n [otpClass]=\"otpClass\"\n ></verben-otp-input>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n (buttonClick)=\"submitData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn\u2019t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>", styles: [".otpWrapper{margin-bottom:20px;margin-top:15px}.resendWrapper{margin-top:10px;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i6.OtpInputComponent, selector: "verben-otp-input", inputs: ["length", "otpClass"], outputs: ["otpChange"] }] });
|
|
140
|
+
}
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpComponent, decorators: [{
|
|
142
|
+
type: Component,
|
|
143
|
+
args: [{ selector: 'verben-auth-otp', template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the {{length}} digit code sent to you</p>\n <verben-otp-input \n [length]=\"length\" \n (otpChange)=\"onOtpChange($event)\"\n [otpClass]=\"otpClass\"\n ></verben-otp-input>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n (buttonClick)=\"submitData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn\u2019t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>", styles: [".otpWrapper{margin-bottom:20px;margin-top:15px}.resendWrapper{margin-top:10px;margin-bottom:0!important}\n"] }]
|
|
144
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }], propDecorators: { customClass: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], headlingClass: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], headlingText: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], paragraphClass: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], resendClass: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], width: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], maxWidth: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], margin: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], pd: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], bgColor: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], boxShadow: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], border: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], borderRadius: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], textColor: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], height: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], length: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], otpClass: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], resendOtpData: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], User: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], OtpData: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], btnClass: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], btnBgColor: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], btnColor: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], btnBorder: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], btnBorderRadius: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], btnPd: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], btnText: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], buttonClick: [{
|
|
199
|
+
type: Output
|
|
200
|
+
}], otpChange: [{
|
|
201
|
+
type: Output
|
|
202
|
+
}], clearStore: [{
|
|
203
|
+
type: Output
|
|
204
|
+
}], onSubmitEnd: [{
|
|
205
|
+
type: Output
|
|
206
|
+
}], resend: [{
|
|
207
|
+
type: Output
|
|
208
|
+
}] } });
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQTJEMUI7SUFDQTtJQUNBO0lBNURELFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixZQUFZLEdBQVcsMkJBQTJCLENBQUM7SUFDbkQsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFD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QUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQVVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLXdlYi1yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvclJlc3BvbnNlJztcbmltcG9ydCB7IFJlc3BvbnNlS2V5VmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvUmVzcG9uc2VLZXlWYWx1ZSc7XG5pbXBvcnQgeyBPdHBEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL290cFZhbHVlJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlcic7XG5pbXBvcnQgeyBPYmplY3RTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9vYmplY3Qtc3RhdGUnO1xuaW1wb3J0IHsgTWFpblVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWFpblVzZXInO1xuaW1wb3J0IHsgUmVzZW5kT3RwRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9yZXNlbmQtb3RwLWRhdGEnO1xuaW1wb3J0IHsgTWVjaGFuaXNtVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRoLW1lY2hhbmlzbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1hdXRoLW90cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90d28tZmFjdG9yLWF1dGgtb3RwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3R3by1mYWN0b3ItYXV0aC1vdHAuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhPdHBDb21wb25lbnQge1xuICBASW5wdXQoKSBjdXN0b21DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhlYWRsaW5nQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBoZWFkbGluZ1RleHQ6IHN0cmluZyA9ICdUd28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uJztcbiAgQElucHV0KCkgcGFyYWdyYXBoQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByZXNlbmRDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbWF4V2lkdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXJnaW46IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZmZmJztcbiAgQElucHV0KCkgYm94U2hhZG93OiBzdHJpbmcgPSAnNHB4IDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KSc7XG4gIEBJbnB1dCgpIGJvcmRlcjogc3RyaW5nID0gJzFweCBzb2xpZCAjNjY2NjY2ODAnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcyNHB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJ2F1dG8nO1xuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlciA9IDY7XG4gIEBJbnB1dCgpIG90cENsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVzZW5kT3RwRGF0YTogUmVzZW5kT3RwRGF0YSA9IHtcbiAgICBNYWlsQWRkcmVzczogJycsXG4gICAgUGFzc3dvcmQ6ICcnLFxuICAgIExvZ2luVHlwZTogJ0luQXBwJyxcbiAgICBUZW5hbnQ6ICdQRExUQzYnLFxuICAgIFNlY3JldGU6ICckV2hpdGUzNjAkJyxcbiAgICBSZWRpcmVjdFVyaTogJy9hdXRoL290cCcsXG4gIH07XG5cbiAgQElucHV0KCkgVXNlcjphbnk9e31cblxuICBASW5wdXQoKSBPdHBEYXRhOiBPdHBEYXRhID0ge1xuICAgIFVzZXI6IHRoaXMuVXNlcixcbiAgICBUb2tlbjogJycsXG4gICAgVmFsaWRhdGVVcmw6ICcnLFxuICAgIFNlY3JldDogJycsXG4gICAgT1RQOiAnJyxcbiAgICBJbmZvOiAnJyxcbiAgICBQcm92aWRlcjpNZWNoYW5pc21UeXBlLkluQXBwXG4gIH07XG5cbiAgQElucHV0KCkgYnRuQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBidG5CZ0NvbG9yOiBzdHJpbmcgPSAnI0ZGRTY4MSc7XG4gIEBJbnB1dCgpIGJ0bkNvbG9yOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnRuQm9yZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnRuQm9yZGVyUmFkaXVzOiBzdHJpbmcgPSAnMjRweCc7XG4gIEBJbnB1dCgpIGJ0blBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnRuVGV4dDogc3RyaW5nID0gJ1N1Ym1pdCc7XG5cbiAgb3RwVmFsdWU6IHN0cmluZyA9ICcnO1xuICBvdHBGb3JtITogRm9ybUdyb3VwO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb3RwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbGVhclN0b3JlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvblN1Ym1pdEVuZDogRXZlbnRFbWl0dGVyPFJlc3BvbnNlS2V5VmFsdWUgfCBFcnJvclJlc3BvbnNlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVzZW5kOiBFdmVudEVtaXR0ZXI8UmVzcG9uc2VLZXlWYWx1ZSB8IEVycm9yUmVzcG9uc2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vdHBGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvdHBWYWx1ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uT3RwQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm90cFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vdHBGb3JtLmdldCgnb3RwVmFsdWUnKT8uc2V0VmFsdWUodmFsdWUpO1xuICAgIHRoaXMub3RwQ2hhbmdlLmVtaXQodGhpcy5vdHBWYWx1ZSk7XG4gIH1cblxuICBhc3luYyBzdWJtaXREYXRhKCkge1xuICAgIGNvbnN0IGRhdGE6IE90cERhdGEgPSB7XG4gICAgICBVc2VyOnRoaXMuVXNlcixcbiAgICAgIFRva2VuOiB0aGlzLk90cERhdGEuVG9rZW4sXG4gICAgICBWYWxpZGF0ZVVybDogdGhpcy5PdHBEYXRhLlZhbGlkYXRlVXJsLFxuICAgICAgU2VjcmV0OiB0aGlzLk90cERhdGEuU2VjcmV0LFxuICAgICAgT1RQOiB0aGlzLk90cERhdGEuT1RQLFxuICAgICAgSW5mbzogdGhpcy5PdHBEYXRhLkluZm8sXG4gICAgICBQcm92aWRlcjp0aGlzLk90cERhdGEuUHJvdmlkZXJcbiAgICB9O1xuICAgdGhpcy5jbGVhclN0b3JlLmVtaXQoKVxuICAgIGlmICh0aGlzLm90cEZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChgQXV0aGVudGljYXRpb24vVmFsaWRhdGVgLCBkYXRhKTtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMub25TdWJtaXRFbmQuZW1pdChyZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlcyBhcyBSZXNwb25zZUtleVZhbHVlO1xuICAgICAgICB0aGlzLm9uU3VibWl0RW5kLmVtaXQocmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyByZXNlbmRPdHAoKSB7XG4gICAgY29uc3QgZGF0YTogUmVzZW5kT3RwRGF0YSA9IHtcbiAgICAgIE1haWxBZGRyZXNzOiB0aGlzLnJlc2VuZE90cERhdGE/Lk1haWxBZGRyZXNzLFxuICAgICAgUGFzc3dvcmQ6IHRoaXMucmVzZW5kT3RwRGF0YT8uUGFzc3dvcmQsXG4gICAgICBMb2dpblR5cGU6IHRoaXMucmVzZW5kT3RwRGF0YT8uTG9naW5UeXBlLFxuICAgICAgVGVuYW50OiB0aGlzLnJlc2VuZE90cERhdGE/LlRlbmFudCxcbiAgICAgIFNlY3JldGU6IHRoaXMucmVzZW5kT3RwRGF0YT8uU2VjcmV0ZSxcblxuICAgICAgUmVkaXJlY3RVcmk6IHRoaXMucmVzZW5kT3RwRGF0YT8uUmVkaXJlY3RVcmksXG4gICAgfTtcblxuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoYEF1dGhlbnRpY2F0aW9uL1Jlc2VuZE9UUGAsIGRhdGEpO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgdGhpcy5yZXNlbmQuZW1pdChyZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gcmVzIGFzIFJlc3BvbnNlS2V5VmFsdWU7XG4gICAgICB0aGlzLnJlc2VuZC5lbWl0KHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLmJnQ29sb3IsXG4gICAgICAnYm94LXNoYWRvdyc6IHRoaXMuYm94U2hhZG93LFxuICAgICAgYm9yZGVyOiB0aGlzLmJvcmRlcixcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICBjb2xvcjogdGhpcy50ZXh0Q29sb3IsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLm1heFdpZHRoLFxuICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICBwYWRkaW5nOiB0aGlzLnBkLFxuICAgIH07XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG5bbmdTdHlsZV09XCJzdHlsZXNcIlxuY2xhc3M9XCJ7eyBjdXN0b21DbGFzcyB9fVwiXG4+XG4gIDxoMyBjbGFzcz1cInt7aGVhZGxpbmdDbGFzc319XCI+e3toZWFkbGluZ1RleHR9fTwvaDM+XG4gIDxkaXYgY2xhc3M9XCJvdHBXcmFwcGVyXCI+IFxuICAgIDxwIGNsYXNzPVwie3twYXJhZ3JhcGhDbGFzc319XCI+RW50ZXIgdGhlIHt7bGVuZ3RofX0gZGlnaXQgY29kZSBzZW50IHRvIHlvdTwvcD5cbiAgICA8dmVyYmVuLW90cC1pbnB1dCBcbiAgICBbbGVuZ3RoXT1cImxlbmd0aFwiIFxuICAgIChvdHBDaGFuZ2UpPVwib25PdHBDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW290cENsYXNzXT1cIm90cENsYXNzXCJcbiAgICA+PC92ZXJiZW4tb3RwLWlucHV0PlxuICA8L2Rpdj5cbiAgPGxpYi1idXR0b24gIFxuICBbYnV0dG9uQ2xhc3NdPVwiYnRuQ2xhc3NcIlxuICBbY29sb3JdPVwiYnRuQ29sb3JcIlxuICBbYm9yZGVyXT1cImJ0bkJvcmRlclwiXG4gIFtib3JkZXJSYWRpdXNdPVwiYnRuQm9yZGVyUmFkaXVzXCJcbiAgW2JnQ29sb3JdPVwiYnRuQmdDb2xvclwiXG4gIFtwZF09XCJidG5QZFwiXG4gIFt0ZXh0XT1cImJ0blRleHRcIiAgXG4gIChidXR0b25DbGljayk9XCJzdWJtaXREYXRhKClcIlxuICBbZGlzYWJsZWRdPVwiIW90cEZvcm0udmFsaWRcIlxuICA+PC9saWItYnV0dG9uPlxuICA8cCBjbGFzcz1cInJlc2VuZFdyYXBwZXJcIj5cbiAgICBEaWRu4oCZdCBnZXQgYSBjb2RlP1xuICAgIDxhIGNsYXNzPVwie3tyZXNlbmRDbGFzc319XCIgKGNsaWNrKT1cInJlc2VuZE90cCgpXCI+UmVzZW5kPC9hPlxuICA8L3A+XG4gICBcbjwvc2VjdGlvbj4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TwoFactorAuthOtpComponent } from './two-factor-auth-otp.component';
|
|
4
|
+
import { ButtonModule } from '../button/button.module';
|
|
5
|
+
import { OtpInputModule } from '../otp-input/otp-input.module';
|
|
6
|
+
import { RouterLink } from '@angular/router';
|
|
7
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class TwoFactorAuthOtpModule {
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpModule, declarations: [TwoFactorAuthOtpComponent], imports: [CommonModule, ButtonModule, OtpInputModule, RouterLink, ReactiveFormsModule], exports: [TwoFactorAuthOtpComponent] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpModule, imports: [CommonModule, ButtonModule, OtpInputModule, ReactiveFormsModule] });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [TwoFactorAuthOtpComponent],
|
|
18
|
+
imports: [CommonModule, ButtonModule, OtpInputModule, RouterLink, ReactiveFormsModule],
|
|
19
|
+
exports: [TwoFactorAuthOtpComponent]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLW90cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUXJELE1BQU0sT0FBTyxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLGlCQUpsQix5QkFBeUIsYUFDOUIsWUFBWSxFQUFDLFlBQVksRUFBQyxjQUFjLEVBQUMsVUFBVSxFQUFDLG1CQUFtQixhQUN2RSx5QkFBeUI7eUdBRXhCLHNCQUFzQixZQUh2QixZQUFZLEVBQUMsWUFBWSxFQUFDLGNBQWMsRUFBWSxtQkFBbUI7OzRGQUd0RSxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBQyxZQUFZLEVBQUMsY0FBYyxFQUFDLFVBQVUsRUFBQyxtQkFBbUIsQ0FBQztvQkFDbEYsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUd29GYWN0b3JBdXRoT3RwQ29tcG9uZW50IH0gZnJvbSAnLi90d28tZmFjdG9yLWF1dGgtb3RwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBPdHBJbnB1dE1vZHVsZSB9IGZyb20gJy4uL290cC1pbnB1dC9vdHAtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUd29GYWN0b3JBdXRoT3RwQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxCdXR0b25Nb2R1bGUsT3RwSW5wdXRNb2R1bGUsUm91dGVyTGluayxSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1R3b0ZhY3RvckF1dGhPdHBDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhPdHBNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "verben-ng-ui";
|
|
5
|
+
export class TwoFactorAuthSetupComponent {
|
|
6
|
+
customClass = '';
|
|
7
|
+
headlingClass = '';
|
|
8
|
+
headlingText = 'Set Up Two Factor Authentication';
|
|
9
|
+
paragraphClass = '';
|
|
10
|
+
buttonClass = '';
|
|
11
|
+
width = '';
|
|
12
|
+
maxWidth = '';
|
|
13
|
+
margin = '';
|
|
14
|
+
pd = '';
|
|
15
|
+
bgColor = '#fff';
|
|
16
|
+
boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
|
|
17
|
+
border = '1px solid #66666680';
|
|
18
|
+
borderRadius = '24px';
|
|
19
|
+
textColor = '#333';
|
|
20
|
+
height = '';
|
|
21
|
+
smsClick = new EventEmitter();
|
|
22
|
+
mailClick = new EventEmitter();
|
|
23
|
+
skipClick = new EventEmitter();
|
|
24
|
+
continueWithSMS() {
|
|
25
|
+
this.smsClick.emit();
|
|
26
|
+
}
|
|
27
|
+
continueWithMail() {
|
|
28
|
+
this.mailClick.emit();
|
|
29
|
+
}
|
|
30
|
+
handleSkip() {
|
|
31
|
+
this.skipClick.emit();
|
|
32
|
+
}
|
|
33
|
+
get styles() {
|
|
34
|
+
return {
|
|
35
|
+
'background-color': this.bgColor,
|
|
36
|
+
'box-shadow': this.boxShadow,
|
|
37
|
+
'border': this.border,
|
|
38
|
+
'border-radius': this.borderRadius,
|
|
39
|
+
'color': this.textColor,
|
|
40
|
+
'width': this.width,
|
|
41
|
+
'max-width': this.maxWidth,
|
|
42
|
+
'margin': this.margin,
|
|
43
|
+
'height': this.height,
|
|
44
|
+
'padding': this.pd
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TwoFactorAuthSetupComponent, selector: "verben-two-factor-auth-setup", inputs: { customClass: "customClass", headlingClass: "headlingClass", headlingText: "headlingText", paragraphClass: "paragraphClass", buttonClass: "buttonClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height" }, outputs: { smsClick: "smsClick", mailClick: "mailClick", skipClick: "skipClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mb-2\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <!-- <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div> -->\n</div>\n</section>", styles: [".setUpBtnWrapper{display:flex;flex-direction:column;gap:12px;margin-top:40px}.iconWrapper{display:flex;cursor:pointer;align-items:center;justify-content:end;gap:12px;margin-bottom:50px}.custom-button{font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'verben-two-factor-auth-setup', template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mb-2\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <!-- <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div> -->\n</div>\n</section>", styles: [".setUpBtnWrapper{display:flex;flex-direction:column;gap:12px;margin-top:40px}.iconWrapper{display:flex;cursor:pointer;align-items:center;justify-content:end;gap:12px;margin-bottom:50px}.custom-button{font-weight:500}\n"] }]
|
|
53
|
+
}], propDecorators: { customClass: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], headlingClass: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], headlingText: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], paragraphClass: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], buttonClass: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], width: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], maxWidth: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], margin: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], pd: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], bgColor: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], boxShadow: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], border: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], borderRadius: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], textColor: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], height: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], smsClick: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], mailClick: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], skipClick: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLXNldHVwL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1zZXR1cC90d28tZmFjdG9yLWF1dGgtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLFdBQVcsR0FBVyxFQUFFLENBQUE7SUFDeEIsYUFBYSxHQUFXLEVBQUUsQ0FBQTtJQUMxQixZQUFZLEdBQVcsa0NBQWtDLENBQUE7SUFDekQsY0FBYyxHQUFXLEVBQUUsQ0FBQTtJQUMzQixXQUFXLEdBQVcsRUFBRSxDQUFBO0lBQ3hCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFDdEQsTUFBTSxHQUFXLHFCQUFxQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRW5CLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzlCLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9CLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR3pDLGVBQWU7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFDRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFDRCxVQUFVO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBR0QsSUFBSSxNQUFNO1FBQ1IsT0FBTztZQUNMLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ2hDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUztZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDbkIsV0FBVyxFQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBQyxJQUFJLENBQUMsTUFBTTtZQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsU0FBUyxFQUFDLElBQUksQ0FBQyxFQUFFO1NBQ2xCLENBQUM7SUFDSixDQUFDO3dHQTlDVSwyQkFBMkI7NEZBQTNCLDJCQUEyQixtZ0JDUnhDLHVzQ0E0Q1U7OzRGRHBDRywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsOEJBQThCOzhCQU0vQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi10d28tZmFjdG9yLWF1dGgtc2V0dXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHdvLWZhY3Rvci1hdXRoLXNldHVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5jb21wb25lbnQuY3NzJ1xufSlcblxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhTZXR1cENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSBoZWFkbGluZ0NsYXNzOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSBoZWFkbGluZ1RleHQ6IHN0cmluZyA9ICdTZXQgVXAgVHdvIEZhY3RvciBBdXRoZW50aWNhdGlvbidcbiAgQElucHV0KCkgcGFyYWdyYXBoQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGJ1dHRvbkNsYXNzOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1heFdpZHRoOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbWFyZ2luOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBiZ0NvbG9yOiBzdHJpbmcgPSAnI2ZmZic7XG4gIEBJbnB1dCgpIGJveFNoYWRvdzogc3RyaW5nID0gJzRweCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSknO1xuICBASW5wdXQoKSBib3JkZXI6IHN0cmluZyA9ICcxcHggc29saWQgIzY2NjY2NjgwJztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzOiBzdHJpbmcgPSAnMjRweCc7XG4gIEBJbnB1dCgpIHRleHRDb2xvcjogc3RyaW5nID0gJyMzMzMnO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBzbXNDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG1haWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNraXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuIFxuICBjb250aW51ZVdpdGhTTVMoKXsgXG4gICB0aGlzLnNtc0NsaWNrLmVtaXQoKVxuICB9XG4gIGNvbnRpbnVlV2l0aE1haWwoKXsgXG4gICB0aGlzLm1haWxDbGljay5lbWl0KClcbiAgfVxuICBoYW5kbGVTa2lwKCl7IFxuICAgdGhpcy5za2lwQ2xpY2suZW1pdCgpXG4gIH1cblxuXG4gIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iZ0NvbG9yLFxuICAgICAgJ2JveC1zaGFkb3cnOiB0aGlzLmJveFNoYWRvdyxcbiAgICAgICdib3JkZXInOiB0aGlzLmJvcmRlcixcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICAnY29sb3InOiB0aGlzLnRleHRDb2xvcixcbiAgICAgICd3aWR0aCc6IHRoaXMud2lkdGgsXG4gICAgICAnbWF4LXdpZHRoJzp0aGlzLm1heFdpZHRoLFxuICAgICAgJ21hcmdpbic6dGhpcy5tYXJnaW4sXG4gICAgICAnaGVpZ2h0JzogdGhpcy5oZWlnaHQsXG4gICAgICAncGFkZGluZyc6dGhpcy5wZFxuICAgIH07XG4gIH1cblxufVxuIiwiPHNlY3Rpb25cbltuZ1N0eWxlXT1cInN0eWxlc1wiXG5jbGFzcz1cInt7IGN1c3RvbUNsYXNzIH19XCJcbj5cbiAgPGgzIGNsYXNzPVwie3toZWFkbGluZ0NsYXNzfX1cIj57e2hlYWRsaW5nVGV4dH19PC9oMz5cbiAgPGRpdiBjbGFzcz1cInNldFVwQnRuV3JhcHBlclwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgIHN2Zz1cIjJmYS1tYWlsXCJcbiAgICBbc3ZnSGVpZ2h0XT1cIjE2XCJcbiAgICBbc3ZnV2lkdGhdPVwiMjBcIlxuICAgIHRleHQ9XCJDb250aW51ZSB3aXRoIE1haWxcIlxuICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgdGV4dENvbG9yPVwiIzMzMzMzM1wiXG4gICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICB3aWR0aD1cIjEwMCVcIlxuICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgYnV0dG9uQ2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LVsyNHB4XSBsZWFkaW5nLVsyOS4wNXB4XSB0ZXh0LVsjMzMzXSBtYi0yXCJcbiAgICAoY2xpY2spPVwiY29udGludWVXaXRoTWFpbCgpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICBzdmc9XCIyZmEtc21zXCJcbiAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICBbc3ZnV2lkdGhdPVwiMjRcIlxuICAgIHRleHQ9XCJDb250aW51ZSB3aXRoIFNNU1wiXG4gICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICB0ZXh0Q29sb3I9XCIjMzMzMzMzXCJcbiAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgYm9yZGVyUmFkaXVzPVwiNDBweFwiXG4gICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgc3ZnUG9zaXRpb249XCJsZWZ0XCJcbiAgICAoY2xpY2spPVwiY29udGludWVXaXRoU01TKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImljb25XcmFwcGVyXCIgKGNsaWNrKT1cImhhbmRsZVNraXAoKVwiPiBcbiAgICAgICAgPHAgY2xhc3M9XCJ7e3BhcmFncmFwaENsYXNzfX1cIj5Ta2lwIGZvciBub3c8L3A+XG4gICAgICAgIDx2ZXJiZW4tc3ZnIFxuICAgICAgICBpY29uPVwic2tpcC1mb3J3YXJkXCJcbiAgICAgICAgW2hlaWdodF09XCIyNFwiXG4gICAgICAgIFt3aWR0aF09XCIyNFwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+IC0tPlxuPC9kaXY+XG48L3NlY3Rpb24+Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TwoFactorAuthSetupComponent } from './two-factor-auth-setup.component';
|
|
4
|
+
import { SvgModule, VerbenaButtonModule } from 'verben-ng-ui';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TwoFactorAuthSetupModule {
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupModule, declarations: [TwoFactorAuthSetupComponent], imports: [CommonModule, VerbenaButtonModule, SvgModule], exports: [TwoFactorAuthSetupComponent] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupModule, imports: [CommonModule, VerbenaButtonModule, SvgModule] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthSetupModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [TwoFactorAuthSetupComponent],
|
|
15
|
+
imports: [CommonModule, VerbenaButtonModule, SvgModule],
|
|
16
|
+
exports: [TwoFactorAuthSetupComponent]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLXNldHVwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLXNldHVwL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUJBSnBCLDJCQUEyQixhQUNoQyxZQUFZLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxhQUMxQywyQkFBMkI7eUdBRTFCLHdCQUF3QixZQUh6QixZQUFZLEVBQUMsbUJBQW1CLEVBQUMsU0FBUzs7NEZBR3pDLHdCQUF3QjtrQkFMcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFDLG1CQUFtQixFQUFDLFNBQVMsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUd29GYWN0b3JBdXRoU2V0dXBDb21wb25lbnQgfSBmcm9tICcuL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ZnTW9kdWxlLCBWZXJiZW5hQnV0dG9uTW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVHdvRmFjdG9yQXV0aFNldHVwQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxWZXJiZW5hQnV0dG9uTW9kdWxlLFN2Z01vZHVsZV0sXG4gIGV4cG9ydHM6IFtUd29GYWN0b3JBdXRoU2V0dXBDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhTZXR1cE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const baseStyle = {
|
|
2
|
+
width: "100%",
|
|
3
|
+
fontFamily: '"Fraunces", serif',
|
|
4
|
+
fontSize: '125%',
|
|
5
|
+
whiteSpace: 'nowrap',
|
|
6
|
+
margin: '0',
|
|
7
|
+
border: '1px solid #D4A007',
|
|
8
|
+
borderRadius: '16px',
|
|
9
|
+
borderCollapse: 'separate',
|
|
10
|
+
borderSpacing: '0',
|
|
11
|
+
// tableLayout: 'fixed',
|
|
12
|
+
overflow: 'hidden',
|
|
13
|
+
rows: {
|
|
14
|
+
even: {
|
|
15
|
+
backgroundColor: '#FDFDFD',
|
|
16
|
+
},
|
|
17
|
+
odd: {
|
|
18
|
+
backgroundColor: '#F1F4FB',
|
|
19
|
+
},
|
|
20
|
+
height: '68px',
|
|
21
|
+
},
|
|
22
|
+
cells: {
|
|
23
|
+
padding: '0.5rem 1rem',
|
|
24
|
+
},
|
|
25
|
+
header: {
|
|
26
|
+
stickyTop: true,
|
|
27
|
+
zIndex: 2,
|
|
28
|
+
backgroundColor: '#EFF2FB',
|
|
29
|
+
fontWeight: 'bold',
|
|
30
|
+
textAlign: 'left',
|
|
31
|
+
padding: '12px 16px',
|
|
32
|
+
height: '30px',
|
|
33
|
+
},
|
|
34
|
+
footer: {
|
|
35
|
+
// stickyBottom: true,
|
|
36
|
+
// zIndex: 2,
|
|
37
|
+
padding: '3px',
|
|
38
|
+
},
|
|
39
|
+
// body: {
|
|
40
|
+
// background: '#fff',
|
|
41
|
+
// padding: '4px 5px',
|
|
42
|
+
// textAlign: 'center',
|
|
43
|
+
// },
|
|
44
|
+
// firstColumn: {
|
|
45
|
+
// stickyLeft: true,
|
|
46
|
+
// zIndex: 1,
|
|
47
|
+
// },
|
|
48
|
+
lastColumn: {
|
|
49
|
+
// stickyRight: true,
|
|
50
|
+
// zIndex: 1,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10YWJsZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L2Jhc2UtdGFibGUtc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFRO0lBQzVCLEtBQUssRUFBQyxNQUFNO0lBQ1osVUFBVSxFQUFFLG1CQUFtQjtJQUMvQixRQUFRLEVBQUUsTUFBTTtJQUNoQixVQUFVLEVBQUUsUUFBUTtJQUNwQixNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsWUFBWSxFQUFFLE1BQU07SUFDcEIsY0FBYyxFQUFFLFVBQVU7SUFDMUIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsd0JBQXdCO0lBQ3hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLGVBQWUsRUFBRSxTQUFTO1NBQzNCO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsZUFBZSxFQUFFLFNBQVM7U0FDM0I7UUFDRCxNQUFNLEVBQUUsTUFBTTtLQUNmO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFDRCxNQUFNLEVBQUU7UUFDTixTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxDQUFDO1FBQ1QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsVUFBVSxFQUFFLE1BQU07UUFDbEIsU0FBUyxFQUFFLE1BQU07UUFDakIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsTUFBTSxFQUFFLE1BQU07S0FDZjtJQUNELE1BQU0sRUFBRTtRQUNOLHNCQUFzQjtRQUN0QixhQUFhO1FBQ2IsT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNELFlBQVk7SUFDWiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixPQUFPO0lBQ1AsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixlQUFlO0lBQ2YsS0FBSztJQUNMLFVBQVUsRUFBRTtJQUNWLHFCQUFxQjtJQUNyQixhQUFhO0tBQ2Q7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGJhc2VTdHlsZTogYW55ID0ge1xuICB3aWR0aDpcIjEwMCVcIixcbiAgZm9udEZhbWlseTogJ1wiRnJhdW5jZXNcIiwgc2VyaWYnLFxuICBmb250U2l6ZTogJzEyNSUnLFxuICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgbWFyZ2luOiAnMCcsXG4gIGJvcmRlcjogJzFweCBzb2xpZCAjRDRBMDA3JyxcbiAgYm9yZGVyUmFkaXVzOiAnMTZweCcsXG4gIGJvcmRlckNvbGxhcHNlOiAnc2VwYXJhdGUnLFxuICBib3JkZXJTcGFjaW5nOiAnMCcsXG4gIC8vIHRhYmxlTGF5b3V0OiAnZml4ZWQnLFxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHJvd3M6IHtcbiAgICBldmVuOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkRGREZEJyxcbiAgICB9LFxuICAgIG9kZDoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0YxRjRGQicsXG4gICAgfSxcbiAgICBoZWlnaHQ6ICc2OHB4JyxcbiAgfSxcbiAgY2VsbHM6IHtcbiAgICBwYWRkaW5nOiAnMC41cmVtIDFyZW0nLFxuICB9LFxuICBoZWFkZXI6IHtcbiAgICBzdGlja3lUb3A6IHRydWUsXG4gICAgekluZGV4OiAyLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNFRkYyRkInLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICBoZWlnaHQ6ICczMHB4JyxcbiAgfSxcbiAgZm9vdGVyOiB7XG4gICAgLy8gc3RpY2t5Qm90dG9tOiB0cnVlLFxuICAgIC8vIHpJbmRleDogMixcbiAgICBwYWRkaW5nOiAnM3B4JyxcbiAgfSxcbiAgLy8gICBib2R5OiB7XG4gIC8vICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gIC8vICAgICBwYWRkaW5nOiAnNHB4IDVweCcsXG4gIC8vICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAvLyAgIH0sXG4gIC8vIGZpcnN0Q29sdW1uOiB7XG4gIC8vICAgc3RpY2t5TGVmdDogdHJ1ZSxcbiAgLy8gICB6SW5kZXg6IDEsXG4gIC8vIH0sXG4gIGxhc3RDb2x1bW46IHtcbiAgICAvLyBzdGlja3lSaWdodDogdHJ1ZSxcbiAgICAvLyB6SW5kZXg6IDEsXG4gIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ErrorResponse } from '../../../models/ErrorResponse';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../services/http-web-request.service";
|
|
5
|
+
export class UserManagementService {
|
|
6
|
+
httpService;
|
|
7
|
+
// private readonly BASE_URL = 'https://auth.white360.net/User';
|
|
8
|
+
constructor(httpService) {
|
|
9
|
+
this.httpService = httpService;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get users with pagination and sorting
|
|
13
|
+
* @param skip Number of records to skip
|
|
14
|
+
* @param limit Number of records to take
|
|
15
|
+
* @param sortParam Sort parameter
|
|
16
|
+
* @param sortOrder Sort order ('asc' or 'desc')
|
|
17
|
+
* @returns Promise containing the list of users
|
|
18
|
+
*/
|
|
19
|
+
async getUsers(skip, limit, sortParam, sortOrder) {
|
|
20
|
+
// var response : User[] | ErrorResponse;
|
|
21
|
+
const url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
22
|
+
const res = await this.httpService.get(url);
|
|
23
|
+
if (res instanceof ErrorResponse) {
|
|
24
|
+
return res;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return res.Result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get users with an additional search parameter, pagination, and sorting
|
|
32
|
+
* @param param Search parameter
|
|
33
|
+
* @param skip Number of records to skip
|
|
34
|
+
* @param limit Number of records to take
|
|
35
|
+
* @param sortParam Sort parameter
|
|
36
|
+
* @param sortOrder Sort order ('asc' or 'desc')
|
|
37
|
+
* @returns Promise containing the filtered list of users
|
|
38
|
+
*/
|
|
39
|
+
async getUsersWithParam(param, skip, limit, sortParam, sortOrder) {
|
|
40
|
+
const url = `User/GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
41
|
+
return await this.httpService.get(url);
|
|
42
|
+
}
|
|
43
|
+
async getRealUsers(role, skip, limit, sortParam, sortOrder) {
|
|
44
|
+
let url;
|
|
45
|
+
if (role) {
|
|
46
|
+
// Role is provided, use the "GetUserWithParam" endpoint
|
|
47
|
+
url = `User/GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Role is null, use the "GetUsers" endpoint
|
|
51
|
+
url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
52
|
+
}
|
|
53
|
+
const res = await this.httpService.get(url);
|
|
54
|
+
if (res instanceof ErrorResponse) {
|
|
55
|
+
return res;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return res;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Save multiple users
|
|
63
|
+
* @param users Array of users to save
|
|
64
|
+
* @returns Promise containing the save operation result
|
|
65
|
+
*/
|
|
66
|
+
saveUsers(users) {
|
|
67
|
+
const url = `User/SaveUsers`;
|
|
68
|
+
return this.httpService.post(url, users);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Delete multiple users
|
|
72
|
+
* @param userIds Array of user IDs to delete
|
|
73
|
+
* @returns Observable containing the delete operation result
|
|
74
|
+
*/
|
|
75
|
+
deleteUsers(userIds) {
|
|
76
|
+
const url = `User/DeleteUsers`;
|
|
77
|
+
return this.httpService.delete(`${url}?data=${userIds.join(',')}`);
|
|
78
|
+
}
|
|
79
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementService, deps: [{ token: i1.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
80
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementService, providedIn: 'root' });
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementService, decorators: [{
|
|
83
|
+
type: Injectable,
|
|
84
|
+
args: [{
|
|
85
|
+
providedIn: 'root',
|
|
86
|
+
}]
|
|
87
|
+
}], ctorParameters: () => [{ type: i1.HttpWebRequestService }] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC9zZXJ2aWNlcy91c2VyLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBTzlELE1BQU0sT0FBTyxxQkFBcUI7SUFHWjtJQUZwQixnRUFBZ0U7SUFFaEUsWUFBb0IsV0FBa0M7UUFBbEMsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO0lBQUcsQ0FBQztJQUUxRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FDWixJQUFZLEVBQ1osS0FBYSxFQUNiLFNBQWlCLEVBQ2pCLFNBQWlCO1FBRWpCLHlDQUF5QztRQUN6QyxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsSUFBSSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdkUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUUzQyxJQUFJLEdBQUcsWUFBWSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBUSxHQUF5QixDQUFDLE1BQU0sQ0FBQztRQUMzQyxDQUFDO0lBR0gsQ0FBQztJQUlEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUNyQixLQUFhLEVBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixTQUFpQixFQUNqQixTQUFpQjtRQUVqQixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3hGLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQVcsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FDaEIsSUFBbUIsRUFDbkIsSUFBWSxFQUNaLEtBQWEsRUFDYixTQUFpQixFQUNqQixTQUFpQjtRQUVqQixJQUFJLEdBQVcsQ0FBQztRQUVoQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1Qsd0RBQXdEO1lBQ3hELEdBQUcsR0FBRyx5QkFBeUIsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ25GLENBQUM7YUFBTSxDQUFDO1lBQ04sNENBQTRDO1lBQzVDLEdBQUcsR0FBRyxpQkFBaUIsSUFBSSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUMsSUFBSSxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQVEsR0FBeUIsQ0FBQTtRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBYTtRQUNyQixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUFpQjtRQUMzQixNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxTQUFTLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7d0dBbkdVLHFCQUFxQjs0R0FBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIgIGltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAgaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuICBpbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwLXdlYi1yZXF1ZXN0LnNlcnZpY2UnO1xuICBpbXBvcnQgeyBFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL0Vycm9yUmVzcG9uc2UnO1xuICBpbXBvcnQgeyBQYWdlZFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9QYWdlZFJlc3VsdCc7XG4gIGltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdXNlcic7XG5cbiAgQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgfSlcbiAgZXhwb3J0IGNsYXNzIFVzZXJNYW5hZ2VtZW50U2VydmljZSB7XG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBCQVNFX1VSTCA9ICdodHRwczovL2F1dGgud2hpdGUzNjAubmV0L1VzZXInO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0IHVzZXJzIHdpdGggcGFnaW5hdGlvbiBhbmQgc29ydGluZ1xuICAgICAqIEBwYXJhbSBza2lwIE51bWJlciBvZiByZWNvcmRzIHRvIHNraXBcbiAgICAgKiBAcGFyYW0gbGltaXQgTnVtYmVyIG9mIHJlY29yZHMgdG8gdGFrZVxuICAgICAqIEBwYXJhbSBzb3J0UGFyYW0gU29ydCBwYXJhbWV0ZXJcbiAgICAgKiBAcGFyYW0gc29ydE9yZGVyIFNvcnQgb3JkZXIgKCdhc2MnIG9yICdkZXNjJylcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgdXNlcnNcbiAgICAgKi9cbiAgICBhc3luYyBnZXRVc2VycyhcbiAgICAgIHNraXA6IG51bWJlcixcbiAgICAgIGxpbWl0OiBudW1iZXIsXG4gICAgICBzb3J0UGFyYW06IHN0cmluZyxcbiAgICAgIHNvcnRPcmRlcjogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxVc2VyW10gfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgICAvLyB2YXIgcmVzcG9uc2UgOiBVc2VyW10gfCBFcnJvclJlc3BvbnNlO1xuICAgICAgY29uc3QgdXJsID0gYFVzZXIvR2V0VXNlcnMvJHtza2lwfS8ke2xpbWl0fS8ke3NvcnRQYXJhbX0vJHtzb3J0T3JkZXJ9YDtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybClcblxuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAocmVzIGFzIFBhZ2VkUmVzdWx0PFVzZXI+KS5SZXN1bHQ7XG4gICAgICB9XG5cblxuICAgIH1cblxuXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdXNlcnMgd2l0aCBhbiBhZGRpdGlvbmFsIHNlYXJjaCBwYXJhbWV0ZXIsIHBhZ2luYXRpb24sIGFuZCBzb3J0aW5nXG4gICAgICogQHBhcmFtIHBhcmFtIFNlYXJjaCBwYXJhbWV0ZXJcbiAgICAgKiBAcGFyYW0gc2tpcCBOdW1iZXIgb2YgcmVjb3JkcyB0byBza2lwXG4gICAgICogQHBhcmFtIGxpbWl0IE51bWJlciBvZiByZWNvcmRzIHRvIHRha2VcbiAgICAgKiBAcGFyYW0gc29ydFBhcmFtIFNvcnQgcGFyYW1ldGVyXG4gICAgICogQHBhcmFtIHNvcnRPcmRlciBTb3J0IG9yZGVyICgnYXNjJyBvciAnZGVzYycpXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBjb250YWluaW5nIHRoZSBmaWx0ZXJlZCBsaXN0IG9mIHVzZXJzXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VXNlcnNXaXRoUGFyYW0oXG4gICAgICBwYXJhbTogc3RyaW5nLFxuICAgICAgc2tpcDogbnVtYmVyLFxuICAgICAgbGltaXQ6IG51bWJlcixcbiAgICAgIHNvcnRQYXJhbTogc3RyaW5nLFxuICAgICAgc29ydE9yZGVyOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFVzZXJbXT4ge1xuICAgICAgY29uc3QgdXJsID0gYFVzZXIvR2V0VXNlcldpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgVXNlcltdO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFJlYWxVc2VycyhcbiAgICAgIHJvbGU6IHN0cmluZyB8IG51bGwsXG4gICAgICBza2lwOiBudW1iZXIsXG4gICAgICBsaW1pdDogbnVtYmVyLFxuICAgICAgc29ydFBhcmFtOiBzdHJpbmcsXG4gICAgICBzb3J0T3JkZXI6IHN0cmluZ1xuICAgICl7XG4gICAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgXG4gICAgICBpZiAocm9sZSkge1xuICAgICAgICAvLyBSb2xlIGlzIHByb3ZpZGVkLCB1c2UgdGhlIFwiR2V0VXNlcldpdGhQYXJhbVwiIGVuZHBvaW50XG4gICAgICAgIHVybCA9IGBVc2VyL0dldFVzZXJXaXRoUGFyYW0vJHtyb2xlfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUm9sZSBpcyBudWxsLCB1c2UgdGhlIFwiR2V0VXNlcnNcIiBlbmRwb2ludFxuICAgICAgICB1cmwgPSBgVXNlci9HZXRVc2Vycy8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgICAgfVxuICAgIFxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5odHRwU2VydmljZS5nZXQodXJsKTtcbiAgICBcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKHJlcyBhcyBQYWdlZFJlc3VsdDxVc2VyPilcbiAgICAgIH1cbiAgICB9XG4gICAgXG5cbiAgICAvKipcbiAgICAgKiBTYXZlIG11bHRpcGxlIHVzZXJzXG4gICAgICogQHBhcmFtIHVzZXJzIEFycmF5IG9mIHVzZXJzIHRvIHNhdmVcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIGNvbnRhaW5pbmcgdGhlIHNhdmUgb3BlcmF0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIHNhdmVVc2Vycyh1c2VyczogVXNlcltdKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIGNvbnN0IHVybCA9IGBVc2VyL1NhdmVVc2Vyc2A7XG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgdXNlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBtdWx0aXBsZSB1c2Vyc1xuICAgICAqIEBwYXJhbSB1c2VySWRzIEFycmF5IG9mIHVzZXIgSURzIHRvIGRlbGV0ZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZGVsZXRlIG9wZXJhdGlvbiByZXN1bHRcbiAgICAgKi9cbiAgICBkZWxldGVVc2Vycyh1c2VySWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICBjb25zdCB1cmwgPSBgVXNlci9EZWxldGVVc2Vyc2A7XG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5kZWxldGUoYCR7dXJsfT9kYXRhPSR7dXNlcklkcy5qb2luKCcsJyl9YCk7XG4gICAgfVxuICB9XG4iXX0=
|