ngx-techlify-core 16.3.1 → 18.0.0-alpha.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/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +5 -13
- package/esm2022/lib/access-control-config/access-control-config-routing.module.mjs +5 -5
- package/esm2022/lib/access-control-config/access-control-config.component.mjs +20 -26
- package/esm2022/lib/access-control-config/access-control-config.model.mjs +1 -14
- package/esm2022/lib/access-control-config/access-control-config.module.mjs +7 -7
- package/esm2022/lib/access-control-config/access-control-config.service.mjs +5 -6
- package/esm2022/lib/action-popup/action-popup.component.mjs +6 -8
- package/esm2022/lib/action-popup/action-popup.model.mjs +1 -4
- package/esm2022/lib/action-popup/action-popup.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +6 -9
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +20 -30
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +6 -10
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +7 -11
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +8 -12
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log.module.mjs +7 -7
- package/esm2022/lib/audit-log/audit-log.service.mjs +5 -5
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +5 -5
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +6 -9
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +7 -7
- package/esm2022/lib/base-model/techlify-form-component.class.mjs +1 -4
- package/esm2022/lib/base-model/techlify-listing-component.class.mjs +10 -9
- package/esm2022/lib/base-model/techlify-service.class.mjs +2 -3
- package/esm2022/lib/change-password/change-password-routing.module.mjs +5 -5
- package/esm2022/lib/change-password/change-password.component.mjs +8 -17
- package/esm2022/lib/change-password/change-password.module.mjs +7 -7
- package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +16 -15
- package/esm2022/lib/column-selector/column-selector.module.mjs +7 -7
- package/esm2022/lib/core/alert.service.mjs +5 -6
- package/esm2022/lib/core/api-prefix.interceptor.mjs +5 -6
- package/esm2022/lib/core/authentication.guard.mjs +5 -7
- package/esm2022/lib/core/authentication.service.mjs +5 -8
- package/esm2022/lib/core/cache.interceptor.mjs +6 -7
- package/esm2022/lib/core/config.service.mjs +6 -7
- package/esm2022/lib/core/core.module.mjs +19 -26
- package/esm2022/lib/core/credentials.service.mjs +6 -7
- package/esm2022/lib/core/dataManager.service.mjs +5 -6
- package/esm2022/lib/core/error-handler.interceptor.mjs +5 -8
- package/esm2022/lib/core/error-handler.service.mjs +5 -7
- package/esm2022/lib/core/filter.service.mjs +5 -7
- package/esm2022/lib/core/form-validator.service.mjs +5 -5
- package/esm2022/lib/core/header.interceptor.mjs +4 -4
- package/esm2022/lib/core/http-cache.service.mjs +6 -9
- package/esm2022/lib/core/http.service.mjs +6 -11
- package/esm2022/lib/core/logger.service.mjs +3 -4
- package/esm2022/lib/core/route-reusable-strategy.mjs +4 -4
- package/esm2022/lib/core/snack/snack.component.mjs +11 -13
- package/esm2022/lib/core/snack/snack.module.mjs +7 -7
- package/esm2022/lib/core/storage.service.mjs +6 -6
- package/esm2022/lib/core/techlify-config.model.mjs +7 -9
- package/esm2022/lib/core/token.interceptor.mjs +5 -6
- package/esm2022/lib/data-table/data-table.component.mjs +16 -22
- package/esm2022/lib/data-table/data-table.model.mjs +1 -36
- package/esm2022/lib/data-table/data-table.module.mjs +7 -7
- package/esm2022/lib/date-validator.mjs +1 -1
- package/esm2022/lib/document-viewer/document-viewer.component.mjs +8 -12
- package/esm2022/lib/document-viewer/document-viewer.module.mjs +7 -7
- package/esm2022/lib/document-viewer/viewer-config.model.mjs +1 -4
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +12 -13
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +6 -19
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +23 -26
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +6 -19
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +19 -23
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +6 -8
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +5 -5
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +7 -7
- package/esm2022/lib/email-subscription/email-subscription.module.mjs +7 -7
- package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +13 -26
- package/esm2022/lib/entity-files/entity-file.service.mjs +5 -6
- package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +36 -54
- package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +7 -7
- package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +9 -8
- package/esm2022/lib/export-excel/export-excel.module.mjs +7 -7
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +14 -16
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +7 -7
- package/esm2022/lib/file-dropper/file-dropper.component.mjs +8 -12
- package/esm2022/lib/file-dropper/file-dropper.model.mjs +1 -9
- package/esm2022/lib/file-dropper/file-dropper.module.mjs +7 -7
- package/esm2022/lib/forgot-password/forgot-password-routing.module.mjs +5 -5
- package/esm2022/lib/forgot-password/forgot-password.component.mjs +6 -18
- package/esm2022/lib/forgot-password/forgot-password.module.mjs +7 -7
- package/esm2022/lib/import-csv/data-import/data-import.component.mjs +5 -6
- package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +6 -9
- package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +9 -16
- package/esm2022/lib/import-csv/import-csv.component.mjs +57 -65
- package/esm2022/lib/import-csv/import-csv.module.mjs +7 -7
- package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +14 -18
- package/esm2022/lib/import-csv/import-success/import-success.component.mjs +5 -7
- package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +7 -7
- package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +48 -47
- package/esm2022/lib/loader/loader.component.mjs +9 -9
- package/esm2022/lib/loader/loader.module.mjs +7 -7
- package/esm2022/lib/login/login-routing.module.mjs +5 -5
- package/esm2022/lib/login/login.component.mjs +6 -24
- package/esm2022/lib/login/login.module.mjs +7 -7
- package/esm2022/lib/login-history-for-user/login-history-for-user-routing.module.mjs +5 -5
- package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +11 -15
- package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +7 -7
- package/esm2022/lib/material.module.mjs +7 -7
- package/esm2022/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +5 -5
- package/esm2022/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +7 -7
- package/esm2022/lib/note/comment-form/comment-form.component.mjs +6 -11
- package/esm2022/lib/note/note-form/note-form.component.mjs +6 -15
- package/esm2022/lib/note/note-list/note-list.component.mjs +13 -18
- package/esm2022/lib/note/note.module.mjs +7 -7
- package/esm2022/lib/note/note.service.mjs +5 -6
- package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +24 -24
- package/esm2022/lib/number-input-button/number-input-button.module.mjs +7 -7
- package/esm2022/lib/password-requirement-check/password-check.service.mjs +5 -5
- package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +7 -10
- package/esm2022/lib/password-requirement-check/password-requirement-check.module.mjs +5 -5
- package/esm2022/lib/profile/profile-edit.component.mjs +6 -15
- package/esm2022/lib/profile/profile-routing.module.mjs +5 -5
- package/esm2022/lib/profile/profile.module.mjs +7 -7
- package/esm2022/lib/read-more/read-more.component.mjs +10 -11
- package/esm2022/lib/read-more/read-more.module.mjs +7 -7
- package/esm2022/lib/request-helper/request-helper.service.mjs +5 -7
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +15 -17
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +7 -7
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +5 -6
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +15 -17
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +7 -7
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +5 -6
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +15 -17
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +7 -7
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +5 -6
- package/esm2022/lib/restrictors/restrictor.service.mjs +5 -6
- package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +5 -14
- package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +5 -10
- package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +17 -26
- package/esm2022/lib/restrictors/restrictors-routing.module.mjs +5 -5
- package/esm2022/lib/restrictors/restrictors.module.mjs +7 -7
- package/esm2022/lib/role/permission/permission.model.mjs +1 -4
- package/esm2022/lib/role/permission/permission.module.mjs +7 -7
- package/esm2022/lib/role/permission/permission.routes.mjs +5 -5
- package/esm2022/lib/role/permission/permissions-management.component.mjs +5 -18
- package/esm2022/lib/role/role-form.component.mjs +10 -20
- package/esm2022/lib/role/role-view/role-view.component.mjs +5 -10
- package/esm2022/lib/role/role.model.mjs +2 -12
- package/esm2022/lib/role/role.module.mjs +7 -7
- package/esm2022/lib/role/role.routes.mjs +5 -5
- package/esm2022/lib/role/role.service.mjs +5 -6
- package/esm2022/lib/role/roles-view-all.component.mjs +18 -27
- package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +40 -55
- package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +7 -7
- package/esm2022/lib/signup/signup-routing.module.mjs +5 -5
- package/esm2022/lib/signup/signup.component.mjs +6 -15
- package/esm2022/lib/signup/signup.module.mjs +7 -7
- package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +6 -11
- package/esm2022/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +7 -7
- package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +5 -8
- package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +6 -12
- package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +15 -25
- package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +7 -7
- package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +5 -6
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +13 -19
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +13 -17
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +20 -27
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +8 -22
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +22 -28
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +10 -13
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +4 -4
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +6 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +24 -29
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +7 -7
- package/esm2022/lib/techlify-notifications/techlify-notification-user-status.model.mjs +3 -3
- package/esm2022/lib/techlify-notifications/techlify-notification.module.mjs +7 -7
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +1 -10
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +21 -34
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +7 -7
- package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +25 -33
- package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +7 -7
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +12 -20
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +7 -7
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +20 -26
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +7 -7
- package/esm2022/lib/techlify-update/techlify-update-routing.module.mjs +5 -5
- package/esm2022/lib/techlify-update/techlify-update.module.mjs +7 -7
- package/esm2022/lib/techlify-update/techlify-update.service.mjs +5 -6
- package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +20 -26
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +8 -11
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +7 -7
- package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +8 -16
- package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +6 -10
- package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +7 -7
- package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +6 -11
- package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +7 -7
- package/esm2022/lib/timeline-filter/calculate-timeline.mjs +1 -1
- package/esm2022/lib/timeline-filter/timeline-filter-routing.module.mjs +5 -5
- package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +46 -55
- package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +7 -7
- package/esm2022/lib/timeline-filter/timeline.model.mjs +16 -16
- package/esm2022/lib/user/current-user.service.mjs +9 -13
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +6 -12
- package/esm2022/lib/user/user-explore.component.mjs +8 -13
- package/esm2022/lib/user/user-form.component.mjs +17 -32
- package/esm2022/lib/user/user-sessions/user-session.service.mjs +5 -5
- package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +10 -12
- package/esm2022/lib/user/user-view.component.mjs +6 -14
- package/esm2022/lib/user/user.model.mjs +1 -21
- package/esm2022/lib/user/user.module.mjs +7 -7
- package/esm2022/lib/user/user.routes.mjs +5 -5
- package/esm2022/lib/user/user.service.mjs +5 -6
- package/esm2022/lib/user/users-view-all.component.mjs +21 -35
- package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +7 -13
- package/esm2022/lib/user-clients-list/user-client.service.mjs +5 -5
- package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +12 -14
- package/esm2022/lib/user-config/user-config.model.mjs +1 -32
- package/esm2022/lib/user-config/user-config.service.mjs +27 -30
- package/esm2022/lib/user-selector/user-data.service.mjs +5 -7
- package/esm2022/lib/user-selector/user-selector.component.mjs +8 -17
- package/esm2022/lib/user-selector/user-selector.module.mjs +7 -7
- package/esm2022/lib/utility/date-utils.service.mjs +4 -4
- package/esm2022/lib/utility/num-items-selector.component.mjs +5 -7
- package/esm2022/lib/utility/number-selector.component.mjs +6 -10
- package/esm2022/lib/utility/utility.module.mjs +7 -7
- package/fesm2022/ngx-techlify-core.mjs +1879 -2616
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/core/authentication.guard.d.ts +2 -2
- package/lib/core/core.module.d.ts +3 -4
- package/lib/searchable-selector/searchable-selector.component.d.ts +2 -1
- package/package.json +17 -17
|
@@ -13,17 +13,12 @@ import * as i5 from "@angular/flex-layout/flex";
|
|
|
13
13
|
* @since 20190813
|
|
14
14
|
*/
|
|
15
15
|
export class UserExploreComponent {
|
|
16
|
-
http;
|
|
17
|
-
dialogRef;
|
|
18
|
-
data;
|
|
19
|
-
user;
|
|
20
|
-
isWorking = false;
|
|
21
|
-
modules = [];
|
|
22
|
-
filters;
|
|
23
16
|
constructor(http, dialogRef, data) {
|
|
24
17
|
this.http = http;
|
|
25
18
|
this.dialogRef = dialogRef;
|
|
26
19
|
this.data = data;
|
|
20
|
+
this.isWorking = false;
|
|
21
|
+
this.modules = [];
|
|
27
22
|
this.user = this.data;
|
|
28
23
|
}
|
|
29
24
|
ngOnInit() {
|
|
@@ -42,14 +37,14 @@ export class UserExploreComponent {
|
|
|
42
37
|
closeDialog() {
|
|
43
38
|
this.dialogRef.close();
|
|
44
39
|
}
|
|
45
|
-
static
|
|
46
|
-
static
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserExploreComponent, deps: [{ token: i1.HttpService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserExploreComponent, selector: "user-explore", ngImport: i0, template: "<div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Explore User</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\">\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Entry ID:</label>\n <div class=\"col-9\">{{user.id}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Name:</label>\n <div class=\"col-9\">{{user.name}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Email:</label>\n <div class=\"col-9\">{{user.email}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Not Involed Modules: </label>\n <div class=\"col-9\">\n <ng-container *ngFor=\"let module of modules\">\n {{ module?.name }}, <br />\n </ng-container>\n </div>\n </div>\n\n <button mat-raised-button (click)=\"closeDialog()\">\n Cancel\n </button>\n\n </div>\n\n</div>", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }] }); }
|
|
47
42
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserExploreComponent, decorators: [{
|
|
49
44
|
type: Component,
|
|
50
45
|
args: [{ selector: 'user-explore', template: "<div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Explore User</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\">\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Entry ID:</label>\n <div class=\"col-9\">{{user.id}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Name:</label>\n <div class=\"col-9\">{{user.name}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Email:</label>\n <div class=\"col-9\">{{user.email}}</div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-3 control-label\">Not Involed Modules: </label>\n <div class=\"col-9\">\n <ng-container *ngFor=\"let module of modules\">\n {{ module?.name }}, <br />\n </ng-container>\n </div>\n </div>\n\n <button mat-raised-button (click)=\"closeDialog()\">\n Cancel\n </button>\n\n </div>\n\n</div>" }]
|
|
51
|
-
}], ctorParameters:
|
|
46
|
+
}], ctorParameters: () => [{ type: i1.HttpService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
52
47
|
type: Inject,
|
|
53
48
|
args: [MAT_DIALOG_DATA]
|
|
54
|
-
}] }]
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
}] }] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1leHBsb3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci91c2VyLWV4cGxvcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyL3VzZXItZXhwbG9yZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFLekU7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBTTdCLFlBQW9CLElBQWlCLEVBQ2xCLFNBQTZDLEVBQ3BCLElBQVM7UUFGakMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBTnJELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQU1ULElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ25FLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBL0JRLG9CQUFvQix5RUFRVCxlQUFlO21HQVIxQixvQkFBb0Isb0RDaEJqQyxrcENBb0NNOzs0RkRwQk8sb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLGNBQWM7OzBCQVdYLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vdXNlci5tb2RlbCc7XG5cblxuLyoqXG4gKiBDb250cm9sbGVyIHVzZWQgdG8gZXhwbG9yZSBhIFVzZXJcbiAqXG4gKiBAYXV0aG9yIFNhcmF2YW5hIEt1bWFyXG4gKiBAc2luY2UgMjAxOTA4MTNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1c2VyLWV4cGxvcmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLWV4cGxvcmUuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckV4cGxvcmVDb21wb25lbnQge1xuICAgIHVzZXI6IFVzZXI7XG4gICAgaXNXb3JraW5nID0gZmFsc2U7XG4gICAgbW9kdWxlcyA9IFtdO1xuICAgIGZpbHRlcnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVzZXJFeHBsb3JlQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLmRhdGE7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG5cbiAgICBsb2FkRGF0YSgpIHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSB7fTtcbiAgICAgICAgdGhpcy5maWx0ZXJzLm5vdF9pbl91c2VyX2lkID0gdGhpcy51c2VyLmlkO1xuICAgICAgICB0aGlzLmh0dHAuZ2V0KCdhcGkvbW9kdWxlcycsIHsgcGFyYW1zOiB0aGlzLmZpbHRlcnMgfSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2R1bGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKk1ldGhvZCB0byBjbG9zZSBkaWFsb2cgYm94ICovXG4gICAgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgIDxkaXY+RXhwbG9yZSBVc2VyPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC0zIGNvbnRyb2wtbGFiZWxcIj5FbnRyeSBJRDo8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+e3t1c2VyLmlkfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtMyBjb250cm9sLWxhYmVsXCI+TmFtZTo8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+e3t1c2VyLm5hbWV9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC0zIGNvbnRyb2wtbGFiZWxcIj5FbWFpbDo8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+e3t1c2VyLmVtYWlsfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtMyBjb250cm9sLWxhYmVsXCI+Tm90IEludm9sZWQgTW9kdWxlczogPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vZHVsZSBvZiBtb2R1bGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1vZHVsZT8ubmFtZSB9fSwgPGJyIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
@@ -35,32 +35,6 @@ const errorMessages = {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
export class UserFormComponent {
|
|
38
|
-
dialogRef;
|
|
39
|
-
user;
|
|
40
|
-
http;
|
|
41
|
-
alertService;
|
|
42
|
-
errorHandler;
|
|
43
|
-
fb;
|
|
44
|
-
formValidatorService;
|
|
45
|
-
userService;
|
|
46
|
-
userConfigService;
|
|
47
|
-
userId;
|
|
48
|
-
onSave;
|
|
49
|
-
isWorking = false;
|
|
50
|
-
userForm;
|
|
51
|
-
isPasswordRequired = false;
|
|
52
|
-
updateMode = false;
|
|
53
|
-
config;
|
|
54
|
-
userTypes = [
|
|
55
|
-
{ title: 'Admin', value: 2 },
|
|
56
|
-
{ title: 'Normal User', value: 3 },
|
|
57
|
-
];
|
|
58
|
-
users = [];
|
|
59
|
-
userRoles = [];
|
|
60
|
-
roles = [];
|
|
61
|
-
fileConfig;
|
|
62
|
-
viewerConfig;
|
|
63
|
-
fileList = [];
|
|
64
38
|
constructor(dialogRef, user, http, alertService, errorHandler, fb, formValidatorService, userService, userConfigService) {
|
|
65
39
|
this.dialogRef = dialogRef;
|
|
66
40
|
this.user = user;
|
|
@@ -71,6 +45,17 @@ export class UserFormComponent {
|
|
|
71
45
|
this.formValidatorService = formValidatorService;
|
|
72
46
|
this.userService = userService;
|
|
73
47
|
this.userConfigService = userConfigService;
|
|
48
|
+
this.isWorking = false;
|
|
49
|
+
this.isPasswordRequired = false;
|
|
50
|
+
this.updateMode = false;
|
|
51
|
+
this.userTypes = [
|
|
52
|
+
{ title: 'Admin', value: 2 },
|
|
53
|
+
{ title: 'Normal User', value: 3 },
|
|
54
|
+
];
|
|
55
|
+
this.users = [];
|
|
56
|
+
this.userRoles = [];
|
|
57
|
+
this.roles = [];
|
|
58
|
+
this.fileList = [];
|
|
74
59
|
this.onSave = new EventEmitter();
|
|
75
60
|
this.config = this.userConfigService.getConfig();
|
|
76
61
|
}
|
|
@@ -217,18 +202,18 @@ export class UserFormComponent {
|
|
|
217
202
|
.skipHeader()
|
|
218
203
|
.post('api/entity-files-upload', formData).toPromise();
|
|
219
204
|
}
|
|
220
|
-
static
|
|
221
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserFormComponent, selector: "user-form", inputs: { userId: "userId" }, outputs: { onSave: "onSave" }, ngImport: i0, template: "<form [formGroup]=\"userForm\" (ngSubmit)=\"save()\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>User Management</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"name\" placeholder=\"Full Name\" type=\"text\"\n [required]=\"!!userForm.get('name').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('name') && !!userForm.get('name').validator\">{{getErrorMessage('name')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\"\n [required]=\"!!userForm.get('email').validator\" />\n <mat-error *ngIf=\"isFieldValid('email') && !!userForm.get('email').validator\">\n {{getErrorMessage('email')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showPhone\">\n <input matInput formControlName=\"phone\" placeholder=\"Phone\" type=\"text\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"password\" placeholder=\"Password\" type=\"password\"\n [required]=\"isPasswordRequired && !!userForm.get('password').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('password') && !!userForm.get('password').validator\">\n {{getErrorMessage('password')}}</mat-error>\n </mat-form-field>\n\n <div class=\"d-flex flex-column justify-content-start gap-1\">\n <mat-checkbox formControlName=\"is_temporary_password\">Is Temporary Password?</mat-checkbox>\n <small class=\"text-secondary\">Should this user to update password on first login?</small>\n </div>\n\n <div *ngIf=\"this.config.userConfig.showSignature\">\n <ng-template #fileUpload>\n <section class=\"col-12\">\n <div>User Signature</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\"\n [fileArray]=\"fileList\">\n </app-file-dropper>\n </section>\n </ng-template>\n <div class=\"col-12\" *ngIf=\"userForm.get('signature').value;else fileUpload;\">\n <app-document-viewer [file]=\"userForm.get('signature').value\"\n [fileUrl]=\"userForm.get('signature_url').value\" [config]=\"this.viewerConfig\"\n (remove)=\"removeFile()\">\n </app-document-viewer>\n </div>\n </div>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showUserTypes\">\n <mat-label>User Type</mat-label>\n <mat-select formControlName=\"user_type_id\" autocomplete=\"off\" required>\n <mat-option *ngFor=\"let userType of userTypes\" [value]=\"userType.value\">\n {{userType.title}}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"isFieldValid('user_type_id')\">{{getErrorMessage('user_type_id')}}</mat-error>\n </mat-form-field>\n\n <mat-card fxFlex=\"100%\"\n *ngIf=\"(this.config.userConfig.showRoles || this.config.userConfig.showFormRoles) && this.userForm.get('user_type_id').value == 3\">\n <mat-card-title>\n <small class=\"form-text text-muted\">\n Roles\n </small>\n </mat-card-title>\n <mat-card-content style=\"overflow:auto; min-height:150px; max-height:260px;\" fxLayout=\"column\">\n <div *ngFor=\"let role of userRoles | keyvalue\">\n <label *ngIf=\"role.value[0].module_id\" class=\"text-muted\">\n {{role?.value[0]?.module?.name}}\n </label>\n <div *ngFor=\"let roleValue of role.value;\" fxLayout=\"column\"\n [ngClass]=\"{ 'ml-4': role.value[0].module_id }\">\n <mat-checkbox [checked]=\"roleValue.selected\" (change)=\"roleSelected($event, roleValue.id)\">\n {{roleValue.label}}\n </mat-checkbox>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div fxFlex=\"100%\" fxLayout=\"row\" fxLayoutGap=\"1.5rem\" fxLayoutAlign=\"end\" class=\"my-4\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button (click)=\"closeDialog()\" type=\"button\">\n Cancel\n </button>\n </div>\n\n </div>\n\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i13.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i13.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i14.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i14.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i14.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i15.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i16.FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: i17.DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "pipe", type: i6.KeyValuePipe, name: "keyvalue" }] });
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFormComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.HttpService }, { token: i2.AlertService }, { token: i2.ErrorHandlerService }, { token: i3.UntypedFormBuilder }, { token: i2.FormValidatorService }, { token: i4.UserService }, { token: i5.UserConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserFormComponent, selector: "user-form", inputs: { userId: "userId" }, outputs: { onSave: "onSave" }, ngImport: i0, template: "<form [formGroup]=\"userForm\" (ngSubmit)=\"save()\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>User Management</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"name\" placeholder=\"Full Name\" type=\"text\"\n [required]=\"!!userForm.get('name').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('name') && !!userForm.get('name').validator\">{{getErrorMessage('name')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\"\n [required]=\"!!userForm.get('email').validator\" />\n <mat-error *ngIf=\"isFieldValid('email') && !!userForm.get('email').validator\">\n {{getErrorMessage('email')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showPhone\">\n <input matInput formControlName=\"phone\" placeholder=\"Phone\" type=\"text\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"password\" placeholder=\"Password\" type=\"password\"\n [required]=\"isPasswordRequired && !!userForm.get('password').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('password') && !!userForm.get('password').validator\">\n {{getErrorMessage('password')}}</mat-error>\n </mat-form-field>\n\n <div class=\"d-flex flex-column justify-content-start gap-1\">\n <mat-checkbox formControlName=\"is_temporary_password\">Is Temporary Password?</mat-checkbox>\n <small class=\"text-secondary\">Should this user to update password on first login?</small>\n </div>\n\n <div *ngIf=\"this.config.userConfig.showSignature\">\n <ng-template #fileUpload>\n <section class=\"col-12\">\n <div>User Signature</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\"\n [fileArray]=\"fileList\">\n </app-file-dropper>\n </section>\n </ng-template>\n <div class=\"col-12\" *ngIf=\"userForm.get('signature').value;else fileUpload;\">\n <app-document-viewer [file]=\"userForm.get('signature').value\"\n [fileUrl]=\"userForm.get('signature_url').value\" [config]=\"this.viewerConfig\"\n (remove)=\"removeFile()\">\n </app-document-viewer>\n </div>\n </div>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showUserTypes\">\n <mat-label>User Type</mat-label>\n <mat-select formControlName=\"user_type_id\" autocomplete=\"off\" required>\n <mat-option *ngFor=\"let userType of userTypes\" [value]=\"userType.value\">\n {{userType.title}}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"isFieldValid('user_type_id')\">{{getErrorMessage('user_type_id')}}</mat-error>\n </mat-form-field>\n\n <mat-card fxFlex=\"100%\"\n *ngIf=\"(this.config.userConfig.showRoles || this.config.userConfig.showFormRoles) && this.userForm.get('user_type_id').value == 3\">\n <mat-card-title>\n <small class=\"form-text text-muted\">\n Roles\n </small>\n </mat-card-title>\n <mat-card-content style=\"overflow:auto; min-height:150px; max-height:260px;\" fxLayout=\"column\">\n <div *ngFor=\"let role of userRoles | keyvalue\">\n <label *ngIf=\"role.value[0].module_id\" class=\"text-muted\">\n {{role?.value[0]?.module?.name}}\n </label>\n <div *ngFor=\"let roleValue of role.value;\" fxLayout=\"column\"\n [ngClass]=\"{ 'ml-4': role.value[0].module_id }\">\n <mat-checkbox [checked]=\"roleValue.selected\" (change)=\"roleSelected($event, roleValue.id)\">\n {{roleValue.label}}\n </mat-checkbox>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div fxFlex=\"100%\" fxLayout=\"row\" fxLayoutGap=\"1.5rem\" fxLayoutAlign=\"end\" class=\"my-4\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button (click)=\"closeDialog()\" type=\"button\">\n Cancel\n </button>\n </div>\n\n </div>\n\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i13.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i13.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i14.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i14.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i14.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i15.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i16.FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: i17.DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "pipe", type: i6.KeyValuePipe, name: "keyvalue" }] }); }
|
|
222
207
|
}
|
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFormComponent, decorators: [{
|
|
224
209
|
type: Component,
|
|
225
210
|
args: [{ selector: 'user-form', template: "<form [formGroup]=\"userForm\" (ngSubmit)=\"save()\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>User Management</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"name\" placeholder=\"Full Name\" type=\"text\"\n [required]=\"!!userForm.get('name').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('name') && !!userForm.get('name').validator\">{{getErrorMessage('name')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\"\n [required]=\"!!userForm.get('email').validator\" />\n <mat-error *ngIf=\"isFieldValid('email') && !!userForm.get('email').validator\">\n {{getErrorMessage('email')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showPhone\">\n <input matInput formControlName=\"phone\" placeholder=\"Phone\" type=\"text\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"password\" placeholder=\"Password\" type=\"password\"\n [required]=\"isPasswordRequired && !!userForm.get('password').validator\" autocomplete=\"off\" />\n <mat-error *ngIf=\"isFieldValid('password') && !!userForm.get('password').validator\">\n {{getErrorMessage('password')}}</mat-error>\n </mat-form-field>\n\n <div class=\"d-flex flex-column justify-content-start gap-1\">\n <mat-checkbox formControlName=\"is_temporary_password\">Is Temporary Password?</mat-checkbox>\n <small class=\"text-secondary\">Should this user to update password on first login?</small>\n </div>\n\n <div *ngIf=\"this.config.userConfig.showSignature\">\n <ng-template #fileUpload>\n <section class=\"col-12\">\n <div>User Signature</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\"\n [fileArray]=\"fileList\">\n </app-file-dropper>\n </section>\n </ng-template>\n <div class=\"col-12\" *ngIf=\"userForm.get('signature').value;else fileUpload;\">\n <app-document-viewer [file]=\"userForm.get('signature').value\"\n [fileUrl]=\"userForm.get('signature_url').value\" [config]=\"this.viewerConfig\"\n (remove)=\"removeFile()\">\n </app-document-viewer>\n </div>\n </div>\n <mat-form-field fxFlex=\"100%\" *ngIf=\"this.config.userConfig.showUserTypes\">\n <mat-label>User Type</mat-label>\n <mat-select formControlName=\"user_type_id\" autocomplete=\"off\" required>\n <mat-option *ngFor=\"let userType of userTypes\" [value]=\"userType.value\">\n {{userType.title}}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"isFieldValid('user_type_id')\">{{getErrorMessage('user_type_id')}}</mat-error>\n </mat-form-field>\n\n <mat-card fxFlex=\"100%\"\n *ngIf=\"(this.config.userConfig.showRoles || this.config.userConfig.showFormRoles) && this.userForm.get('user_type_id').value == 3\">\n <mat-card-title>\n <small class=\"form-text text-muted\">\n Roles\n </small>\n </mat-card-title>\n <mat-card-content style=\"overflow:auto; min-height:150px; max-height:260px;\" fxLayout=\"column\">\n <div *ngFor=\"let role of userRoles | keyvalue\">\n <label *ngIf=\"role.value[0].module_id\" class=\"text-muted\">\n {{role?.value[0]?.module?.name}}\n </label>\n <div *ngFor=\"let roleValue of role.value;\" fxLayout=\"column\"\n [ngClass]=\"{ 'ml-4': role.value[0].module_id }\">\n <mat-checkbox [checked]=\"roleValue.selected\" (change)=\"roleSelected($event, roleValue.id)\">\n {{roleValue.label}}\n </mat-checkbox>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div fxFlex=\"100%\" fxLayout=\"row\" fxLayoutGap=\"1.5rem\" fxLayoutAlign=\"end\" class=\"my-4\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button (click)=\"closeDialog()\" type=\"button\">\n Cancel\n </button>\n </div>\n\n </div>\n\n </div>\n</form>\n" }]
|
|
226
|
-
}], ctorParameters:
|
|
211
|
+
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
227
212
|
type: Inject,
|
|
228
213
|
args: [MAT_DIALOG_DATA]
|
|
229
|
-
}] }, { type: i2.HttpService }, { type: i2.AlertService }, { type: i2.ErrorHandlerService }, { type: i3.UntypedFormBuilder }, { type: i2.FormValidatorService }, { type: i4.UserService }, { type: i5.UserConfigService }]
|
|
214
|
+
}] }, { type: i2.HttpService }, { type: i2.AlertService }, { type: i2.ErrorHandlerService }, { type: i3.UntypedFormBuilder }, { type: i2.FormValidatorService }, { type: i4.UserService }, { type: i5.UserConfigService }], propDecorators: { userId: [{
|
|
230
215
|
type: Input
|
|
231
216
|
}], onSave: [{
|
|
232
217
|
type: Output
|
|
233
218
|
}] } });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci91c2VyLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyL3VzZXItZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBd0MsVUFBVSxFQUFFLGtCQUFrQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBS3hILE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekUsTUFBTSxhQUFhLEdBQVE7SUFDekIsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGtCQUFrQjtLQUM3QjtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsS0FBSyxFQUFFLGVBQWU7S0FDdkI7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDO0lBQ0QsWUFBWSxFQUFFO1FBQ1osUUFBUSxFQUFFLHVCQUF1QjtLQUNsQztDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8saUJBQWlCO0lBbUJUO0lBQ3lCO0lBQ3hCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBMUJWLE1BQU0sQ0FBUztJQUNkLE1BQU0sQ0FBcUI7SUFDckMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLENBQW1CO0lBQzNCLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLE1BQU0sQ0FBa0I7SUFDeEIsU0FBUyxH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QUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3hFO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsSUFBVTtRQUN6QixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLFVBQVUsRUFBRTthQUNaLElBQUksQ0FDSCx5QkFBeUIsRUFDekIsUUFBUSxDQUNULENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQzt3R0FwTVUsaUJBQWlCLDhDQW9CUixlQUFlOzRGQXBCeEIsaUJBQWlCLDhHQ2pDOUIsMHhLQWdHQTs7NEZEL0RhLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxXQUFXOzswQkF1QlIsTUFBTTsyQkFBQyxlQUFlO2lRQW5CMUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5cbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNdWx0aVVzZXJDb25maWcgfSBmcm9tICcuLi91c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBVc2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7RmlsZURyb3BwZXJDb25maWd9IGZyb20gXCIuLi9maWxlLWRyb3BwZXJcIjtcbmltcG9ydCB7Vmlld2VyQ29uZmlnfSBmcm9tIFwiLi4vZG9jdW1lbnQtdmlld2VyXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgbmFtZToge1xuICAgIHJlcXVpcmVkOiAnTmFtZSBpcyByZXF1aXJlZCdcbiAgfSxcbiAgZW1haWw6IHtcbiAgICByZXF1aXJlZDogJ0VtYWlsIGlzIHJlcXVpcmVkJyxcbiAgICBlbWFpbDogJ0ludmFsaWQgZW1haWwnLFxuICB9LFxuICBwYXNzd29yZDoge1xuICAgIHJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQnXG4gIH0sXG4gIHVzZXJfdHlwZV9pZDoge1xuICAgIHJlcXVpcmVkOiAnVXNlciBUeXBlIGlzIHJlcXVpcmVkJ1xuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1mb3JtLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdXNlcklkOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBvblNhdmU6IEV2ZW50RW1pdHRlcjxVc2VyPjtcbiAgaXNXb3JraW5nID0gZmFsc2U7XG4gIHVzZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpc1Bhc3N3b3JkUmVxdWlyZWQgPSBmYWxzZTtcbiAgdXBkYXRlTW9kZSA9IGZhbHNlO1xuICBjb25maWc6IE11bHRpVXNlckNvbmZpZztcbiAgdXNlclR5cGVzOiBhbnkgPSBbXG4gICAgeyB0aXRsZTogJ0FkbWluJywgdmFsdWU6IDIgfSxcbiAgICB7IHRpdGxlOiAnTm9ybWFsIFVzZXInLCB2YWx1ZTogMyB9LFxuICBdO1xuICB1c2VyczogVXNlcltdID0gW107XG4gIHVzZXJSb2xlczogYW55W10gPSBbXTtcbiAgcm9sZXM6IGFueVtdID0gW107XG4gIGZpbGVDb25maWc6IEZpbGVEcm9wcGVyQ29uZmlnO1xuICB2aWV3ZXJDb25maWc6IFZpZXdlckNvbmZpZztcbiAgZmlsZUxpc3Q6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVzZXJGb3JtQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyB1c2VyOiBhbnksXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHVzZXJDb25maWdTZXJ2aWNlOiBVc2VyQ29uZmlnU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5vblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXI+KCk7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICB9XG5cbiAgZ2V0IHJvbGVGb3JtcygpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5nZXQoJ3JvbGVzJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXNlclR5cGVzID0gdGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93VXNlclR5cGVzXG4gICAgICA/IHRoaXMuY29uZmlnLnVzZXJDb25maWcudXNlclR5cGVzXG4gICAgICA6IHRoaXMudXNlclR5cGVzO1xuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgbmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxuICAgICAgZW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pKSxcbiAgICAgIHBhc3N3b3JkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHBob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHVzZXJfdHlwZV9pZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICByb2xlczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgICByb2xlc19leGlzdHM6IFtbXV0sXG4gICAgICBjbGllbnRfaWQ6IFsnJ10sXG4gICAgICBzaWduYXR1cmVfdXJsOiBbJyddLFxuICAgICAgc2lnbmF0dXJlOiBbJyddLFxuICAgICAgaXNfdGVtcG9yYXJ5X3Bhc3N3b3JkOiBbdHJ1ZV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJGb3JtLnBhdGNoVmFsdWUodGhpcy51c2VyKTtcbiAgICBpZiAodGhpcy51c2VyLmhhc093blByb3BlcnR5KCdpZCcpKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGUgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyRm9ybS5jb250cm9scy51c2VyX3R5cGVfaWQuc2V0VmFsdWUodGhpcy51c2VyLnVzZXJfdHlwZV9pZCk7XG4gICAgICB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzLnJvbGVzX2V4aXN0cy5zZXRWYWx1ZSh0aGlzLnVzZXIucm9sZXMgfHwgW10pO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93Um9sZXMgfHwgdGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93Rm9ybVJvbGVzKSB7XG4gICAgICB0aGlzLmxvYWRSb2xlcygpO1xuICAgIH1cbiAgICB0aGlzLmZpbGVDb25maWcgPSB7XG4gICAgICBmaWxlSWQ6ICdzdWJqZWN0RmlsZScsXG4gICAgICBjb250YWluZXJJZDogJ3N1YmplY3RGaWxlQ29udGFpbmVyJyxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBoZWlnaHQ6ICcyMDBweCdcbiAgICAgIH0sXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBhY2NlcHRGaWxlOiAnKicsXG4gICAgICBtYXhTaXplOiAxMCxcbiAgICAgIGFjY2VwdEZpbGVUZXh0OiAnUE5HIGFuZCBKUEVHIG9ubHknXG4gICAgfTtcblxuICAgIHRoaXMudmlld2VyQ29uZmlnID0ge1xuICAgICAgdmlld2VyU3R5bGU6IHtcbiAgICAgICAgaGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICB3aWR0aDogJzEwMCUnXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGxvYWRSb2xlcygpIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgbGV0IGZpbHRlciA9IHt9O1xuICAgIGZpbHRlciA9IHsgY2xpZW50X2lkOiB0aGlzLnVzZXI/LmNsaWVudF9pZCB8fCAnJyB9O1xuICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9yb2xlcycsIHsgcGFyYW1zOiBmaWx0ZXIgfSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcm9sZXMgPSByZXMuZGF0YTtcbiAgICAgICAgLyogTGV0cyBzZXQgdGhlIHJvbGVzIHRoaXMgdXNlciBoYXMgKi9cbiAgICAgICAgZm9yIChsZXQgcm9sZSBvZiByb2xlcykge1xuICAgICAgICAgIHJvbGUuc2VsZWN0ZWQgPSB0aGlzLnVzZXJGb3JtLnZhbHVlLnJvbGVzX2V4aXN0cy5maW5kKHJvbGVEYXRhID0+IHJvbGVEYXRhLmlkID09IHJvbGUuaWQpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm9sZXMgPSByb2xlcztcbiAgICAgICAgdGhpcy51c2VyUm9sZXMgPSByb2xlcy5yZWR1Y2UoKHIsIGEpID0+IHtcbiAgICAgICAgICByW2EubW9kdWxlX2lkXSA9IFsuLi5yW2EubW9kdWxlX2lkXSB8fCBbXSwgYV07XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMudXNlckZvcm0udmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLnVzZXJGb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICBsZXQgcm9sZXMgPSBbXTtcblxuICAgICAgdGhpcy5yb2xlcy5mb3JFYWNoKChyb2xlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJvbGUuc2VsZWN0ZWQpIHtcbiAgICAgICAgICByb2xlc1tyb2xlLmlkXSA9IHJvbGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZGF0YS5yb2xlcyA9IHJvbGVzO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnVwZGF0ZU1vZGUgPyBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIoZGF0YSlcbiAgICAgICAgOiBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoZGF0YSk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IHNhdmVkIHRoZSB1c2VyLiAnLCAnc3VjY2VzcycpO1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByb2xlU2VsZWN0ZWQoZXZlbnQ6IGFueSwgcm9sZUlkOiBudW1iZXIpIHtcbiAgICB0aGlzLnJvbGVzLmZvckVhY2goKHJvbGU6IGFueSkgPT4ge1xuICAgICAgaWYgKHJvbGUuaWQgPT0gcm9sZUlkKSB7XG4gICAgICAgIHJvbGUuc2VsZWN0ZWQgPSBldmVudC5jaGVja2VkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIE1ldGhvZCB0byBldmFsdWF0ZSBmb3JtIGZpZWxkcyovXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKGZpZWxkLCB0aGlzLnVzZXJGb3JtKTtcbiAgfVxuXG4gIC8qKiBNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLCB0aGlzLnVzZXJGb3JtLCBlcnJvck1lc3NhZ2VzKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbiAgYXN5bmMgZmlsZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsZUxpc3QgPSBldmVudDtcblxuICAgIGlmICh0aGlzLmZpbGVMaXN0Lmxlbmd0aCA+IDApIHtcblxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLnVwbG9hZEVudGl0eUZpbGUoXG4gICAgICAgIHRoaXMuZmlsZUxpc3RbMF1cbiAgICAgICk7XG4gICAgICB0aGlzLnVzZXJGb3JtXG4gICAgICAgIC5nZXQoJ3NpZ25hdHVyZScpXG4gICAgICAgIC5zZXRWYWx1ZShyZXN1bHQuaXRlbS5maWxlKTtcbiAgICAgIHRoaXMudXNlckZvcm1cbiAgICAgICAgLmdldCgnc2lnbmF0dXJlX3VybCcpXG4gICAgICAgIC5zZXRWYWx1ZShyZXN1bHQuaXRlbS51cmwpO1xuICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cbiAgfVxuXG5cbiAgYXN5bmMgcmVtb3ZlRmlsZSgpIHtcbiAgICBpZiAodGhpcy51c2VyRm9ybS52YWx1ZS5zaWduYXR1cmUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMudXNlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnJyxcbiAgICAgICAgICBzaWduYXR1cmVfdXJsOiAnJ1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdVbmFibGUgdG8gcmVtb3ZlIGZpbGUsIHRyeSBsYXRlcicsICd3YXJuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHVwbG9hZEVudGl0eUZpbGUoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZURhdGEnLCBmaWxlLCBmaWxlLm5hbWUpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5za2lwSGVhZGVyKClcbiAgICAgIC5wb3N0KFxuICAgICAgICAnYXBpL2VudGl0eS1maWxlcy11cGxvYWQnLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdj5Vc2VyIE1hbmFnZW1lbnQ8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIkZ1bGwgTmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhdXNlckZvcm0uZ2V0KCduYW1lJykudmFsaWRhdG9yXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCduYW1lJykgJiYgISF1c2VyRm9ybS5nZXQoJ25hbWUnKS52YWxpZGF0b3JcIj57e2dldEVycm9yTWVzc2FnZSgnbmFtZScpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW1haWxcIiB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiISF1c2VyRm9ybS5nZXQoJ2VtYWlsJykudmFsaWRhdG9yXCIgLz5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdlbWFpbCcpICYmICEhdXNlckZvcm0uZ2V0KCdlbWFpbCcpLnZhbGlkYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgnZW1haWwnKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIiAqbmdJZj1cInRoaXMuY29uZmlnLnVzZXJDb25maWcuc2hvd1Bob25lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgcGxhY2Vob2xkZXI9XCJQaG9uZVwiIHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXNQYXNzd29yZFJlcXVpcmVkICYmICEhdXNlckZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbGlkYXRvclwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmQnKSAmJiAhIXVzZXJGb3JtLmdldCgncGFzc3dvcmQnKS52YWxpZGF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ3Bhc3N3b3JkJyl9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJpc190ZW1wb3JhcnlfcGFzc3dvcmRcIj5JcyBUZW1wb3JhcnkgUGFzc3dvcmQ/PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+U2hvdWxkIHRoaXMgdXNlciB0byB1cGRhdGUgcGFzc3dvcmQgb24gZmlyc3QgbG9naW4/PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93U2lnbmF0dXJlXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWxlVXBsb2FkPlxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Vc2VyIFNpZ25hdHVyZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1maWxlLWRyb3BwZXIgW2NvbmZpZ109XCJmaWxlQ29uZmlnXCIgKGZpbGVDaGFuZ2VkKT1cImZpbGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlQXJyYXldPVwiZmlsZUxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWZpbGUtZHJvcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidXNlckZvcm0uZ2V0KCdzaWduYXR1cmUnKS52YWx1ZTtlbHNlIGZpbGVVcGxvYWQ7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZG9jdW1lbnQtdmlld2VyIFtmaWxlXT1cInVzZXJGb3JtLmdldCgnc2lnbmF0dXJlJykudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVVcmxdPVwidXNlckZvcm0uZ2V0KCdzaWduYXR1cmVfdXJsJykudmFsdWVcIiBbY29uZmlnXT1cInRoaXMudmlld2VyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwicmVtb3ZlRmlsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWRvY3VtZW50LXZpZXdlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIiAqbmdJZj1cInRoaXMuY29uZmlnLnVzZXJDb25maWcuc2hvd1VzZXJUeXBlc1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VXNlciBUeXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidXNlcl90eXBlX2lkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1c2VyVHlwZSBvZiB1c2VyVHlwZXNcIiBbdmFsdWVdPVwidXNlclR5cGUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlclR5cGUudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3VzZXJfdHlwZV9pZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3VzZXJfdHlwZV9pZCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZCBmeEZsZXg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIih0aGlzLmNvbmZpZy51c2VyQ29uZmlnLnNob3dSb2xlcyB8fCB0aGlzLmNvbmZpZy51c2VyQ29uZmlnLnNob3dGb3JtUm9sZXMpICYmIHRoaXMudXNlckZvcm0uZ2V0KCd1c2VyX3R5cGVfaWQnKS52YWx1ZSA9PSAzXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUm9sZXNcbiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IHN0eWxlPVwib3ZlcmZsb3c6YXV0bzsgbWluLWhlaWdodDoxNTBweDsgbWF4LWhlaWdodDoyNjBweDtcIiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb2xlIG9mIHVzZXJSb2xlcyB8IGtleXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJyb2xlLnZhbHVlWzBdLm1vZHVsZV9pZFwiIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cm9sZT8udmFsdWVbMF0/Lm1vZHVsZT8ubmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm9sZVZhbHVlIG9mIHJvbGUudmFsdWU7XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ21sLTQnOiByb2xlLnZhbHVlWzBdLm1vZHVsZV9pZCB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJyb2xlVmFsdWUuc2VsZWN0ZWRcIiAoY2hhbmdlKT1cInJvbGVTZWxlY3RlZCgkZXZlbnQsIHJvbGVWYWx1ZS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyb2xlVmFsdWUubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG5cbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMTAwJVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIiBmeExheW91dEFsaWduPVwiZW5kXCIgY2xhc3M9XCJteS00XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci91c2VyLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyL3VzZXItZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBd0MsVUFBVSxFQUFFLGtCQUFrQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBS3hILE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekUsTUFBTSxhQUFhLEdBQVE7SUFDekIsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGtCQUFrQjtLQUM3QjtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsS0FBSyxFQUFFLGVBQWU7S0FDdkI7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDO0lBQ0QsWUFBWSxFQUFFO1FBQ1osUUFBUSxFQUFFLHVCQUF1QjtLQUNsQztDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8saUJBQWlCO0lBbUI1QixZQUFtQixTQUEwQyxFQUNqQixJQUFTLEVBQ2pDLElBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLFlBQWlDLEVBQ2pDLEVBQXNCLEVBQ3RCLG9CQUEwQyxFQUMxQyxXQUF3QixFQUN6QixpQkFBb0M7UUFScEMsY0FBUyxHQUFULFNBQVMsQ0FBaUM7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF4QnZELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsY0FBUyxHQUFRO1lBQ2YsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDNUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDbkMsQ0FBQztRQUNGLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUN0QixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBR2xCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFZbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBcUIsQ0FBQztJQUN4RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYTtZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzVCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0UsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlGLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNwQyxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDakMsWUFBWSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDN0QsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2YsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNmLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixNQUFNLEVBQUUsYUFBYTtZQUNyQixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsT0FBTzthQUNoQjtZQUNELFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsRUFBRTtZQUNYLGNBQWMsRUFBRSxtQkFBbUI7U0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsV0FBVyxFQUFFO2dCQUNYLE1BQU0sRUFBRSxPQUFPO2dCQUNmLEtBQUssRUFBRSxNQUFNO2FBQ2Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDN0QsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDckIsc0NBQXNDO1lBQ3RDLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMzRyxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxJQUFJLEdBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFFZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRW5CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUN0RSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7Z0JBQ08sQ0FBQztZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVUsRUFBRSxNQUFjO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBRTdCLE1BQU0sTUFBTSxHQUFRLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVE7aUJBQ1YsR0FBRyxDQUFDLFdBQVcsQ0FBQztpQkFDaEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFFBQVE7aUJBQ1YsR0FBRyxDQUFDLGVBQWUsQ0FBQztpQkFDcEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFHRCxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtvQkFDYixhQUFhLEVBQUUsRUFBRTtpQkFDbEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsSUFBVTtRQUN6QixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLFVBQVUsRUFBRTthQUNaLElBQUksQ0FDSCx5QkFBeUIsRUFDekIsUUFBUSxDQUNULENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQzsrR0FwTVUsaUJBQWlCLDhDQW9CUixlQUFlO21HQXBCeEIsaUJBQWlCLDhHQ2pDOUIsMHhLQWdHQTs7NEZEL0RhLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxXQUFXOzswQkF1QlIsTUFBTTsyQkFBQyxlQUFlOzhQQW5CMUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5cbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNdWx0aVVzZXJDb25maWcgfSBmcm9tICcuLi91c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBVc2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7RmlsZURyb3BwZXJDb25maWd9IGZyb20gXCIuLi9maWxlLWRyb3BwZXJcIjtcbmltcG9ydCB7Vmlld2VyQ29uZmlnfSBmcm9tIFwiLi4vZG9jdW1lbnQtdmlld2VyXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgbmFtZToge1xuICAgIHJlcXVpcmVkOiAnTmFtZSBpcyByZXF1aXJlZCdcbiAgfSxcbiAgZW1haWw6IHtcbiAgICByZXF1aXJlZDogJ0VtYWlsIGlzIHJlcXVpcmVkJyxcbiAgICBlbWFpbDogJ0ludmFsaWQgZW1haWwnLFxuICB9LFxuICBwYXNzd29yZDoge1xuICAgIHJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQnXG4gIH0sXG4gIHVzZXJfdHlwZV9pZDoge1xuICAgIHJlcXVpcmVkOiAnVXNlciBUeXBlIGlzIHJlcXVpcmVkJ1xuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1mb3JtLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdXNlcklkOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBvblNhdmU6IEV2ZW50RW1pdHRlcjxVc2VyPjtcbiAgaXNXb3JraW5nID0gZmFsc2U7XG4gIHVzZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpc1Bhc3N3b3JkUmVxdWlyZWQgPSBmYWxzZTtcbiAgdXBkYXRlTW9kZSA9IGZhbHNlO1xuICBjb25maWc6IE11bHRpVXNlckNvbmZpZztcbiAgdXNlclR5cGVzOiBhbnkgPSBbXG4gICAgeyB0aXRsZTogJ0FkbWluJywgdmFsdWU6IDIgfSxcbiAgICB7IHRpdGxlOiAnTm9ybWFsIFVzZXInLCB2YWx1ZTogMyB9LFxuICBdO1xuICB1c2VyczogVXNlcltdID0gW107XG4gIHVzZXJSb2xlczogYW55W10gPSBbXTtcbiAgcm9sZXM6IGFueVtdID0gW107XG4gIGZpbGVDb25maWc6IEZpbGVEcm9wcGVyQ29uZmlnO1xuICB2aWV3ZXJDb25maWc6IFZpZXdlckNvbmZpZztcbiAgZmlsZUxpc3Q6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVzZXJGb3JtQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyB1c2VyOiBhbnksXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHVzZXJDb25maWdTZXJ2aWNlOiBVc2VyQ29uZmlnU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5vblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXI+KCk7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICB9XG5cbiAgZ2V0IHJvbGVGb3JtcygpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5nZXQoJ3JvbGVzJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXNlclR5cGVzID0gdGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93VXNlclR5cGVzXG4gICAgICA/IHRoaXMuY29uZmlnLnVzZXJDb25maWcudXNlclR5cGVzXG4gICAgICA6IHRoaXMudXNlclR5cGVzO1xuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgbmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxuICAgICAgZW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pKSxcbiAgICAgIHBhc3N3b3JkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHBob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHVzZXJfdHlwZV9pZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICByb2xlczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgICByb2xlc19leGlzdHM6IFtbXV0sXG4gICAgICBjbGllbnRfaWQ6IFsnJ10sXG4gICAgICBzaWduYXR1cmVfdXJsOiBbJyddLFxuICAgICAgc2lnbmF0dXJlOiBbJyddLFxuICAgICAgaXNfdGVtcG9yYXJ5X3Bhc3N3b3JkOiBbdHJ1ZV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJGb3JtLnBhdGNoVmFsdWUodGhpcy51c2VyKTtcbiAgICBpZiAodGhpcy51c2VyLmhhc093blByb3BlcnR5KCdpZCcpKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGUgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyRm9ybS5jb250cm9scy51c2VyX3R5cGVfaWQuc2V0VmFsdWUodGhpcy51c2VyLnVzZXJfdHlwZV9pZCk7XG4gICAgICB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzLnJvbGVzX2V4aXN0cy5zZXRWYWx1ZSh0aGlzLnVzZXIucm9sZXMgfHwgW10pO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93Um9sZXMgfHwgdGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93Rm9ybVJvbGVzKSB7XG4gICAgICB0aGlzLmxvYWRSb2xlcygpO1xuICAgIH1cbiAgICB0aGlzLmZpbGVDb25maWcgPSB7XG4gICAgICBmaWxlSWQ6ICdzdWJqZWN0RmlsZScsXG4gICAgICBjb250YWluZXJJZDogJ3N1YmplY3RGaWxlQ29udGFpbmVyJyxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBoZWlnaHQ6ICcyMDBweCdcbiAgICAgIH0sXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBhY2NlcHRGaWxlOiAnKicsXG4gICAgICBtYXhTaXplOiAxMCxcbiAgICAgIGFjY2VwdEZpbGVUZXh0OiAnUE5HIGFuZCBKUEVHIG9ubHknXG4gICAgfTtcblxuICAgIHRoaXMudmlld2VyQ29uZmlnID0ge1xuICAgICAgdmlld2VyU3R5bGU6IHtcbiAgICAgICAgaGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICB3aWR0aDogJzEwMCUnXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGxvYWRSb2xlcygpIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgbGV0IGZpbHRlciA9IHt9O1xuICAgIGZpbHRlciA9IHsgY2xpZW50X2lkOiB0aGlzLnVzZXI/LmNsaWVudF9pZCB8fCAnJyB9O1xuICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9yb2xlcycsIHsgcGFyYW1zOiBmaWx0ZXIgfSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcm9sZXMgPSByZXMuZGF0YTtcbiAgICAgICAgLyogTGV0cyBzZXQgdGhlIHJvbGVzIHRoaXMgdXNlciBoYXMgKi9cbiAgICAgICAgZm9yIChsZXQgcm9sZSBvZiByb2xlcykge1xuICAgICAgICAgIHJvbGUuc2VsZWN0ZWQgPSB0aGlzLnVzZXJGb3JtLnZhbHVlLnJvbGVzX2V4aXN0cy5maW5kKHJvbGVEYXRhID0+IHJvbGVEYXRhLmlkID09IHJvbGUuaWQpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm9sZXMgPSByb2xlcztcbiAgICAgICAgdGhpcy51c2VyUm9sZXMgPSByb2xlcy5yZWR1Y2UoKHIsIGEpID0+IHtcbiAgICAgICAgICByW2EubW9kdWxlX2lkXSA9IFsuLi5yW2EubW9kdWxlX2lkXSB8fCBbXSwgYV07XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMudXNlckZvcm0udmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLnVzZXJGb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICBsZXQgcm9sZXMgPSBbXTtcblxuICAgICAgdGhpcy5yb2xlcy5mb3JFYWNoKChyb2xlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJvbGUuc2VsZWN0ZWQpIHtcbiAgICAgICAgICByb2xlc1tyb2xlLmlkXSA9IHJvbGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZGF0YS5yb2xlcyA9IHJvbGVzO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnVwZGF0ZU1vZGUgPyBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIoZGF0YSlcbiAgICAgICAgOiBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoZGF0YSk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IHNhdmVkIHRoZSB1c2VyLiAnLCAnc3VjY2VzcycpO1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByb2xlU2VsZWN0ZWQoZXZlbnQ6IGFueSwgcm9sZUlkOiBudW1iZXIpIHtcbiAgICB0aGlzLnJvbGVzLmZvckVhY2goKHJvbGU6IGFueSkgPT4ge1xuICAgICAgaWYgKHJvbGUuaWQgPT0gcm9sZUlkKSB7XG4gICAgICAgIHJvbGUuc2VsZWN0ZWQgPSBldmVudC5jaGVja2VkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIE1ldGhvZCB0byBldmFsdWF0ZSBmb3JtIGZpZWxkcyovXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKGZpZWxkLCB0aGlzLnVzZXJGb3JtKTtcbiAgfVxuXG4gIC8qKiBNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLCB0aGlzLnVzZXJGb3JtLCBlcnJvck1lc3NhZ2VzKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbiAgYXN5bmMgZmlsZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsZUxpc3QgPSBldmVudDtcblxuICAgIGlmICh0aGlzLmZpbGVMaXN0Lmxlbmd0aCA+IDApIHtcblxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLnVwbG9hZEVudGl0eUZpbGUoXG4gICAgICAgIHRoaXMuZmlsZUxpc3RbMF1cbiAgICAgICk7XG4gICAgICB0aGlzLnVzZXJGb3JtXG4gICAgICAgIC5nZXQoJ3NpZ25hdHVyZScpXG4gICAgICAgIC5zZXRWYWx1ZShyZXN1bHQuaXRlbS5maWxlKTtcbiAgICAgIHRoaXMudXNlckZvcm1cbiAgICAgICAgLmdldCgnc2lnbmF0dXJlX3VybCcpXG4gICAgICAgIC5zZXRWYWx1ZShyZXN1bHQuaXRlbS51cmwpO1xuICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cbiAgfVxuXG5cbiAgYXN5bmMgcmVtb3ZlRmlsZSgpIHtcbiAgICBpZiAodGhpcy51c2VyRm9ybS52YWx1ZS5zaWduYXR1cmUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMudXNlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnJyxcbiAgICAgICAgICBzaWduYXR1cmVfdXJsOiAnJ1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdVbmFibGUgdG8gcmVtb3ZlIGZpbGUsIHRyeSBsYXRlcicsICd3YXJuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHVwbG9hZEVudGl0eUZpbGUoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZURhdGEnLCBmaWxlLCBmaWxlLm5hbWUpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5za2lwSGVhZGVyKClcbiAgICAgIC5wb3N0KFxuICAgICAgICAnYXBpL2VudGl0eS1maWxlcy11cGxvYWQnLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdj5Vc2VyIE1hbmFnZW1lbnQ8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIkZ1bGwgTmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhdXNlckZvcm0uZ2V0KCduYW1lJykudmFsaWRhdG9yXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCduYW1lJykgJiYgISF1c2VyRm9ybS5nZXQoJ25hbWUnKS52YWxpZGF0b3JcIj57e2dldEVycm9yTWVzc2FnZSgnbmFtZScpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW1haWxcIiB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiISF1c2VyRm9ybS5nZXQoJ2VtYWlsJykudmFsaWRhdG9yXCIgLz5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdlbWFpbCcpICYmICEhdXNlckZvcm0uZ2V0KCdlbWFpbCcpLnZhbGlkYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgnZW1haWwnKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIiAqbmdJZj1cInRoaXMuY29uZmlnLnVzZXJDb25maWcuc2hvd1Bob25lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgcGxhY2Vob2xkZXI9XCJQaG9uZVwiIHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXNQYXNzd29yZFJlcXVpcmVkICYmICEhdXNlckZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbGlkYXRvclwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmQnKSAmJiAhIXVzZXJGb3JtLmdldCgncGFzc3dvcmQnKS52YWxpZGF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ3Bhc3N3b3JkJyl9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJpc190ZW1wb3JhcnlfcGFzc3dvcmRcIj5JcyBUZW1wb3JhcnkgUGFzc3dvcmQ/PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+U2hvdWxkIHRoaXMgdXNlciB0byB1cGRhdGUgcGFzc3dvcmQgb24gZmlyc3QgbG9naW4/PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhpcy5jb25maWcudXNlckNvbmZpZy5zaG93U2lnbmF0dXJlXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWxlVXBsb2FkPlxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Vc2VyIFNpZ25hdHVyZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1maWxlLWRyb3BwZXIgW2NvbmZpZ109XCJmaWxlQ29uZmlnXCIgKGZpbGVDaGFuZ2VkKT1cImZpbGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlQXJyYXldPVwiZmlsZUxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWZpbGUtZHJvcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidXNlckZvcm0uZ2V0KCdzaWduYXR1cmUnKS52YWx1ZTtlbHNlIGZpbGVVcGxvYWQ7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZG9jdW1lbnQtdmlld2VyIFtmaWxlXT1cInVzZXJGb3JtLmdldCgnc2lnbmF0dXJlJykudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVVcmxdPVwidXNlckZvcm0uZ2V0KCdzaWduYXR1cmVfdXJsJykudmFsdWVcIiBbY29uZmlnXT1cInRoaXMudmlld2VyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwicmVtb3ZlRmlsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWRvY3VtZW50LXZpZXdlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIiAqbmdJZj1cInRoaXMuY29uZmlnLnVzZXJDb25maWcuc2hvd1VzZXJUeXBlc1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VXNlciBUeXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidXNlcl90eXBlX2lkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1c2VyVHlwZSBvZiB1c2VyVHlwZXNcIiBbdmFsdWVdPVwidXNlclR5cGUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlclR5cGUudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3VzZXJfdHlwZV9pZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3VzZXJfdHlwZV9pZCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZCBmeEZsZXg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIih0aGlzLmNvbmZpZy51c2VyQ29uZmlnLnNob3dSb2xlcyB8fCB0aGlzLmNvbmZpZy51c2VyQ29uZmlnLnNob3dGb3JtUm9sZXMpICYmIHRoaXMudXNlckZvcm0uZ2V0KCd1c2VyX3R5cGVfaWQnKS52YWx1ZSA9PSAzXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUm9sZXNcbiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IHN0eWxlPVwib3ZlcmZsb3c6YXV0bzsgbWluLWhlaWdodDoxNTBweDsgbWF4LWhlaWdodDoyNjBweDtcIiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb2xlIG9mIHVzZXJSb2xlcyB8IGtleXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJyb2xlLnZhbHVlWzBdLm1vZHVsZV9pZFwiIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cm9sZT8udmFsdWVbMF0/Lm1vZHVsZT8ubmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm9sZVZhbHVlIG9mIHJvbGUudmFsdWU7XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ21sLTQnOiByb2xlLnZhbHVlWzBdLm1vZHVsZV9pZCB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJyb2xlVmFsdWUuc2VsZWN0ZWRcIiAoY2hhbmdlKT1cInJvbGVTZWxlY3RlZCgkZXZlbnQsIHJvbGVWYWx1ZS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyb2xlVmFsdWUubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG5cbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMTAwJVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIiBmeExheW91dEFsaWduPVwiZW5kXCIgY2xhc3M9XCJteS00XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -6,13 +6,13 @@ export class UserSessionService extends TechlifyServiceBaseClass {
|
|
|
6
6
|
constructor(httpService) {
|
|
7
7
|
super(httpService, 'user-sessions');
|
|
8
8
|
}
|
|
9
|
-
static
|
|
10
|
-
static
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserSessionService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserSessionService, providedIn: 'root' }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserSessionService, decorators: [{
|
|
13
13
|
type: Injectable,
|
|
14
14
|
args: [{
|
|
15
15
|
providedIn: 'root'
|
|
16
16
|
}]
|
|
17
|
-
}], ctorParameters:
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvdXNlci1zZXNzaW9ucy91c2VyLXNlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7QUFNMUQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUF3QjtJQUU5RCxZQUNFLFdBQXdCO1FBRXhCLEtBQUssQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0FOVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3N9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXNzaW9uU2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihodHRwU2VydmljZSwgJ3VzZXItc2Vzc2lvbnMnKTtcbiAgfVxufVxuIl19
|
|
@@ -7,16 +7,14 @@ import * as i3 from "@angular/material/table";
|
|
|
7
7
|
import * as i4 from "@angular/material/card";
|
|
8
8
|
import * as i5 from "@angular/material/progress-bar";
|
|
9
9
|
export class UserSessionsComponent extends TechlifyListingControllerInterface {
|
|
10
|
-
service;
|
|
11
|
-
user;
|
|
12
|
-
displayedColumns = [
|
|
13
|
-
'#',
|
|
14
|
-
'Started On',
|
|
15
|
-
'Expires At',
|
|
16
|
-
];
|
|
17
10
|
constructor(service) {
|
|
18
11
|
super();
|
|
19
12
|
this.service = service;
|
|
13
|
+
this.displayedColumns = [
|
|
14
|
+
'#',
|
|
15
|
+
'Started On',
|
|
16
|
+
'Expires At',
|
|
17
|
+
];
|
|
20
18
|
}
|
|
21
19
|
ngOnInit() {
|
|
22
20
|
this.loadData();
|
|
@@ -37,13 +35,13 @@ export class UserSessionsComponent extends TechlifyListingControllerInterface {
|
|
|
37
35
|
error: () => (this.isWorking = false)
|
|
38
36
|
});
|
|
39
37
|
}
|
|
40
|
-
static
|
|
41
|
-
static
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserSessionsComponent, deps: [{ token: i1.UserSessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserSessionsComponent, selector: "app-user-sessions", inputs: { user: "user" }, usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Started On Column -->\n <ng-container matColumnDef=\"Started On\">\n <th mat-header-cell *matHeaderCellDef> Started On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <!-- Expires At Column -->\n <ng-container matColumnDef=\"Expires At\">\n <th mat-header-cell *matHeaderCellDef> Expires At </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.expires_at | date:'medium' }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] }); }
|
|
42
40
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserSessionsComponent, decorators: [{
|
|
44
42
|
type: Component,
|
|
45
43
|
args: [{ selector: 'app-user-sessions', template: "<mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Started On Column -->\n <ng-container matColumnDef=\"Started On\">\n <th mat-header-cell *matHeaderCellDef> Started On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <!-- Expires At Column -->\n <ng-container matColumnDef=\"Expires At\">\n <th mat-header-cell *matHeaderCellDef> Expires At </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.expires_at | date:'medium' }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>\n" }]
|
|
46
|
-
}], ctorParameters:
|
|
44
|
+
}], ctorParameters: () => [{ type: i1.UserSessionService }], propDecorators: { user: [{
|
|
47
45
|
type: Input
|
|
48
46
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvdXNlci1zZXNzaW9ucy91c2VyLXNlc3Npb25zL3VzZXItc2Vzc2lvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyL3VzZXItc2Vzc2lvbnMvdXNlci1zZXNzaW9ucy91c2VyLXNlc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQ0FBa0M7SUFVM0UsWUFDVSxPQUEyQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBUHJDLHFCQUFnQixHQUFhO1lBQzNCLEdBQUc7WUFDSCxZQUFZO1lBQ1osWUFBWTtTQUNiLENBQUM7SUFNRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFRO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXBDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwR0NWbEMsb3JDQWtDQTs7NEZEeEJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7dUZBTXBCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZX0gZnJvbSAnLi4vLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uLy4uL3VzZXIubW9kZWwnO1xuaW1wb3J0IHtVc2VyU2Vzc2lvblNlcnZpY2V9IGZyb20gXCIuLi91c2VyLXNlc3Npb24uc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1zZXNzaW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXNlc3Npb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1zZXNzaW9ucy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlc3Npb25zQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdXNlcjogVXNlcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnIycsXG4gICAgJ1N0YXJ0ZWQgT24nLFxuICAgICdFeHBpcmVzIEF0JyxcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IFVzZXJTZXNzaW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy51c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgdXNlcl9pZHM6IHRoaXMudXNlcj8uaWQsXG4gICAgfTtcbiAgICB0aGlzLnNlcnZpY2UuaW5kZXgocGFyYW1zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzcG9uc2U/LmRhdGEpO1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSlcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiPlxuXG4gICAgICA8IS0tICMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCIjXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj4ge3sgaSArIDEgfX0gPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFN0YXJ0ZWQgT24gQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJTdGFydGVkIE9uXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFN0YXJ0ZWQgT24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICB7eyBlbGVtZW50Py5jcmVhdGVkX2F0IHwgZGF0ZTonbWVkaXVtJyB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gRXhwaXJlcyBBdCBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkV4cGlyZXMgQXRcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRXhwaXJlcyBBdCA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7IGVsZW1lbnQ/LmV4cGlyZXNfYXQgfCBkYXRlOidtZWRpdW0nIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJpc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
|