spiderly 0.0.2
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/README.md +3 -0
- package/esm2022/lib/components/auth/auth.module.mjs +65 -0
- package/esm2022/lib/components/auth/login/login.component.mjs +60 -0
- package/esm2022/lib/components/auth/partials/auth.component.mjs +53 -0
- package/esm2022/lib/components/auth/partials/login-verification.component.mjs +39 -0
- package/esm2022/lib/components/auth/partials/registration-verification.component.mjs +37 -0
- package/esm2022/lib/components/auth/partials/verification-wrapper.component.mjs +74 -0
- package/esm2022/lib/components/auth/registration/registration.component.mjs +59 -0
- package/esm2022/lib/components/base-details/role-base-details.component.mjs +171 -0
- package/esm2022/lib/components/base-form/base-form copy.mjs +247 -0
- package/esm2022/lib/components/card-skeleton/card-skeleton.component.mjs +25 -0
- package/esm2022/lib/components/footer/footer.component.mjs +16 -0
- package/esm2022/lib/components/index-card/index-card.component.mjs +57 -0
- package/esm2022/lib/components/info-card/info-card.component.mjs +29 -0
- package/esm2022/lib/components/layout/layout-base.component.mjs +120 -0
- package/esm2022/lib/components/layout/sidebar/menuitem.component.mjs +161 -0
- package/esm2022/lib/components/layout/sidebar/sidebar-menu.component.mjs +34 -0
- package/esm2022/lib/components/layout/sidebar/sidebar-menu.service.mjs +26 -0
- package/esm2022/lib/components/layout/sidebar/sidebar.component.mjs +21 -0
- package/esm2022/lib/components/layout/topbar/topbar.component.mjs +115 -0
- package/esm2022/lib/components/not-found/not-found.component.mjs +20 -0
- package/esm2022/lib/components/required/required.component.mjs +12 -0
- package/esm2022/lib/components/spiderly-buttons/google-button/google-button.component.mjs +43 -0
- package/esm2022/lib/components/spiderly-buttons/return-button/return-button.component.mjs +37 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.mjs +20 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.mjs +68 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.mjs +22 -0
- package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +502 -0
- package/esm2022/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.mjs +42 -0
- package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +36 -0
- package/esm2022/lib/components/spiderly-panels/panel-body/panel-body.component.mjs +19 -0
- package/esm2022/lib/components/spiderly-panels/panel-footer/panel-footer.component.mjs +14 -0
- package/esm2022/lib/components/spiderly-panels/panel-header/panel-header.component.mjs +49 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.mjs +20 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.mjs +63 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-panels.module.mjs +49 -0
- package/esm2022/lib/controls/base-autocomplete-control.mjs +18 -0
- package/esm2022/lib/controls/base-control.mjs +62 -0
- package/esm2022/lib/controls/base-dropdown-control.mjs +37 -0
- package/esm2022/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.mjs +60 -0
- package/esm2022/lib/controls/spiderly-calendar/spiderly-calendar.component.mjs +39 -0
- package/esm2022/lib/controls/spiderly-checkbox/spiderly-checkbox.component.mjs +45 -0
- package/esm2022/lib/controls/spiderly-colorpick/spiderly-colorpick.component.mjs +40 -0
- package/esm2022/lib/controls/spiderly-controls.module.mjs +112 -0
- package/esm2022/lib/controls/spiderly-dropdown/spiderly-dropdown.component.mjs +40 -0
- package/esm2022/lib/controls/spiderly-editor/spiderly-editor.component.mjs +59 -0
- package/esm2022/lib/controls/spiderly-file/spiderly-file.component.mjs +106 -0
- package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs +38 -0
- package/esm2022/lib/controls/spiderly-multiselect/spiderly-multiselect.component.mjs +34 -0
- package/esm2022/lib/controls/spiderly-number/spiderly-number.component.mjs +44 -0
- package/esm2022/lib/controls/spiderly-password/spiderly-password.component.mjs +37 -0
- package/esm2022/lib/controls/spiderly-textarea/spiderly-textarea.component.mjs +34 -0
- package/esm2022/lib/controls/spiderly-textbox/spiderly-textbox.component.mjs +45 -0
- package/esm2022/lib/entities/base-entity.mjs +18 -0
- package/esm2022/lib/entities/codebook.mjs +10 -0
- package/esm2022/lib/entities/init-company-auth-dialog-details.mjs +9 -0
- package/esm2022/lib/entities/init-top-bar-data.mjs +12 -0
- package/esm2022/lib/entities/is-authorized-for-save-event.mjs +9 -0
- package/esm2022/lib/entities/last-menu-icon-index-clicked.mjs +8 -0
- package/esm2022/lib/entities/lazy-load-selected-ids-result.mjs +11 -0
- package/esm2022/lib/entities/menuchangeevent.mjs +3 -0
- package/esm2022/lib/entities/mime-type.mjs +15 -0
- package/esm2022/lib/entities/namebook.mjs +9 -0
- package/esm2022/lib/entities/primeng-option.mjs +9 -0
- package/esm2022/lib/entities/security-entities.mjs +169 -0
- package/esm2022/lib/entities/simple-save-result.mjs +9 -0
- package/esm2022/lib/entities/spiderly-button.mjs +11 -0
- package/esm2022/lib/entities/table-filter-context.mjs +3 -0
- package/esm2022/lib/entities/table-filter-sort-meta.mjs +3 -0
- package/esm2022/lib/entities/table-filter.mjs +15 -0
- package/esm2022/lib/entities/table-response.mjs +3 -0
- package/esm2022/lib/enums/security-enums.mjs +26 -0
- package/esm2022/lib/enums/verification-type-codes.mjs +6 -0
- package/esm2022/lib/guards/auth.guard.mjs +40 -0
- package/esm2022/lib/guards/not-auth.guard.mjs +32 -0
- package/esm2022/lib/handlers/spiderly-error-handler.mjs +30 -0
- package/esm2022/lib/handlers/spiderly-transloco-fallback-strategy.mjs +24 -0
- package/esm2022/lib/interceptors/http-loading.interceptor.mjs +27 -0
- package/esm2022/lib/interceptors/json-parser.interceptor.mjs +47 -0
- package/esm2022/lib/interceptors/jwt.interceptor.mjs +27 -0
- package/esm2022/lib/interceptors/unauthorized.interceptor.mjs +64 -0
- package/esm2022/lib/modules/core.module.mjs +140 -0
- package/esm2022/lib/modules/primeng.module.mjs +278 -0
- package/esm2022/lib/modules/spiderly-transloco.module.mjs +44 -0
- package/esm2022/lib/services/api.service.security.mjs +86 -0
- package/esm2022/lib/services/app-initializer.mjs +6 -0
- package/esm2022/lib/services/app-layout-base.service.mjs +132 -0
- package/esm2022/lib/services/auth-base.service.mjs +220 -0
- package/esm2022/lib/services/base-form.service.mjs +124 -0
- package/esm2022/lib/services/config-base.service.mjs +33 -0
- package/esm2022/lib/services/helper-functions.mjs +229 -0
- package/esm2022/lib/services/spiderly-message.service.mjs +64 -0
- package/esm2022/lib/services/spiderly-transloco-loader.mjs +20 -0
- package/esm2022/lib/services/translate-labels-abstract.service.mjs +15 -0
- package/esm2022/lib/services/validator-abstract.service.mjs +51 -0
- package/esm2022/public-api.mjs +94 -0
- package/esm2022/spiderly.mjs +5 -0
- package/fesm2022/spiderly.mjs +4807 -0
- package/fesm2022/spiderly.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/auth/auth.module.d.ts +17 -0
- package/lib/components/auth/login/login.component.d.ts +35 -0
- package/lib/components/auth/partials/auth.component.d.ts +21 -0
- package/lib/components/auth/partials/login-verification.component.d.ts +18 -0
- package/lib/components/auth/partials/registration-verification.component.d.ts +17 -0
- package/lib/components/auth/partials/verification-wrapper.component.d.ts +31 -0
- package/lib/components/auth/registration/registration.component.d.ts +34 -0
- package/lib/components/base-details/role-base-details.component.d.ts +50 -0
- package/lib/components/base-form/base-form copy.d.ts +54 -0
- package/lib/components/card-skeleton/card-skeleton.component.d.ts +12 -0
- package/lib/components/footer/footer.component.d.ts +9 -0
- package/lib/components/index-card/index-card.component.d.ts +22 -0
- package/lib/components/info-card/info-card.component.d.ts +11 -0
- package/lib/components/layout/layout-base.component.d.ts +37 -0
- package/lib/components/layout/sidebar/menuitem.component.d.ts +43 -0
- package/lib/components/layout/sidebar/sidebar-menu.component.d.ts +23 -0
- package/lib/components/layout/sidebar/sidebar-menu.service.d.ts +12 -0
- package/lib/components/layout/sidebar/sidebar.component.d.ts +11 -0
- package/lib/components/layout/topbar/topbar.component.d.ts +45 -0
- package/lib/components/not-found/not-found.component.d.ts +9 -0
- package/lib/components/required/required.component.d.ts +6 -0
- package/lib/components/spiderly-buttons/google-button/google-button.component.d.ts +17 -0
- package/lib/components/spiderly-buttons/return-button/return-button.component.d.ts +10 -0
- package/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.d.ts +6 -0
- package/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.d.ts +27 -0
- package/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.d.ts +8 -0
- package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +157 -0
- package/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.d.ts +11 -0
- package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +37 -0
- package/lib/components/spiderly-panels/panel-body/panel-body.component.d.ts +9 -0
- package/lib/components/spiderly-panels/panel-footer/panel-footer.component.d.ts +8 -0
- package/lib/components/spiderly-panels/panel-header/panel-header.component.d.ts +29 -0
- package/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.d.ts +10 -0
- package/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.d.ts +25 -0
- package/lib/components/spiderly-panels/spiderly-panels.module.d.ts +13 -0
- package/lib/controls/base-autocomplete-control.d.ts +9 -0
- package/lib/controls/base-control.d.ts +23 -0
- package/lib/controls/base-dropdown-control.d.ts +18 -0
- package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +18 -0
- package/lib/controls/spiderly-calendar/spiderly-calendar.component.d.ts +13 -0
- package/lib/controls/spiderly-checkbox/spiderly-checkbox.component.d.ts +14 -0
- package/lib/controls/spiderly-colorpick/spiderly-colorpick.component.d.ts +11 -0
- package/lib/controls/spiderly-controls.module.d.ts +22 -0
- package/lib/controls/spiderly-dropdown/spiderly-dropdown.component.d.ts +14 -0
- package/lib/controls/spiderly-editor/spiderly-editor.component.d.ts +16 -0
- package/lib/controls/spiderly-file/spiderly-file.component.d.ts +36 -0
- package/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.d.ts +13 -0
- package/lib/controls/spiderly-multiselect/spiderly-multiselect.component.d.ts +11 -0
- package/lib/controls/spiderly-number/spiderly-number.component.d.ts +15 -0
- package/lib/controls/spiderly-password/spiderly-password.component.d.ts +12 -0
- package/lib/controls/spiderly-textarea/spiderly-textarea.component.d.ts +11 -0
- package/lib/controls/spiderly-textbox/spiderly-textbox.component.d.ts +15 -0
- package/lib/entities/base-entity.d.ts +14 -0
- package/lib/entities/codebook.d.ts +9 -0
- package/lib/entities/init-company-auth-dialog-details.d.ts +9 -0
- package/lib/entities/init-top-bar-data.d.ts +16 -0
- package/lib/entities/is-authorized-for-save-event.d.ts +9 -0
- package/lib/entities/last-menu-icon-index-clicked.d.ts +7 -0
- package/lib/entities/lazy-load-selected-ids-result.d.ts +9 -0
- package/lib/entities/menuchangeevent.d.ts +4 -0
- package/lib/entities/mime-type.d.ts +11 -0
- package/lib/entities/namebook.d.ts +9 -0
- package/lib/entities/primeng-option.d.ts +9 -0
- package/lib/entities/security-entities.d.ts +211 -0
- package/lib/entities/simple-save-result.d.ts +7 -0
- package/lib/entities/spiderly-button.d.ts +13 -0
- package/lib/entities/table-filter-context.d.ts +5 -0
- package/lib/entities/table-filter-sort-meta.d.ts +4 -0
- package/lib/entities/table-filter.d.ts +23 -0
- package/lib/entities/table-response.d.ts +4 -0
- package/lib/enums/security-enums.d.ts +22 -0
- package/lib/enums/verification-type-codes.d.ts +4 -0
- package/lib/guards/auth.guard.d.ts +15 -0
- package/lib/guards/not-auth.guard.d.ts +12 -0
- package/lib/handlers/spiderly-error-handler.d.ts +14 -0
- package/lib/handlers/spiderly-transloco-fallback-strategy.d.ts +13 -0
- package/lib/interceptors/http-loading.interceptor.d.ts +11 -0
- package/lib/interceptors/json-parser.interceptor.d.ts +11 -0
- package/lib/interceptors/jwt.interceptor.d.ts +11 -0
- package/lib/interceptors/unauthorized.interceptor.d.ts +16 -0
- package/lib/modules/core.module.d.ts +13 -0
- package/lib/modules/primeng.module.d.ts +42 -0
- package/lib/modules/spiderly-transloco.module.d.ts +9 -0
- package/lib/services/api.service.security.d.ts +35 -0
- package/lib/services/app-initializer.d.ts +4 -0
- package/lib/services/app-layout-base.service.d.ts +60 -0
- package/lib/services/auth-base.service.d.ts +55 -0
- package/lib/services/base-form.service.d.ts +27 -0
- package/lib/services/config-base.service.d.ts +24 -0
- package/lib/services/helper-functions.d.ts +37 -0
- package/lib/services/spiderly-message.service.d.ts +17 -0
- package/lib/services/spiderly-transloco-loader.d.ts +10 -0
- package/lib/services/translate-labels-abstract.service.d.ts +7 -0
- package/lib/services/validator-abstract.service.d.ts +13 -0
- package/package.json +60 -0
- package/public-api.d.ts +90 -0
- package/styles/components/spiderly-data-table/spiderly-data-table.component.scss +34 -0
- package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +10 -0
- package/styles/styles/layout/_config.scss +42 -0
- package/styles/styles/layout/_content.scss +12 -0
- package/styles/styles/layout/_footer.scss +9 -0
- package/styles/styles/layout/_main.scss +28 -0
- package/styles/styles/layout/_menu.scss +135 -0
- package/styles/styles/layout/_mixins.scss +13 -0
- package/styles/styles/layout/_preloading.scss +47 -0
- package/styles/styles/layout/_responsive.scss +100 -0
- package/styles/styles/layout/_spiderly-controls.scss +12 -0
- package/styles/styles/layout/_topbar.scss +231 -0
- package/styles/styles/layout/_typography.scss +63 -0
- package/styles/styles/layout/_utils.scss +20 -0
- package/styles/styles/layout/_variables.scss +903 -0
- package/styles/styles/layout/layout.scss +13 -0
- package/styles/styles/shared.scss +519 -0
- package/styles/styles/styles.scss +6 -0
- package/styles/styles/theme/base/_colors.scss +18 -0
- package/styles/styles/theme/base/_common.scss +75 -0
- package/styles/styles/theme/base/_components.scss +106 -0
- package/styles/styles/theme/base/_mixins.scss +343 -0
- package/styles/styles/theme/base/components/button/_button.scss +564 -0
- package/styles/styles/theme/base/components/button/_speeddial.scss +96 -0
- package/styles/styles/theme/base/components/button/_splitbutton.scss +381 -0
- package/styles/styles/theme/base/components/data/_carousel.scss +37 -0
- package/styles/styles/theme/base/components/data/_datatable.scss +338 -0
- package/styles/styles/theme/base/components/data/_dataview.scss +55 -0
- package/styles/styles/theme/base/components/data/_filter.scss +138 -0
- package/styles/styles/theme/base/components/data/_orderlist.scss +103 -0
- package/styles/styles/theme/base/components/data/_organizationchart.scss +50 -0
- package/styles/styles/theme/base/components/data/_paginator.scss +92 -0
- package/styles/styles/theme/base/components/data/_picklist.scss +103 -0
- package/styles/styles/theme/base/components/data/_timeline.scss +81 -0
- package/styles/styles/theme/base/components/data/_tree.scss +149 -0
- package/styles/styles/theme/base/components/data/_treetable.scss +256 -0
- package/styles/styles/theme/base/components/data/_virtualscroller.scss +28 -0
- package/styles/styles/theme/base/components/file/_fileupload.scss +64 -0
- package/styles/styles/theme/base/components/input/_autocomplete.scss +118 -0
- package/styles/styles/theme/base/components/input/_calendar.scss +263 -0
- package/styles/styles/theme/base/components/input/_cascadeselect.scss +130 -0
- package/styles/styles/theme/base/components/input/_checkbox.scss +90 -0
- package/styles/styles/theme/base/components/input/_chips.scss +55 -0
- package/styles/styles/theme/base/components/input/_colorpicker.scss +26 -0
- package/styles/styles/theme/base/components/input/_dropdown.scss +152 -0
- package/styles/styles/theme/base/components/input/_editor.scss +122 -0
- package/styles/styles/theme/base/components/input/_inputgroup.scss +75 -0
- package/styles/styles/theme/base/components/input/_inputmask.scss +16 -0
- package/styles/styles/theme/base/components/input/_inputnumber.scss +28 -0
- package/styles/styles/theme/base/components/input/_inputswitch.scss +60 -0
- package/styles/styles/theme/base/components/input/_inputtext.scss +100 -0
- package/styles/styles/theme/base/components/input/_listbox.scss +82 -0
- package/styles/styles/theme/base/components/input/_multiselect.scss +173 -0
- package/styles/styles/theme/base/components/input/_password.scss +52 -0
- package/styles/styles/theme/base/components/input/_radiobutton.scss +78 -0
- package/styles/styles/theme/base/components/input/_rating.scss +55 -0
- package/styles/styles/theme/base/components/input/_selectbutton.scss +50 -0
- package/styles/styles/theme/base/components/input/_slider.scss +71 -0
- package/styles/styles/theme/base/components/input/_togglebutton.scss +48 -0
- package/styles/styles/theme/base/components/input/_treeselect.scss +139 -0
- package/styles/styles/theme/base/components/menu/_breadcrumb.scss +42 -0
- package/styles/styles/theme/base/components/menu/_contextmenu.scss +39 -0
- package/styles/styles/theme/base/components/menu/_dock.scss +95 -0
- package/styles/styles/theme/base/components/menu/_megamenu.scss +55 -0
- package/styles/styles/theme/base/components/menu/_menu.scss +37 -0
- package/styles/styles/theme/base/components/menu/_menubar.scss +141 -0
- package/styles/styles/theme/base/components/menu/_panelmenu.scss +153 -0
- package/styles/styles/theme/base/components/menu/_slidemenu.scss +59 -0
- package/styles/styles/theme/base/components/menu/_steps.scss +56 -0
- package/styles/styles/theme/base/components/menu/_tabmenu.scss +74 -0
- package/styles/styles/theme/base/components/menu/_tieredmenu.scss +43 -0
- package/styles/styles/theme/base/components/messages/_inlinemessage.scss +69 -0
- package/styles/styles/theme/base/components/messages/_message.scss +107 -0
- package/styles/styles/theme/base/components/messages/_toast.scss +103 -0
- package/styles/styles/theme/base/components/misc/_avatar.scss +30 -0
- package/styles/styles/theme/base/components/misc/_badge.scss +48 -0
- package/styles/styles/theme/base/components/misc/_blockui.scss +0 -0
- package/styles/styles/theme/base/components/misc/_chip.scss +42 -0
- package/styles/styles/theme/base/components/misc/_inplace.scss +17 -0
- package/styles/styles/theme/base/components/misc/_progressbar.scss +17 -0
- package/styles/styles/theme/base/components/misc/_scrolltop.scss +25 -0
- package/styles/styles/theme/base/components/misc/_skeleton.scss +8 -0
- package/styles/styles/theme/base/components/misc/_tag.scss +40 -0
- package/styles/styles/theme/base/components/misc/_terminal.scss +12 -0
- package/styles/styles/theme/base/components/multimedia/_galleria.scss +155 -0
- package/styles/styles/theme/base/components/multimedia/_image.scss +49 -0
- package/styles/styles/theme/base/components/overlay/_confirmpopup.scss +72 -0
- package/styles/styles/theme/base/components/overlay/_dialog.scss +73 -0
- package/styles/styles/theme/base/components/overlay/_overlaypanel.scss +64 -0
- package/styles/styles/theme/base/components/overlay/_sidebar.scss +27 -0
- package/styles/styles/theme/base/components/overlay/_tooltip.scss +33 -0
- package/styles/styles/theme/base/components/panel/_accordion.scss +119 -0
- package/styles/styles/theme/base/components/panel/_card.scss +30 -0
- package/styles/styles/theme/base/components/panel/_divider.scss +31 -0
- package/styles/styles/theme/base/components/panel/_fieldset.scss +47 -0
- package/styles/styles/theme/base/components/panel/_panel.scss +58 -0
- package/styles/styles/theme/base/components/panel/_scrollpanel.scss +6 -0
- package/styles/styles/theme/base/components/panel/_splitter.scss +19 -0
- package/styles/styles/theme/base/components/panel/_tabview.scss +82 -0
- package/styles/styles/theme/base/components/panel/_toolbar.scss +11 -0
- package/styles/styles/theme/saga/_extensions.scss +27 -0
- package/styles/styles/theme/saga/_variables.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/_extensions.scss +2 -0
- package/styles/styles/theme/saga/saga-blue/_fonts.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/_variables.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/theme.scss +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { RegistrationComponent } from './registration/registration.component';
|
|
4
|
+
import { LoginComponent } from './login/login.component';
|
|
5
|
+
import { AuthComponent } from './partials/auth.component';
|
|
6
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
7
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
10
|
+
import { SpiderlyControlsModule } from '../../controls/spiderly-controls.module';
|
|
11
|
+
import { LoginVerificationComponent } from './partials/login-verification.component';
|
|
12
|
+
import { RegistrationVerificationComponent } from './partials/registration-verification.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/router";
|
|
15
|
+
const routes = [
|
|
16
|
+
{
|
|
17
|
+
path: 'registration',
|
|
18
|
+
component: RegistrationComponent
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
path: 'login',
|
|
22
|
+
component: LoginComponent
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
export class AuthModule {
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
27
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, declarations: [RegistrationComponent,
|
|
28
|
+
LoginComponent], imports: [i1.RouterModule, CommonModule,
|
|
29
|
+
ReactiveFormsModule,
|
|
30
|
+
AuthComponent,
|
|
31
|
+
PrimengModule,
|
|
32
|
+
SpiderlyControlsModule,
|
|
33
|
+
LoginVerificationComponent,
|
|
34
|
+
RegistrationVerificationComponent,
|
|
35
|
+
TranslocoDirective] }); }
|
|
36
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, imports: [RouterModule.forChild(routes),
|
|
37
|
+
CommonModule,
|
|
38
|
+
ReactiveFormsModule,
|
|
39
|
+
AuthComponent,
|
|
40
|
+
PrimengModule,
|
|
41
|
+
SpiderlyControlsModule,
|
|
42
|
+
LoginVerificationComponent,
|
|
43
|
+
RegistrationVerificationComponent] }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, decorators: [{
|
|
46
|
+
type: NgModule,
|
|
47
|
+
args: [{
|
|
48
|
+
imports: [
|
|
49
|
+
RouterModule.forChild(routes),
|
|
50
|
+
CommonModule,
|
|
51
|
+
ReactiveFormsModule,
|
|
52
|
+
AuthComponent,
|
|
53
|
+
PrimengModule,
|
|
54
|
+
SpiderlyControlsModule,
|
|
55
|
+
LoginVerificationComponent,
|
|
56
|
+
RegistrationVerificationComponent,
|
|
57
|
+
TranslocoDirective,
|
|
58
|
+
],
|
|
59
|
+
declarations: [
|
|
60
|
+
RegistrationComponent,
|
|
61
|
+
LoginComponent,
|
|
62
|
+
]
|
|
63
|
+
}]
|
|
64
|
+
}] });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQUVuRyxNQUFNLE1BQU0sR0FBVztJQUNuQjtRQUNJLElBQUksRUFBRSxjQUFjO1FBQ3BCLFNBQVMsRUFBRSxxQkFBcUI7S0FDbkM7SUFDRDtRQUNJLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLGNBQWM7S0FDNUI7Q0FDSixDQUFDO0FBbUJGLE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFKZixxQkFBcUI7WUFDckIsY0FBYyw4QkFYZCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQixpQ0FBaUM7WUFDakMsa0JBQWtCO2dIQU9iLFVBQVUsWUFmZixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM3QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQixpQ0FBaUM7OzRGQVE1QixVQUFVO2tCQWpCdEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQzdCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLGlDQUFpQzt3QkFDakMsa0JBQWtCO3FCQUNyQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YscUJBQXFCO3dCQUNyQixjQUFjO3FCQUNqQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9yZWdpc3RyYXRpb24vcmVnaXN0cmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9hdXRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgU3BpZGVybHlDb250cm9sc01vZHVsZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3NwaWRlcmx5LWNvbnRyb2xzLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvZ2luVmVyaWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9sb2dpbi12ZXJpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICAgIHsgXHJcbiAgICAgICAgcGF0aDogJ3JlZ2lzdHJhdGlvbicsIFxyXG4gICAgICAgIGNvbXBvbmVudDogUmVnaXN0cmF0aW9uQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgeyBcclxuICAgICAgICBwYXRoOiAnbG9naW4nLCBcclxuICAgICAgICBjb21wb25lbnQ6IExvZ2luQ29tcG9uZW50XHJcbiAgICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBBdXRoQ29tcG9uZW50LFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgU3BpZGVybHlDb250cm9sc01vZHVsZSxcclxuICAgICAgICBMb2dpblZlcmlmaWNhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBSZWdpc3RyYXRpb25WZXJpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFJlZ2lzdHJhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBMb2dpbkNvbXBvbmVudCxcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BaseFormCopy } from '../../base-form/base-form copy';
|
|
3
|
+
import { Login } from '../../../entities/security-entities';
|
|
4
|
+
import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
import * as i2 from "../../../services/spiderly-message.service";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@jsverse/transloco";
|
|
10
|
+
import * as i5 from "../../../services/base-form.service";
|
|
11
|
+
import * as i6 from "../../../services/auth-base.service";
|
|
12
|
+
import * as i7 from "../../../services/config-base.service";
|
|
13
|
+
import * as i8 from "@angular/common";
|
|
14
|
+
import * as i9 from "@angular/forms";
|
|
15
|
+
import * as i10 from "../partials/auth.component";
|
|
16
|
+
import * as i11 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
|
|
17
|
+
import * as i12 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
|
|
18
|
+
import * as i13 from "../partials/login-verification.component";
|
|
19
|
+
export class LoginComponent extends BaseFormCopy {
|
|
20
|
+
constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService, authService, config) {
|
|
21
|
+
super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
|
|
22
|
+
this.differs = differs;
|
|
23
|
+
this.http = http;
|
|
24
|
+
this.messageService = messageService;
|
|
25
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
26
|
+
this.router = router;
|
|
27
|
+
this.route = route;
|
|
28
|
+
this.translocoService = translocoService;
|
|
29
|
+
this.baseFormService = baseFormService;
|
|
30
|
+
this.authService = authService;
|
|
31
|
+
this.config = config;
|
|
32
|
+
this.loginFormGroup = new SpiderlyFormGroup({});
|
|
33
|
+
this.showEmailSentDialog = false;
|
|
34
|
+
this.usersCanRegister = this.config.usersCanRegister;
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
this.initLoginFormGroup(new Login({}));
|
|
38
|
+
}
|
|
39
|
+
initLoginFormGroup(model) {
|
|
40
|
+
this.initFormGroup(this.loginFormGroup, this.formGroup, model, model.typeName, []);
|
|
41
|
+
}
|
|
42
|
+
companyNameChange(companyName) {
|
|
43
|
+
this.companyName = companyName;
|
|
44
|
+
}
|
|
45
|
+
sendLoginVerificationEmail() {
|
|
46
|
+
let isFormGroupValid = this.baseFormService.checkFormGroupValidity(this.loginFormGroup);
|
|
47
|
+
if (isFormGroupValid == false)
|
|
48
|
+
return;
|
|
49
|
+
this.authService.sendLoginVerificationEmail(this.loginFormGroup.getRawValue()).subscribe(() => {
|
|
50
|
+
this.showEmailSentDialog = true;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }, { token: i6.AuthBaseService }, { token: i7.ConfigBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LoginComponent, selector: "app-login", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (loginFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0; margin-bottom: 32px;\">\r\n <spiderly-textbox [control]=\"control('email', loginFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('Login')\" (onClick)=\"sendLoginVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button *ngIf=\"usersCanRegister\" [label]=\"t('NewToJoinNow', {companyName: companyName})\" routerLink=\"/registration\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <login-verification [email]=\"loginFormGroup.controls.email.getRawValue()\"></login-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.AuthComponent, selector: "auth", inputs: ["showGoogleAuth"], outputs: ["onCompanyNameChange"] }, { kind: "component", type: i11.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i12.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i13.LoginVerificationComponent, selector: "login-verification", inputs: ["email", "userId"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'app-login', template: "<ng-container *transloco=\"let t\">\r\n @if (loginFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0; margin-bottom: 32px;\">\r\n <spiderly-textbox [control]=\"control('email', loginFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('Login')\" (onClick)=\"sendLoginVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button *ngIf=\"usersCanRegister\" [label]=\"t('NewToJoinNow', {companyName: companyName})\" routerLink=\"/registration\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <login-verification [email]=\"loginFormGroup.controls.email.getRawValue()\"></login-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>" }]
|
|
59
|
+
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }, { type: i6.AuthBaseService }, { type: i7.ConfigBaseService }] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixTQUFTLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVV0RixNQUFNLE9BQU8sY0FBZSxTQUFRLFlBQVk7SUFPNUMsWUFDcUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDM0MsV0FBNEIsRUFDNUIsTUFBeUI7UUFFakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFYdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDM0MsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBaEJuQyxtQkFBYyxHQUFHLElBQUksaUJBQWlCLENBQVEsRUFBRSxDQUFDLENBQUM7UUFHbEQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFlekQsQ0FBQztJQUVRLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixJQUFJLGdCQUFnQixHQUFZLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpHLElBQUksZ0JBQWdCLElBQUksS0FBSztZQUMzQixPQUFPO1FBRVQsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUUsRUFBRTtZQUN6RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0EzQ1EsY0FBYzttR0FBZCxjQUFjLHdFQ2hCM0IsdWhEQXdCZTs7NEZEUkYsY0FBYztrQkFKMUIsU0FBUzsrQkFDSSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEtleVZhbHVlRGlmZmVycywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBCYXNlRm9ybUNvcHkgfSBmcm9tICcuLi8uLi9iYXNlLWZvcm0vYmFzZS1mb3JtIGNvcHknO1xyXG5pbXBvcnQgeyBMb2dpbiB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3NlY3VyaXR5LWVudGl0aWVzJztcclxuaW1wb3J0IHsgU3BpZGVybHlGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9zcGlkZXJseS1mb3JtLWNvbnRyb2wvc3BpZGVybHktZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHsgU3BpZGVybHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NwaWRlcmx5LW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWdCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy1iYXNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1sb2dpbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvcHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgbG9naW5Gb3JtR3JvdXAgPSBuZXcgU3BpZGVybHlGb3JtR3JvdXA8TG9naW4+KHt9KTtcclxuXHJcbiAgICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG4gICAgc2hvd0VtYWlsU2VudERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdXNlcnNDYW5SZWdpc3RlcjogYm9vbGVhbiA9IHRoaXMuY29uZmlnLnVzZXJzQ2FuUmVnaXN0ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGJhc2VGb3JtU2VydmljZTogQmFzZUZvcm1TZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoQmFzZVNlcnZpY2UsIFxyXG4gICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnQmFzZVNlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgc3VwZXIoZGlmZmVycywgaHR0cCwgbWVzc2FnZVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmLCByb3V0ZXIsIHJvdXRlLCB0cmFuc2xvY29TZXJ2aWNlLCBiYXNlRm9ybVNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgdGhpcy5pbml0TG9naW5Gb3JtR3JvdXAobmV3IExvZ2luKHt9KSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGluaXRMb2dpbkZvcm1Hcm91cChtb2RlbDogTG9naW4pe1xyXG4gICAgICB0aGlzLmluaXRGb3JtR3JvdXAodGhpcy5sb2dpbkZvcm1Hcm91cCwgdGhpcy5mb3JtR3JvdXAsIG1vZGVsLCBtb2RlbC50eXBlTmFtZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhbnlOYW1lQ2hhbmdlKGNvbXBhbnlOYW1lOiBzdHJpbmcpe1xyXG4gICAgICB0aGlzLmNvbXBhbnlOYW1lID0gY29tcGFueU5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZExvZ2luVmVyaWZpY2F0aW9uRW1haWwoKSB7XHJcbiAgICAgICAgbGV0IGlzRm9ybUdyb3VwVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMubG9naW5Gb3JtR3JvdXApO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChpc0Zvcm1Hcm91cFZhbGlkID09IGZhbHNlKSBcclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCh0aGlzLmxvZ2luRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSgoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFbWFpbFNlbnREaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxyXG4gICAgQGlmIChsb2dpbkZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgQGlmIChzaG93RW1haWxTZW50RGlhbG9nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxhdXRoIChvbkNvbXBhbnlOYW1lQ2hhbmdlKT1cImNvbXBhbnlOYW1lQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPiA8IS0tIEZUOiBXZSBhcmUgbm90IGxvYWRpbmcgYW55dGhpbmcgZnJvbSB0aGUgc2VydmVyIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCBkZWZlciBibG9jayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDA7IG1hcmdpbi1ib3R0b206IDMycHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ2VtYWlsJywgbG9naW5Gb3JtR3JvdXApXCI+PC9zcGlkZXJseS10ZXh0Ym94PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE2cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gW2xhYmVsXT1cInQoJ0xvZ2luJylcIiAob25DbGljayk9XCJzZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCgpXCIgW291dGxpbmVkXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHBvc3NpYmlsaXR5IHRvIGNoYW5nZSB0aGlzIG5hbWUgZnJvbSB0aGUgc3BlY2lmaWMgcHJvamVjdCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiAqbmdJZj1cInVzZXJzQ2FuUmVnaXN0ZXJcIiBbbGFiZWxdPVwidCgnTmV3VG9Kb2luTm93Jywge2NvbXBhbnlOYW1lOiBjb21wYW55TmFtZX0pXCIgcm91dGVyTGluaz1cIi9yZWdpc3RyYXRpb25cIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvYXV0aD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8bG9naW4tdmVyaWZpY2F0aW9uIFtlbWFpbF09XCJsb2dpbkZvcm1Hcm91cC5jb250cm9scy5lbWFpbC5nZXRSYXdWYWx1ZSgpXCI+PC9sb2dpbi12ZXJpZmljYXRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHNrZWxldG9uIC0tPlxyXG4gICAgfVxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { TranslocoDirective } from "@jsverse/transloco";
|
|
4
|
+
import { GoogleButtonComponent } from "../../spiderly-buttons/google-button/google-button.component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../services/config-base.service";
|
|
7
|
+
import * as i2 from "../../../services/auth-base.service";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
export class AuthComponent {
|
|
10
|
+
constructor(config, authService) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.authService = authService;
|
|
13
|
+
this.initCompanyAuthDialogDetailsSubscription = null;
|
|
14
|
+
this.onCompanyNameChange = new EventEmitter();
|
|
15
|
+
this.showGoogleAuth = true;
|
|
16
|
+
this.hasGoogleAuth = this.config.googleAuth;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.initCompanyDetails();
|
|
20
|
+
}
|
|
21
|
+
initCompanyDetails() {
|
|
22
|
+
this.initCompanyAuthDialogDetailsSubscription = this.authService.initCompanyAuthDialogDetails().subscribe(initCompanyAuthDialogDetails => {
|
|
23
|
+
if (initCompanyAuthDialogDetails != null) {
|
|
24
|
+
this.image = initCompanyAuthDialogDetails.image;
|
|
25
|
+
this.companyName = initCompanyAuthDialogDetails.companyName;
|
|
26
|
+
this.onCompanyNameChange.next(this.companyName);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
onGoogleSignIn(googleWrapper) {
|
|
31
|
+
googleWrapper.click();
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
if (this.initCompanyAuthDialogDetailsSubscription) {
|
|
35
|
+
this.initCompanyAuthDialogDetailsSubscription.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthComponent, deps: [{ token: i1.ConfigBaseService }, { token: i2.AuthBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuthComponent, isStandalone: true, selector: "auth", inputs: { showGoogleAuth: "showGoogleAuth" }, outputs: { onCompanyNameChange: "onCompanyNameChange" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\" style=\"margin-bottom: 38px;\">\r\n <img *ngIf=\"image != null\" [src]=\"image\" alt=\"{{companyName}} Logo\" height=\"60\">\r\n <i *ngIf=\"image == null\" class=\"pi pi-spin pi-spinner primary-color\" style=\"font-size: 2rem\"></i>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"hasGoogleAuth && showGoogleAuth\">\r\n <div style=\"display: flex; align-items: center; gap: 7px; justify-content: center; margin-bottom: 16px;\">\r\n <div class=\"separator\"></div>\r\n <div>{{t('or')}}</div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div>\r\n <!-- https://code-maze.com/how-to-sign-in-with-google-angular-aspnet-webapi/ -->\r\n <google-button (loginWithGoogle)=\"onGoogleSignIn($event)\"></google-button> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GoogleButtonComponent, selector: "google-button", outputs: ["loginWithGoogle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'auth', imports: [
|
|
44
|
+
CommonModule,
|
|
45
|
+
GoogleButtonComponent,
|
|
46
|
+
TranslocoDirective,
|
|
47
|
+
], standalone: true, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\" style=\"margin-bottom: 38px;\">\r\n <img *ngIf=\"image != null\" [src]=\"image\" alt=\"{{companyName}} Logo\" height=\"60\">\r\n <i *ngIf=\"image == null\" class=\"pi pi-spin pi-spinner primary-color\" style=\"font-size: 2rem\"></i>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"hasGoogleAuth && showGoogleAuth\">\r\n <div style=\"display: flex; align-items: center; gap: 7px; justify-content: center; margin-bottom: 16px;\">\r\n <div class=\"separator\"></div>\r\n <div>{{t('or')}}</div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div>\r\n <!-- https://code-maze.com/how-to-sign-in-with-google-angular-aspnet-webapi/ -->\r\n <google-button (loginWithGoogle)=\"onGoogleSignIn($event)\"></google-button> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>" }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.ConfigBaseService }, { type: i2.AuthBaseService }], propDecorators: { onCompanyNameChange: [{
|
|
49
|
+
type: Output
|
|
50
|
+
}], showGoogleAuth: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7O0FBZXJHLE1BQU0sT0FBTyxhQUFhO0lBVXhCLFlBQ1UsTUFBeUIsRUFDekIsV0FBNEI7UUFENUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBWDlCLDZDQUF3QyxHQUF3QixJQUFJLENBQUM7UUFFbkUsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEUsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFeEMsa0JBQWEsR0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQVNoRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLHdDQUF3QyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsRUFBRTtZQUN2SSxJQUFJLDRCQUE0QixJQUFJLElBQUksRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqRDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxhQUFrQjtRQUMvQixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx3Q0FBd0MsRUFBRTtZQUNqRCxJQUFJLENBQUMsd0NBQXdDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0Q7SUFDSCxDQUFDOytHQXZDVSxhQUFhO21HQUFiLGFBQWEsdUtDbkIxQixrc0RBNEJlLDJDRGZYLFlBQVksbUlBQ1oscUJBQXFCLHdGQUNyQixrQkFBa0I7OzRGQUlULGFBQWE7a0JBWHpCLFNBQVM7K0JBQ0UsTUFBTSxXQUdQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CLGNBQ1csSUFBSTtvSEFLTixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tIFwiQGpzdmVyc2UvdHJhbnNsb2NvXCI7XHJcbmltcG9ydCB7IEdvb2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9zcGlkZXJseS1idXR0b25zL2dvb2dsZS1idXR0b24vZ29vZ2xlLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29uZmlnQmFzZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvY29uZmlnLWJhc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoQmFzZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgR29vZ2xlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhDb21wb25lbnQge1xyXG4gIHByaXZhdGUgaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNvbXBhbnlOYW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBzaG93R29vZ2xlQXV0aDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGhhc0dvb2dsZUF1dGg6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5nb29nbGVBdXRoO1xyXG4gIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbiAgaW1hZ2U6IHN0cmluZztcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdCYXNlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhCYXNlU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5pbml0Q29tcGFueURldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIGluaXRDb21wYW55RGV0YWlscygpIHtcclxuICAgIHRoaXMuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbiA9IHRoaXMuYXV0aFNlcnZpY2UuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscygpLnN1YnNjcmliZShpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzID0+IHtcclxuICAgICAgaWYgKGluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHMgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaW1hZ2UgPSBpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzLmltYWdlO1xyXG4gICAgICAgIHRoaXMuY29tcGFueU5hbWUgPSBpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzLmNvbXBhbnlOYW1lO1xyXG4gICAgICAgIHRoaXMub25Db21wYW55TmFtZUNoYW5nZS5uZXh0KHRoaXMuY29tcGFueU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25Hb29nbGVTaWduSW4oZ29vZ2xlV3JhcHBlcjogYW55KXtcclxuICAgIGdvb2dsZVdyYXBwZXIuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtaW4taC1zY3JlZW4gb3ZlcmZsb3ctaGlkZGVuXCIgc3R5bGU9XCJwYWRkaW5nOiAyMHB4O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIHctZnVsbFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHNtOnctMzByZW1cIiBzdHlsZT1cIm1hcmdpbjogYXV0bzsgYm9yZGVyLXJhZGl1czo1MHB4OyBwYWRkaW5nOjAuM3JlbTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcHJpbWFyeS1jb2xvcikgMTAlLCByZ2JhKDMzLCAxNTAsIDI0MywgMCkgMzAlKTtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJmYWNlLWNhcmQgcHktNiBweC01IHNtOnB4LTZcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6NDVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDM4cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpbWFnZSAhPSBudWxsXCIgW3NyY109XCJpbWFnZVwiIGFsdD1cInt7Y29tcGFueU5hbWV9fSBMb2dvXCIgaGVpZ2h0PVwiNjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWFnZSA9PSBudWxsXCIgY2xhc3M9XCJwaSBwaS1zcGluIHBpLXNwaW5uZXIgcHJpbWFyeS1jb2xvclwiIHN0eWxlPVwiZm9udC1zaXplOiAycmVtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzR29vZ2xlQXV0aCAmJiBzaG93R29vZ2xlQXV0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA3cHg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3QoJ29yJyl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gaHR0cHM6Ly9jb2RlLW1hemUuY29tL2hvdy10by1zaWduLWluLXdpdGgtZ29vZ2xlLWFuZ3VsYXItYXNwbmV0LXdlYmFwaS8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29vZ2xlLWJ1dHRvbiAobG9naW5XaXRoR29vZ2xlKT1cIm9uR29vZ2xlU2lnbkluKCRldmVudClcIj48L2dvb2dsZS1idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { VerificationWrapperComponent } from './verification-wrapper.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../services/auth-base.service";
|
|
5
|
+
import * as i2 from "../../../services/spiderly-message.service";
|
|
6
|
+
import * as i3 from "@jsverse/transloco";
|
|
7
|
+
export class LoginVerificationComponent {
|
|
8
|
+
constructor(authService, messageService, translocoService) {
|
|
9
|
+
this.authService = authService;
|
|
10
|
+
this.messageService = messageService;
|
|
11
|
+
this.translocoService = translocoService;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
}
|
|
15
|
+
resendVerificationToken() {
|
|
16
|
+
this.authService.sendLoginVerificationEmail({ email: this.email }).subscribe(() => {
|
|
17
|
+
this.messageService.successMessage(this.translocoService.translate('SuccessfullySentVerificationCode'));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
onCodeSubmit(event) {
|
|
21
|
+
this.authService.login({ email: this.email, verificationCode: event }).subscribe(() => {
|
|
22
|
+
this.messageService.successMessage(this.translocoService.translate('YouHaveSuccessfullyVerifiedYourAccount'));
|
|
23
|
+
this.authService.navigateToDashboard();
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginVerificationComponent, deps: [{ token: i1.AuthBaseService }, { token: i2.SpiderlyMessageService }, { token: i3.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoginVerificationComponent, isStandalone: true, selector: "login-verification", inputs: { email: "email", userId: "userId" }, ngImport: i0, template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n\r\n", dependencies: [{ kind: "component", type: VerificationWrapperComponent, selector: "verification-wrapper", inputs: ["email"], outputs: ["onResendVerificationToken", "onCodeSubmit"] }] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginVerificationComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'login-verification', standalone: true, imports: [
|
|
32
|
+
VerificationWrapperComponent
|
|
33
|
+
], template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n\r\n" }]
|
|
34
|
+
}], ctorParameters: () => [{ type: i1.AuthBaseService }, { type: i2.SpiderlyMessageService }, { type: i3.TranslocoService }], propDecorators: { email: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], userId: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9sb2dpbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTywwQkFBMEI7SUFJbkMsWUFDVSxXQUE0QixFQUM1QixjQUFzQyxFQUN0QyxnQkFBa0M7UUFGbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6QlEsMEJBQTBCO21HQUExQiwwQkFBMEIsNEhDZHZDLDJLQUVBLDRDRFNRLDRCQUE0Qjs7NEZBR3ZCLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSxvQkFBb0IsY0FFbEIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0QjtxQkFDL0I7d0pBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi92ZXJpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3BpZGVybHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NwaWRlcmx5LW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgtYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsb2dpbi12ZXJpZmljYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIFZlcmlmaWNhdGlvbldyYXBwZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luVmVyaWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1c2VySWQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aEJhc2VTZXJ2aWNlLCBcclxuICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCl7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCh7ZW1haWw6IHRoaXMuZW1haWx9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1N1Y2Nlc3NmdWxseVNlbnRWZXJpZmljYXRpb25Db2RlJykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29kZVN1Ym1pdChldmVudDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKHtlbWFpbDogdGhpcy5lbWFpbCwgdmVyaWZpY2F0aW9uQ29kZTogZXZlbnR9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1lvdUhhdmVTdWNjZXNzZnVsbHlWZXJpZmllZFlvdXJBY2NvdW50JykpO1xyXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm5hdmlnYXRlVG9EYXNoYm9hcmQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuIiwiPHZlcmlmaWNhdGlvbi13cmFwcGVyIFtlbWFpbF09XCJlbWFpbFwiIChvblJlc2VuZFZlcmlmaWNhdGlvblRva2VuKT1cInJlc2VuZFZlcmlmaWNhdGlvblRva2VuKClcIiAob25Db2RlU3VibWl0KT1cIm9uQ29kZVN1Ym1pdCgkZXZlbnQpXCI+PC92ZXJpZmljYXRpb24td3JhcHBlcj5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { VerificationWrapperComponent } from './verification-wrapper.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../services/auth-base.service";
|
|
5
|
+
import * as i2 from "../../../services/spiderly-message.service";
|
|
6
|
+
import * as i3 from "@jsverse/transloco";
|
|
7
|
+
export class RegistrationVerificationComponent {
|
|
8
|
+
constructor(authService, messageService, translocoService) {
|
|
9
|
+
this.authService = authService;
|
|
10
|
+
this.messageService = messageService;
|
|
11
|
+
this.translocoService = translocoService;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
}
|
|
15
|
+
resendVerificationToken() {
|
|
16
|
+
this.authService.sendRegistrationVerificationEmail({ email: this.email }).subscribe(() => {
|
|
17
|
+
this.messageService.successMessage(this.translocoService.translate('SuccessfullySentVerificationCode'));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
onCodeSubmit(event) {
|
|
21
|
+
this.authService.register({ email: this.email, verificationCode: event }).subscribe(() => {
|
|
22
|
+
this.messageService.successMessage(this.translocoService.translate('YouHaveSuccessfullyVerifiedYourAccount'));
|
|
23
|
+
this.authService.navigateToDashboard();
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationVerificationComponent, deps: [{ token: i1.AuthBaseService }, { token: i2.SpiderlyMessageService }, { token: i3.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RegistrationVerificationComponent, isStandalone: true, selector: "registration-verification", inputs: { email: "email" }, ngImport: i0, template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n", dependencies: [{ kind: "component", type: VerificationWrapperComponent, selector: "verification-wrapper", inputs: ["email"], outputs: ["onResendVerificationToken", "onCodeSubmit"] }] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationVerificationComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'registration-verification', standalone: true, imports: [
|
|
32
|
+
VerificationWrapperComponent
|
|
33
|
+
], template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n" }]
|
|
34
|
+
}], ctorParameters: () => [{ type: i1.AuthBaseService }, { type: i2.SpiderlyMessageService }, { type: i3.TranslocoService }], propDecorators: { email: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyxpQ0FBaUM7SUFHMUMsWUFDVSxXQUE0QixFQUM1QixjQUFzQyxFQUN0QyxnQkFBa0M7UUFGbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F4QlEsaUNBQWlDO21HQUFqQyxpQ0FBaUMsaUhDZDlDLHVLQUNBLDRDRFVRLDRCQUE0Qjs7NEZBR3ZCLGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDSSwyQkFBMkIsY0FFekIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0QjtxQkFDL0I7d0pBR1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZlcmlmaWNhdGlvbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3ZlcmlmaWNhdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTcGlkZXJseU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3BpZGVybHktbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25WZXJpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgZW1haWw6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aEJhc2VTZXJ2aWNlLCBcclxuICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSwgXHJcbiAgICAgIHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpe1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwoe2VtYWlsOiB0aGlzLmVtYWlsfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzTWVzc2FnZSh0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdTdWNjZXNzZnVsbHlTZW50VmVyaWZpY2F0aW9uQ29kZScpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNvZGVTdWJtaXQoZXZlbnQ6IHN0cmluZyl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWdpc3Rlcih7ZW1haWw6IHRoaXMuZW1haWwsIHZlcmlmaWNhdGlvbkNvZGU6IGV2ZW50fSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzTWVzc2FnZSh0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdZb3VIYXZlU3VjY2Vzc2Z1bGx5VmVyaWZpZWRZb3VyQWNjb3VudCcpKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5uYXZpZ2F0ZVRvRGFzaGJvYXJkKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8dmVyaWZpY2F0aW9uLXdyYXBwZXIgW2VtYWlsXT1cImVtYWlsXCIgKG9uUmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4pPVwicmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4oKVwiIChvbkNvZGVTdWJtaXQpPVwib25Db2RlU3VibWl0KCRldmVudClcIj48L3ZlcmlmaWNhdGlvbi13cmFwcGVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
5
|
+
import { BaseFormCopy } from '../../base-form/base-form copy';
|
|
6
|
+
import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
|
|
7
|
+
import { SpiderlyControlsModule } from '../../../controls/spiderly-controls.module';
|
|
8
|
+
import { VerificationTokenRequest } from '../../../entities/security-entities';
|
|
9
|
+
import { PrimengModule } from '../../../modules/primeng.module';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "../../../services/spiderly-message.service";
|
|
13
|
+
import * as i3 from "@angular/router";
|
|
14
|
+
import * as i4 from "@jsverse/transloco";
|
|
15
|
+
import * as i5 from "../../../services/base-form.service";
|
|
16
|
+
import * as i6 from "primeng/button";
|
|
17
|
+
import * as i7 from "@angular/forms";
|
|
18
|
+
import * as i8 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
|
|
19
|
+
import * as i9 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
|
|
20
|
+
import * as i10 from "../../spiderly-panels/panel-header/panel-header.component";
|
|
21
|
+
import * as i11 from "../../spiderly-panels/panel-body/panel-body.component";
|
|
22
|
+
import * as i12 from "../../spiderly-panels/panel-footer/panel-footer.component";
|
|
23
|
+
import * as i13 from "../../spiderly-panels/spiderly-panel/spiderly-panel.component";
|
|
24
|
+
export class VerificationWrapperComponent extends BaseFormCopy {
|
|
25
|
+
constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService) {
|
|
26
|
+
super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
|
|
27
|
+
this.differs = differs;
|
|
28
|
+
this.http = http;
|
|
29
|
+
this.messageService = messageService;
|
|
30
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
31
|
+
this.router = router;
|
|
32
|
+
this.route = route;
|
|
33
|
+
this.translocoService = translocoService;
|
|
34
|
+
this.baseFormService = baseFormService;
|
|
35
|
+
this.verificationTokenRequestFormGroup = new SpiderlyFormGroup({});
|
|
36
|
+
this.onResendVerificationToken = new EventEmitter();
|
|
37
|
+
this.onCodeSubmit = new EventEmitter();
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.initVerificationTokenRequestFormGroup(new VerificationTokenRequest({ email: this.email }));
|
|
41
|
+
}
|
|
42
|
+
initVerificationTokenRequestFormGroup(model) {
|
|
43
|
+
this.initFormGroup(this.verificationTokenRequestFormGroup, this.formGroup, model, model.typeName, []);
|
|
44
|
+
}
|
|
45
|
+
codeSubmit() {
|
|
46
|
+
let isValid = this.baseFormService.checkFormGroupValidity(this.verificationTokenRequestFormGroup);
|
|
47
|
+
if (isValid) {
|
|
48
|
+
this.onCodeSubmit.next(this.verificationTokenRequestFormGroup.controls.verificationCode.getRawValue());
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
resendVerificationToken() {
|
|
52
|
+
this.onResendVerificationToken.next(null);
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerificationWrapperComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: VerificationWrapperComponent, isStandalone: true, selector: "verification-wrapper", inputs: { email: "email" }, outputs: { onResendVerificationToken: "onResendVerificationToken", onCodeSubmit: "onCodeSubmit" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"min-h-screen\" style=\"display: flex; justify-content: center; align-items: center;\">\r\n <div class=\"dialog\" style=\"padding: 0px;\">\r\n @if (verificationTokenRequestFormGroup != null) {\r\n <spiderly-panel>\r\n <panel-header [title]=\"t('AccountVerificationHeader')\" [showBigTitle]=\"true\" icon=\"pi pi-envelope\"></panel-header>\r\n \r\n <panel-body>\r\n <form class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"header\">{{t('AccountVerificationTitle')}}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n {{t('AccountVerificationDescription', {email: email})}}\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-textbox [control]=\"control('verificationCode', verificationTokenRequestFormGroup)\"></spiderly-textbox>\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-button (onClick)=\"codeSubmit()\" [label]=\"t('Submit')\" icon=\"pi pi-verified\"></spiderly-button>\r\n </div>\r\n </form>\r\n </panel-body>\r\n \r\n <panel-footer>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToGmail')\" icon=\"pi pi-external-link\" href=\"https://mail.google.com/mail/u/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToYahoo')\" icon=\"pi pi-external-link\" href=\"https://mail.yahoo.com/d/folders/1/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n </panel-footer>\r\n <panel-footer>\r\n <div>{{t('ResendVerificationCodeFirstPart')}} <a class=\"link\" (click)=\"resendVerificationToken()\">{{t('ResendVerificationCodeLinkSecondPart')}}</a></div>\r\n </panel-footer>\r\n </spiderly-panel>\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n </div>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: SpiderlyControlsModule }, { kind: "component", type: i8.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i9.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i10.PanelHeaderComponent, selector: "panel-header", inputs: ["title", "showBigTitle", "showIcon", "icon", "index", "tabs"] }, { kind: "component", type: i11.PanelBodyComponent, selector: "panel-body", inputs: ["normalBottomPadding"] }, { kind: "component", type: i12.PanelFooterComponent, selector: "panel-footer" }, { kind: "component", type: i13.SpiderlyPanelComponent, selector: "spiderly-panel", inputs: ["isFirstMultiplePanel", "isMiddleMultiplePanel", "isLastMultiplePanel", "toggleable", "collapsed", "crudMenu", "showCrudMenu", "showRemoveIcon", "index", "showPanelHeader"], outputs: ["onMenuIconClick", "onRemoveIconClick"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerificationWrapperComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'verification-wrapper', standalone: true, imports: [
|
|
60
|
+
CommonModule,
|
|
61
|
+
PrimengModule,
|
|
62
|
+
FormsModule,
|
|
63
|
+
ReactiveFormsModule,
|
|
64
|
+
SpiderlyControlsModule,
|
|
65
|
+
TranslocoDirective,
|
|
66
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"min-h-screen\" style=\"display: flex; justify-content: center; align-items: center;\">\r\n <div class=\"dialog\" style=\"padding: 0px;\">\r\n @if (verificationTokenRequestFormGroup != null) {\r\n <spiderly-panel>\r\n <panel-header [title]=\"t('AccountVerificationHeader')\" [showBigTitle]=\"true\" icon=\"pi pi-envelope\"></panel-header>\r\n \r\n <panel-body>\r\n <form class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"header\">{{t('AccountVerificationTitle')}}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n {{t('AccountVerificationDescription', {email: email})}}\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-textbox [control]=\"control('verificationCode', verificationTokenRequestFormGroup)\"></spiderly-textbox>\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-button (onClick)=\"codeSubmit()\" [label]=\"t('Submit')\" icon=\"pi pi-verified\"></spiderly-button>\r\n </div>\r\n </form>\r\n </panel-body>\r\n \r\n <panel-footer>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToGmail')\" icon=\"pi pi-external-link\" href=\"https://mail.google.com/mail/u/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToYahoo')\" icon=\"pi pi-external-link\" href=\"https://mail.yahoo.com/d/folders/1/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n </panel-footer>\r\n <panel-footer>\r\n <div>{{t('ResendVerificationCodeFirstPart')}} <a class=\"link\" (click)=\"resendVerificationToken()\">{{t('ResendVerificationCodeLinkSecondPart')}}</a></div>\r\n </panel-footer>\r\n </spiderly-panel>\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n </div>\r\n </div>\r\n</ng-container>" }]
|
|
67
|
+
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }], propDecorators: { email: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], onResendVerificationToken: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}], onCodeSubmit: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcGFydGlhbHMvdmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcGFydGlhbHMvdmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBMkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWdCaEUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFlBQVk7SUFPMUQsWUFDcUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0M7UUFFbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFUdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFkckQsc0NBQWlDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBMkIsRUFBRSxDQUFDLENBQUM7UUFHOUUsOEJBQXlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEUsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWFsRSxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELHFDQUFxQyxDQUFDLEtBQStCO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLE9BQU8sR0FBWSxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBRTNHLElBQUcsT0FBTyxFQUFDO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzFHO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBdENRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHNPQzNCekMsODVFQXNDZSwyQ0RuQlAsWUFBWSw4QkFDWixhQUFhLHFxQkFDYixXQUFXLDhCQUNYLG1CQUFtQiw4QkFDbkIsc0JBQXNCLHM2QkFDdEIsa0JBQWtCOzs0RkFHYiw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0ksc0JBQXNCLGNBRXBCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNyQjtpU0FLUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0kseUJBQXlCO3NCQUFsQyxNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBLZXlWYWx1ZURpZmZlcnMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgQmFzZUZvcm1Db3B5IH0gZnJvbSAnLi4vLi4vYmFzZS1mb3JtL2Jhc2UtZm9ybSBjb3B5JztcclxuaW1wb3J0IHsgQmFzZUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGlkZXJseUZvcm1Hcm91cCB9IGZyb20gJy4uLy4uL3NwaWRlcmx5LWZvcm0tY29udHJvbC9zcGlkZXJseS1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBTcGlkZXJseUNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29udHJvbHMvc3BpZGVybHktY29udHJvbHMubW9kdWxlJztcclxuaW1wb3J0IHsgVmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zcGlkZXJseS1tZXNzYWdlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3ZlcmlmaWNhdGlvbi13cmFwcGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBQcmltZW5nTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgU3BpZGVybHlDb250cm9sc01vZHVsZSxcclxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmUsXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db3B5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cCA9IG5ldyBTcGlkZXJseUZvcm1Hcm91cDxWZXJpZmljYXRpb25Ub2tlblJlcXVlc3Q+KHt9KTtcclxuXHJcbiAgICBASW5wdXQoKSBlbWFpbDogc3RyaW5nO1xyXG4gICAgQE91dHB1dCgpIG9uUmVzZW5kVmVyaWZpY2F0aW9uVG9rZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uQ29kZVN1Ym1pdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGJhc2VGb3JtU2VydmljZTogQmFzZUZvcm1TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICBzdXBlcihkaWZmZXJzLCBodHRwLCBtZXNzYWdlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIHJvdXRlciwgcm91dGUsIHRyYW5zbG9jb1NlcnZpY2UsIGJhc2VGb3JtU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICB0aGlzLmluaXRWZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXAobmV3IFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdCh7ZW1haWw6IHRoaXMuZW1haWx9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cChtb2RlbDogVmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0KXtcclxuICAgICAgICB0aGlzLmluaXRGb3JtR3JvdXAodGhpcy52ZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXAsIHRoaXMuZm9ybUdyb3VwLCBtb2RlbCwgbW9kZWwudHlwZU5hbWUsIFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb2RlU3VibWl0KCl7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMudmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0Rm9ybUdyb3VwKTtcclxuICAgIFxyXG4gICAgICAgIGlmKGlzVmFsaWQpe1xyXG4gICAgICAgICAgICB0aGlzLm9uQ29kZVN1Ym1pdC5uZXh0KHRoaXMudmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0Rm9ybUdyb3VwLmNvbnRyb2xzLnZlcmlmaWNhdGlvbkNvZGUuZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5vblJlc2VuZFZlcmlmaWNhdGlvblRva2VuLm5leHQobnVsbCk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1pbi1oLXNjcmVlblwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZ1wiIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICBAaWYgKHZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BpZGVybHktcGFuZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhbmVsLWhlYWRlciBbdGl0bGVdPVwidCgnQWNjb3VudFZlcmlmaWNhdGlvbkhlYWRlcicpXCIgW3Nob3dCaWdUaXRsZV09XCJ0cnVlXCIgaWNvbj1cInBpIHBpLWVudmVsb3BlXCI+PC9wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHBhbmVsLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57e3QoJ0FjY291bnRWZXJpZmljYXRpb25UaXRsZScpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dCgnQWNjb3VudFZlcmlmaWNhdGlvbkRlc2NyaXB0aW9uJywge2VtYWlsOiBlbWFpbH0pfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ3ZlcmlmaWNhdGlvbkNvZGUnLCB2ZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXApXCI+PC9zcGlkZXJseS10ZXh0Ym94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiAob25DbGljayk9XCJjb2RlU3VibWl0KClcIiBbbGFiZWxdPVwidCgnU3VibWl0JylcIiBpY29uPVwicGkgcGktdmVyaWZpZWRcIj48L3NwaWRlcmx5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wYW5lbC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwYW5lbC1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1saW5rXCIgW2xhYmVsXT1cInQoJ0dvVG9HbWFpbCcpXCIgaWNvbj1cInBpIHBpLWV4dGVybmFsLWxpbmtcIiBocmVmPVwiaHR0cHM6Ly9tYWlsLmdvb2dsZS5jb20vbWFpbC91L1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1saW5rXCIgW2xhYmVsXT1cInQoJ0dvVG9ZYWhvbycpXCIgaWNvbj1cInBpIHBpLWV4dGVybmFsLWxpbmtcIiBocmVmPVwiaHR0cHM6Ly9tYWlsLnlhaG9vLmNvbS9kL2ZvbGRlcnMvMS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcGFuZWwtZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYW5lbC1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3t0KCdSZXNlbmRWZXJpZmljYXRpb25Db2RlRmlyc3RQYXJ0Jyl9fSA8YSBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwicmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4oKVwiPnt7dCgnUmVzZW5kVmVyaWZpY2F0aW9uQ29kZUxpbmtTZWNvbmRQYXJ0Jyl9fTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BhbmVsLWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgIDwvc3BpZGVybHktcGFuZWw+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPIEZUOiBBZGQgc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BaseFormCopy } from '../../base-form/base-form copy';
|
|
3
|
+
import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
|
|
4
|
+
import { Registration } from '../../../entities/security-entities';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
import * as i2 from "../../../services/spiderly-message.service";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@jsverse/transloco";
|
|
10
|
+
import * as i5 from "../../../services/base-form.service";
|
|
11
|
+
import * as i6 from "../../../services/app-layout-base.service";
|
|
12
|
+
import * as i7 from "../../../services/auth-base.service";
|
|
13
|
+
import * as i8 from "@angular/forms";
|
|
14
|
+
import * as i9 from "../partials/auth.component";
|
|
15
|
+
import * as i10 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
|
|
16
|
+
import * as i11 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
|
|
17
|
+
import * as i12 from "../partials/registration-verification.component";
|
|
18
|
+
export class RegistrationComponent extends BaseFormCopy {
|
|
19
|
+
constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService, layoutService, authService) {
|
|
20
|
+
super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
|
|
21
|
+
this.differs = differs;
|
|
22
|
+
this.http = http;
|
|
23
|
+
this.messageService = messageService;
|
|
24
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
25
|
+
this.router = router;
|
|
26
|
+
this.route = route;
|
|
27
|
+
this.translocoService = translocoService;
|
|
28
|
+
this.baseFormService = baseFormService;
|
|
29
|
+
this.layoutService = layoutService;
|
|
30
|
+
this.authService = authService;
|
|
31
|
+
this.registrationFormGroup = new SpiderlyFormGroup({});
|
|
32
|
+
this.showEmailSentDialog = false;
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.initRegistrationFormGroup(new Registration({}));
|
|
36
|
+
}
|
|
37
|
+
initRegistrationFormGroup(model) {
|
|
38
|
+
this.initFormGroup(this.registrationFormGroup, this.formGroup, model, model.typeName, []);
|
|
39
|
+
}
|
|
40
|
+
companyNameChange(companyName) {
|
|
41
|
+
this.companyName = companyName;
|
|
42
|
+
}
|
|
43
|
+
sendRegistrationVerificationEmail() {
|
|
44
|
+
let isFormGroupValid = this.baseFormService.checkFormGroupValidity(this.registrationFormGroup);
|
|
45
|
+
if (isFormGroupValid == false)
|
|
46
|
+
return;
|
|
47
|
+
// const returnUrl = this.route.snapshot.queryParams['returnUrl'] || '';
|
|
48
|
+
this.authService.sendRegistrationVerificationEmail(this.registrationFormGroup.getRawValue()).subscribe(() => {
|
|
49
|
+
this.showEmailSentDialog = true;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }, { token: i6.LayoutBaseService }, { token: i7.AuthBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: RegistrationComponent, selector: "app-registration", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (registrationFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0;\">\r\n <spiderly-textbox [control]=\"control('email', registrationFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div class=\"mb-4 gap-5\">\r\n <div class=\"text-center\" style=\"font-size: smaller;\">\r\n {{t('AgreementsOnRegister')}} <b routerLink=\"/user-agreement\" class=\"primary-color cursor-pointer\">{{t('UserAgreement')}}</b> {{t('and')}} <b routerLink=\"/privacy-policy\" class=\"primary-color cursor-pointer\">{{t('PrivacyPolicy')}}</b>.\r\n </div>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('AgreeAndJoin')\" (onClick)=\"sendRegistrationVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button [label]=\"t('AlreadyHasAccount', {companyName: companyName})\" routerLink=\"/login\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <registration-verification [email]=\"registrationFormGroup.controls.email.getRawValue()\"></registration-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.AuthComponent, selector: "auth", inputs: ["showGoogleAuth"], outputs: ["onCompanyNameChange"] }, { kind: "component", type: i10.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i11.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i12.RegistrationVerificationComponent, selector: "registration-verification", inputs: ["email"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'app-registration', template: "<ng-container *transloco=\"let t\">\r\n @if (registrationFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0;\">\r\n <spiderly-textbox [control]=\"control('email', registrationFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div class=\"mb-4 gap-5\">\r\n <div class=\"text-center\" style=\"font-size: smaller;\">\r\n {{t('AgreementsOnRegister')}} <b routerLink=\"/user-agreement\" class=\"primary-color cursor-pointer\">{{t('UserAgreement')}}</b> {{t('and')}} <b routerLink=\"/privacy-policy\" class=\"primary-color cursor-pointer\">{{t('PrivacyPolicy')}}</b>.\r\n </div>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('AgreeAndJoin')\" (onClick)=\"sendRegistrationVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button [label]=\"t('AlreadyHasAccount', {companyName: companyName})\" routerLink=\"/login\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <registration-verification [email]=\"registrationFormGroup.controls.email.getRawValue()\"></registration-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>" }]
|
|
58
|
+
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }, { type: i6.LayoutBaseService }, { type: i7.AuthBaseService }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3JlZ2lzdHJhdGlvbi9yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcmVnaXN0cmF0aW9uL3JlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFLdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUFNbkQsWUFDdUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDNUMsYUFBZ0MsRUFDL0IsV0FBNEI7UUFFcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFYdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWZ4QywwQkFBcUIsR0FBRyxJQUFJLGlCQUFpQixDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBR2hFLHdCQUFtQixHQUFZLEtBQUssQ0FBQztJQWVyQyxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFtQjtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUNBQWlDO1FBQzdCLElBQUksZ0JBQWdCLEdBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4RyxJQUFJLGdCQUFnQixJQUFJLEtBQUs7WUFDekIsT0FBTztRQUVYLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBM0NRLHFCQUFxQjttR0FBckIscUJBQXFCLCtFQ2hCbEMsd2dFQThCZTs7NEZEZEYscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBLZXlWYWx1ZURpZmZlcnMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgTGF5b3V0QmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtbGF5b3V0LWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUZvcm1Db3B5IH0gZnJvbSAnLi4vLi4vYmFzZS1mb3JtL2Jhc2UtZm9ybSBjb3B5JztcclxuaW1wb3J0IHsgU3BpZGVybHlGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9zcGlkZXJseS1mb3JtLWNvbnRyb2wvc3BpZGVybHktZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5pbXBvcnQgeyBTcGlkZXJseU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3BpZGVybHktbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWdpc3RyYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvcHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcmVnaXN0cmF0aW9uRm9ybUdyb3VwID0gbmV3IFNwaWRlcmx5Rm9ybUdyb3VwPFJlZ2lzdHJhdGlvbj4oe30pO1xyXG5cclxuICAgIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbiAgICBzaG93RW1haWxTZW50RGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyLCBcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBiYXNlRm9ybVNlcnZpY2U6IEJhc2VGb3JtU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0QmFzZVNlcnZpY2UsIFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhCYXNlU2VydmljZSwgXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihkaWZmZXJzLCBodHRwLCBtZXNzYWdlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIHJvdXRlciwgcm91dGUsIHRyYW5zbG9jb1NlcnZpY2UsIGJhc2VGb3JtU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICB0aGlzLmluaXRSZWdpc3RyYXRpb25Gb3JtR3JvdXAobmV3IFJlZ2lzdHJhdGlvbih7fSkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpbml0UmVnaXN0cmF0aW9uRm9ybUdyb3VwKG1vZGVsOiBSZWdpc3RyYXRpb24pe1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Hcm91cCh0aGlzLnJlZ2lzdHJhdGlvbkZvcm1Hcm91cCwgdGhpcy5mb3JtR3JvdXAsIG1vZGVsLCBtb2RlbC50eXBlTmFtZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhbnlOYW1lQ2hhbmdlKGNvbXBhbnlOYW1lOiBzdHJpbmcpe1xyXG4gICAgICAgIHRoaXMuY29tcGFueU5hbWUgPSBjb21wYW55TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwoKSB7XHJcbiAgICAgICAgbGV0IGlzRm9ybUdyb3VwVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMucmVnaXN0cmF0aW9uRm9ybUdyb3VwKTtcclxuXHJcbiAgICAgICAgaWYgKGlzRm9ybUdyb3VwVmFsaWQgPT0gZmFsc2UpIFxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IHJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2VuZFJlZ2lzdHJhdGlvblZlcmlmaWNhdGlvbkVtYWlsKHRoaXMucmVnaXN0cmF0aW9uRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0VtYWlsU2VudERpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XHJcbiAgICBAaWYgKHJlZ2lzdHJhdGlvbkZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgQGlmIChzaG93RW1haWxTZW50RGlhbG9nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxhdXRoIChvbkNvbXBhbnlOYW1lQ2hhbmdlKT1cImNvbXBhbnlOYW1lQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPiA8IS0tIEZUOiBXZSBhcmUgbm90IGxvYWRpbmcgYW55dGhpbmcgZnJvbSB0aGUgc2VydmVyIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCBkZWZlciBibG9jayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDA7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ2VtYWlsJywgcmVnaXN0cmF0aW9uRm9ybUdyb3VwKVwiPjwvc3BpZGVybHktdGV4dGJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBnYXAtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGxlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dCgnQWdyZWVtZW50c09uUmVnaXN0ZXInKX19IDxiIHJvdXRlckxpbms9XCIvdXNlci1hZ3JlZW1lbnRcIiBjbGFzcz1cInByaW1hcnktY29sb3IgY3Vyc29yLXBvaW50ZXJcIj57e3QoJ1VzZXJBZ3JlZW1lbnQnKX19PC9iPiB7e3QoJ2FuZCcpfX0gPGIgcm91dGVyTGluaz1cIi9wcml2YWN5LXBvbGljeVwiIGNsYXNzPVwicHJpbWFyeS1jb2xvciBjdXJzb3ItcG9pbnRlclwiPnt7dCgnUHJpdmFjeVBvbGljeScpfX08L2I+LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BpZGVybHktYnV0dG9uIFtsYWJlbF09XCJ0KCdBZ3JlZUFuZEpvaW4nKVwiIChvbkNsaWNrKT1cInNlbmRSZWdpc3RyYXRpb25WZXJpZmljYXRpb25FbWFpbCgpXCIgW291dGxpbmVkXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHBvc3NpYmlsaXR5IHRvIGNoYW5nZSB0aGlzIG5hbWUgZnJvbSB0aGUgc3BlY2lmaWMgcHJvamVjdCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiBbbGFiZWxdPVwidCgnQWxyZWFkeUhhc0FjY291bnQnLCB7Y29tcGFueU5hbWU6IGNvbXBhbnlOYW1lfSlcIiByb3V0ZXJMaW5rPVwiL2xvZ2luXCIgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfVwiPjwvc3BpZGVybHktYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2F1dGg+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgPHJlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24gW2VtYWlsXT1cInJlZ2lzdHJhdGlvbkZvcm1Hcm91cC5jb250cm9scy5lbWFpbC5nZXRSYXdWYWx1ZSgpXCI+PC9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uPlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICA8IS0tIFRPRE8gRlQ6IEFkZCBza2VsZXRvbiAtLT5cclxuICAgIH1cclxuPC9uZy1jb250YWluZXI+Il19
|