ngx-techlify-core 19.0.0 → 22.3.0
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/fesm2022/ngx-techlify-core-base-model-oCILHkdE.mjs +677 -0
- package/fesm2022/ngx-techlify-core-base-model-oCILHkdE.mjs.map +1 -0
- package/fesm2022/ngx-techlify-core-shared.module-DROe5GRx.mjs +4842 -0
- package/fesm2022/ngx-techlify-core-shared.module-DROe5GRx.mjs.map +1 -0
- package/fesm2022/ngx-techlify-core-user-config.service-DW5EgXhL.mjs +133 -0
- package/fesm2022/ngx-techlify-core-user-config.service-DW5EgXhL.mjs.map +1 -0
- package/fesm2022/ngx-techlify-core-user-sessions.module-BRmDpYG3.mjs +2135 -0
- package/fesm2022/ngx-techlify-core-user-sessions.module-BRmDpYG3.mjs.map +1 -0
- package/fesm2022/ngx-techlify-core.mjs +32477 -16273
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/package.json +19 -19
- package/styles/_index.scss +1 -1
- package/styles/style.scss +2 -2
- package/types/ngx-techlify-core.d.ts +6429 -0
- package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +0 -126
- package/esm2022/lib/access-control-config/access-control-config-routing.module.mjs +0 -31
- package/esm2022/lib/access-control-config/access-control-config.component.mjs +0 -128
- package/esm2022/lib/access-control-config/access-control-config.model.mjs +0 -21
- package/esm2022/lib/access-control-config/access-control-config.module.mjs +0 -28
- package/esm2022/lib/access-control-config/access-control-config.service.mjs +0 -37
- package/esm2022/lib/action-popup/action-popup.component.mjs +0 -33
- package/esm2022/lib/action-popup/action-popup.model.mjs +0 -3
- package/esm2022/lib/action-popup/action-popup.module.mjs +0 -28
- package/esm2022/lib/action-popup/index.mjs +0 -3
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list-routing.module.mjs +0 -26
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +0 -115
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.mjs +0 -33
- package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +0 -87
- package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.mjs +0 -22
- package/esm2022/lib/app-admin/admin-role/admin-role.service.mjs +0 -24
- package/esm2022/lib/app-admin/app-admin-home/app-admin-home.component.mjs +0 -17
- package/esm2022/lib/app-admin/app-admin-routing.module.mjs +0 -29
- package/esm2022/lib/app-admin/app-admin.module.mjs +0 -22
- package/esm2022/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.mjs +0 -56
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +0 -61
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +0 -32
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +0 -149
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +0 -28
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +0 -56
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +0 -24
- package/esm2022/lib/audit-log/audit-log-routing.module.mjs +0 -25
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +0 -53
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +0 -24
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +0 -55
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +0 -24
- package/esm2022/lib/audit-log/audit-log.module.mjs +0 -31
- package/esm2022/lib/audit-log/audit-log.service.mjs +0 -18
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +0 -18
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +0 -23
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +0 -28
- package/esm2022/lib/base-model/index.mjs +0 -8
- package/esm2022/lib/base-model/techlify-form/contract/techlify-form.contract.mjs +0 -191
- package/esm2022/lib/base-model/techlify-form/techlify-form.component.mjs +0 -134
- package/esm2022/lib/base-model/techlify-list/contract/techlify-list.contract.mjs +0 -69
- package/esm2022/lib/base-model/techlify-list/techlify-list.component.mjs +0 -331
- package/esm2022/lib/base-model/techlify-service.mjs +0 -68
- package/esm2022/lib/base-model/techlify-show/contract/techlify-show.contract.mjs +0 -84
- package/esm2022/lib/base-model/techlify-show/techlify-show.component.mjs +0 -120
- package/esm2022/lib/change-password/change-password-routing.module.mjs +0 -24
- package/esm2022/lib/change-password/change-password.component.mjs +0 -86
- package/esm2022/lib/change-password/change-password.module.mjs +0 -29
- package/esm2022/lib/column-selector/column-config.model.mjs +0 -3
- package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +0 -108
- package/esm2022/lib/column-selector/column-selector.module.mjs +0 -24
- package/esm2022/lib/column-selector/index.mjs +0 -4
- package/esm2022/lib/company-information/client.service.mjs +0 -19
- package/esm2022/lib/company-information/company-info-display/company-info-display.component.mjs +0 -44
- package/esm2022/lib/company-information/company-information/company-information.component.mjs +0 -120
- package/esm2022/lib/company-information/tenant-form-button/tenant-form-button.component.mjs +0 -36
- package/esm2022/lib/core/alert.service.mjs +0 -38
- package/esm2022/lib/core/api-prefix.interceptor.mjs +0 -26
- package/esm2022/lib/core/app-update.service.mjs +0 -64
- package/esm2022/lib/core/authentication.guard.mjs +0 -35
- package/esm2022/lib/core/authentication.service.mjs +0 -67
- package/esm2022/lib/core/cache.interceptor.mjs +0 -58
- package/esm2022/lib/core/config.service.mjs +0 -45
- package/esm2022/lib/core/core.module.mjs +0 -56
- package/esm2022/lib/core/credentials.service.mjs +0 -84
- package/esm2022/lib/core/environment.service.mjs +0 -22
- package/esm2022/lib/core/error-handler.interceptor.mjs +0 -60
- package/esm2022/lib/core/error-handler.service.mjs +0 -68
- package/esm2022/lib/core/filter.service.mjs +0 -40
- package/esm2022/lib/core/form-validator.service.mjs +0 -24
- package/esm2022/lib/core/header.interceptor.mjs +0 -24
- package/esm2022/lib/core/http-cache.service.mjs +0 -107
- package/esm2022/lib/core/http.service.mjs +0 -84
- package/esm2022/lib/core/index.mjs +0 -23
- package/esm2022/lib/core/logger.service.mjs +0 -100
- package/esm2022/lib/core/route-reusable-strategy.mjs +0 -36
- package/esm2022/lib/core/snack/snack.component.mjs +0 -33
- package/esm2022/lib/core/snack/snack.module.mjs +0 -36
- package/esm2022/lib/core/storage.service.mjs +0 -38
- package/esm2022/lib/core/techlify-config.model.mjs +0 -28
- package/esm2022/lib/core/token.interceptor.mjs +0 -28
- package/esm2022/lib/custom-icon/custom-icon-registry.service.mjs +0 -23
- package/esm2022/lib/custom-icon/custom-icon.component.mjs +0 -24
- package/esm2022/lib/custom-icon/custom-icon.module.mjs +0 -20
- package/esm2022/lib/custom-icon/custom-icons.registry.mjs +0 -42
- package/esm2022/lib/data-table/data-table.component.mjs +0 -203
- package/esm2022/lib/data-table/data-table.model.mjs +0 -11
- package/esm2022/lib/data-table/data-table.module.mjs +0 -24
- package/esm2022/lib/data-table/index.mjs +0 -3
- package/esm2022/lib/delete-button/techlify-delete-button.component.mjs +0 -74
- package/esm2022/lib/detail-layout/techlify-detail-layout.component.mjs +0 -11
- package/esm2022/lib/document-viewer/document-viewer.component.mjs +0 -64
- package/esm2022/lib/document-viewer/document-viewer.module.mjs +0 -32
- package/esm2022/lib/document-viewer/index.mjs +0 -3
- package/esm2022/lib/document-viewer/viewer-config.model.mjs +0 -3
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +0 -32
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +0 -73
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +0 -24
- package/esm2022/lib/email-subscription/email-subscription-for-user/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +0 -104
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +0 -28
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +0 -34
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +0 -160
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +0 -28
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +0 -22
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +0 -100
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +0 -27
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +0 -34
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +0 -164
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +0 -32
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +0 -51
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +0 -24
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs +0 -2
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +0 -18
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +0 -22
- package/esm2022/lib/email-subscription/email-subscription.module.mjs +0 -22
- package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +0 -160
- package/esm2022/lib/entity-files/entity-file-list/entity-file-list.component.mjs +0 -251
- package/esm2022/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.mjs +0 -33
- package/esm2022/lib/entity-files/entity-file-list.module.mjs +0 -43
- package/esm2022/lib/entity-files/entity-file.service.mjs +0 -37
- package/esm2022/lib/entity-files/index.mjs +0 -5
- package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +0 -112
- package/esm2022/lib/export-excel/export-excel.module.mjs +0 -28
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +0 -103
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +0 -24
- package/esm2022/lib/file-dropper/file-dropper.component.mjs +0 -125
- package/esm2022/lib/file-dropper/file-dropper.model.mjs +0 -3
- package/esm2022/lib/file-dropper/file-dropper.module.mjs +0 -26
- package/esm2022/lib/file-dropper/index.mjs +0 -3
- package/esm2022/lib/file-upload-button/file-upload-button.component.mjs +0 -47
- package/esm2022/lib/forgot-password/forgot-password-routing.module.mjs +0 -22
- package/esm2022/lib/forgot-password/forgot-password.component.mjs +0 -69
- package/esm2022/lib/forgot-password/forgot-password.module.mjs +0 -26
- package/esm2022/lib/forgot-password/index.mjs +0 -3
- package/esm2022/lib/form-button/techlify-form-button.component.mjs +0 -39
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.mjs +0 -29
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +0 -43
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.mjs +0 -24
- package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.mjs +0 -22
- package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.mjs +0 -28
- package/esm2022/lib/form-configuration/form-configuration-form-field.service.mjs +0 -18
- package/esm2022/lib/form-configuration/form-configuration-form.service.mjs +0 -18
- package/esm2022/lib/form-configuration/form-configuration-utility.service.mjs +0 -37
- package/esm2022/lib/image-preview/image-preview.component.mjs +0 -26
- package/esm2022/lib/import-csv/data-import/data-import.component.mjs +0 -17
- package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +0 -34
- package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +0 -152
- package/esm2022/lib/import-csv/import-csv-config.mjs +0 -2
- package/esm2022/lib/import-csv/import-csv.component.mjs +0 -209
- package/esm2022/lib/import-csv/import-csv.module.mjs +0 -44
- package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +0 -70
- package/esm2022/lib/import-csv/import-success/import-success.component.mjs +0 -23
- package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +0 -24
- package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +0 -108
- package/esm2022/lib/loader/index.mjs +0 -2
- package/esm2022/lib/loader/loader.component.mjs +0 -23
- package/esm2022/lib/loader/loader.module.mjs +0 -28
- package/esm2022/lib/local-date-parser.mjs +0 -6
- package/esm2022/lib/locked-date/index.mjs +0 -6
- package/esm2022/lib/locked-date/locked-date-form/locked-date-form.component.mjs +0 -72
- package/esm2022/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.mjs +0 -35
- package/esm2022/lib/locked-date/locked-date.model.mjs +0 -3
- package/esm2022/lib/locked-date/locked-date.module.mjs +0 -34
- package/esm2022/lib/locked-date/locked-date.service.mjs +0 -25
- package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +0 -62
- package/esm2022/lib/login/index.mjs +0 -3
- package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +0 -152
- package/esm2022/lib/login/login-routing.module.mjs +0 -23
- package/esm2022/lib/login/login.component.mjs +0 -88
- package/esm2022/lib/login/login.module.mjs +0 -33
- package/esm2022/lib/login-history-for-user/login-history-for-user-routing.module.mjs +0 -26
- package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +0 -91
- package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +0 -24
- package/esm2022/lib/material.module.mjs +0 -128
- package/esm2022/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +0 -43
- package/esm2022/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +0 -22
- package/esm2022/lib/note/comment-form/comment-form.component.mjs +0 -76
- package/esm2022/lib/note/index.mjs +0 -5
- package/esm2022/lib/note/note-comment-list/note-comment-list.component.mjs +0 -102
- package/esm2022/lib/note/note-form/note-form.component.mjs +0 -63
- package/esm2022/lib/note/note-list/note-list.component.mjs +0 -111
- package/esm2022/lib/note/note.module.mjs +0 -30
- package/esm2022/lib/note/note.service.mjs +0 -18
- package/esm2022/lib/number-input-button/index.mjs +0 -3
- package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +0 -104
- package/esm2022/lib/number-input-button/number-input-button.module.mjs +0 -24
- package/esm2022/lib/number-selector/number-selector.component.mjs +0 -116
- package/esm2022/lib/ordinal-pipe/ordinal-pipe.mjs +0 -30
- package/esm2022/lib/password-requirement-check/password-check-result.mjs +0 -2
- package/esm2022/lib/password-requirement-check/password-check.service.mjs +0 -43
- package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +0 -56
- package/esm2022/lib/password-requirement-check/password-requirement-check.module.mjs +0 -24
- package/esm2022/lib/pdf-button/pdf-button.component.mjs +0 -35
- package/esm2022/lib/pdf-button/pdf-button.module.mjs +0 -23
- package/esm2022/lib/phone-number-selector/country.service.mjs +0 -31
- package/esm2022/lib/phone-number-selector/phone-number-selector.component.mjs +0 -172
- package/esm2022/lib/pipes/file-size.pipe.mjs +0 -21
- package/esm2022/lib/pipes/wrap.pipe.mjs +0 -20
- package/esm2022/lib/profile/index.mjs +0 -3
- package/esm2022/lib/profile/profile-edit.component.mjs +0 -75
- package/esm2022/lib/profile/profile-routing.module.mjs +0 -23
- package/esm2022/lib/profile/profile.module.mjs +0 -28
- package/esm2022/lib/read-more/read-more.component.mjs +0 -43
- package/esm2022/lib/read-more/read-more.module.mjs +0 -26
- package/esm2022/lib/request-helper/request-helper.service.mjs +0 -131
- package/esm2022/lib/reset-password/index.mjs +0 -4
- package/esm2022/lib/reset-password/reset-password-routing.module.mjs +0 -22
- package/esm2022/lib/reset-password/reset-password.component.mjs +0 -89
- package/esm2022/lib/reset-password/reset-password.module.mjs +0 -30
- package/esm2022/lib/reset-password/reset-password.service.mjs +0 -25
- package/esm2022/lib/restrictors/index.mjs +0 -4
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +0 -91
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +0 -24
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +0 -19
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +0 -91
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +0 -24
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +0 -19
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +0 -92
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +0 -24
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +0 -19
- package/esm2022/lib/restrictors/restrictor.service.mjs +0 -19
- package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +0 -101
- package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +0 -43
- package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +0 -141
- package/esm2022/lib/restrictors/restrictors-routing.module.mjs +0 -42
- package/esm2022/lib/restrictors/restrictors.module.mjs +0 -47
- package/esm2022/lib/role/index.mjs +0 -10
- package/esm2022/lib/role/permission/permission.model.mjs +0 -9
- package/esm2022/lib/role/permission/permission.module.mjs +0 -30
- package/esm2022/lib/role/permission/permission.routes.mjs +0 -26
- package/esm2022/lib/role/permission/permissions-management.component.mjs +0 -127
- package/esm2022/lib/role/role-form-button.component.mjs +0 -44
- package/esm2022/lib/role/role-form.component.mjs +0 -82
- package/esm2022/lib/role/role-list/role-list.component.mjs +0 -120
- package/esm2022/lib/role/role-view/role-view-routing.module.mjs +0 -26
- package/esm2022/lib/role/role-view/role-view.component.mjs +0 -38
- package/esm2022/lib/role/role-view/role-view.module.mjs +0 -28
- package/esm2022/lib/role/role.model.mjs +0 -56
- package/esm2022/lib/role/role.module.mjs +0 -38
- package/esm2022/lib/role/role.routes.mjs +0 -31
- package/esm2022/lib/role/role.service.mjs +0 -23
- package/esm2022/lib/searchable-selector/index.mjs +0 -2
- package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +0 -384
- package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +0 -36
- package/esm2022/lib/shared.module.mjs +0 -85
- package/esm2022/lib/signup/index.mjs +0 -3
- package/esm2022/lib/signup/signup-routing.module.mjs +0 -22
- package/esm2022/lib/signup/signup.component.mjs +0 -78
- package/esm2022/lib/signup/signup.module.mjs +0 -26
- package/esm2022/lib/subscription/subscription-form/subscription-form-routing.module.mjs +0 -18
- package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +0 -148
- package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +0 -26
- package/esm2022/lib/subscription/subscription-listing/subscription-listing-routing.module.mjs +0 -26
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +0 -128
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +0 -30
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing-routing.module.mjs +0 -26
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +0 -116
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +0 -25
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view-routing.module.mjs +0 -26
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +0 -38
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +0 -29
- package/esm2022/lib/subscription/subscription-package.service.mjs +0 -21
- package/esm2022/lib/subscription/subscription-status.enum.mjs +0 -6
- package/esm2022/lib/subscription/subscription.service.mjs +0 -40
- package/esm2022/lib/subscription/techlify-subscription-directive.module.mjs +0 -20
- package/esm2022/lib/subscription/techlify-subscription.directive.mjs +0 -33
- package/esm2022/lib/tag/tag.service.mjs +0 -18
- package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +0 -71
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +0 -15
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +0 -266
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +0 -22
- package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +0 -57
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +0 -181
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +0 -22
- package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +0 -50
- package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +0 -28
- package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +0 -185
- package/esm2022/lib/techlify-company-switcher/index.mjs +0 -3
- package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +0 -70
- package/esm2022/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +0 -32
- package/esm2022/lib/techlify-currency-pipe/techlify-currency-pipe.directive.mjs +0 -27
- package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +0 -24
- package/esm2022/lib/techlify-feature/techlify-feature-directive.module.mjs +0 -20
- package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +0 -32
- package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +0 -141
- package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +0 -28
- package/esm2022/lib/techlify-feature/techlify-feature.routing.mjs +0 -12
- package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +0 -43
- package/esm2022/lib/techlify-icon/techlify-icon.component.mjs +0 -77
- package/esm2022/lib/techlify-icon/techlify-icon.module.mjs +0 -24
- package/esm2022/lib/techlify-notifications/index.mjs +0 -9
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +0 -26
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +0 -52
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +0 -26
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification.module.mjs +0 -22
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +0 -115
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +0 -26
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +0 -28
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +0 -143
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +0 -23
- package/esm2022/lib/techlify-update/techlify-update-routing.module.mjs +0 -28
- package/esm2022/lib/techlify-update/techlify-update.module.mjs +0 -27
- package/esm2022/lib/techlify-update/techlify-update.service.mjs +0 -41
- package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +0 -160
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +0 -58
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +0 -22
- package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +0 -76
- package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +0 -53
- package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +0 -27
- package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +0 -37
- package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +0 -22
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +0 -90
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +0 -24
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.mjs +0 -18
- package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +0 -95
- package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +0 -20
- package/esm2022/lib/techlify-view/techlify-view.service.mjs +0 -18
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.mjs +0 -18
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.mjs +0 -42
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +0 -28
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.mjs +0 -18
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +0 -87
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +0 -24
- package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +0 -18
- package/esm2022/lib/timeline-filter/calculate-timeline.mjs +0 -103
- package/esm2022/lib/timeline-filter/index.mjs +0 -4
- package/esm2022/lib/timeline-filter/timeline-filter-routing.module.mjs +0 -18
- package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +0 -290
- package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +0 -60
- package/esm2022/lib/timeline-filter/timeline.model.mjs +0 -18
- package/esm2022/lib/user/app-admin-user-list/app-admin-user-list.component.mjs +0 -155
- package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.component.mjs +0 -52
- package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +0 -44
- package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.routes.mjs +0 -22
- package/esm2022/lib/user/current-user.service.mjs +0 -152
- package/esm2022/lib/user/index.mjs +0 -14
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +0 -93
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +0 -20
- package/esm2022/lib/user/user-explore.component.mjs +0 -49
- package/esm2022/lib/user/user-form/user-form.component.mjs +0 -200
- package/esm2022/lib/user/user-list/user-list.component.mjs +0 -145
- package/esm2022/lib/user/user-sessions/user-session.service.mjs +0 -18
- package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +0 -47
- package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +0 -20
- package/esm2022/lib/user/user-type.enum.mjs +0 -7
- package/esm2022/lib/user/user-view.component.mjs +0 -58
- package/esm2022/lib/user/user.model.mjs +0 -31
- package/esm2022/lib/user/user.module.mjs +0 -68
- package/esm2022/lib/user/user.routes.mjs +0 -30
- package/esm2022/lib/user/user.service.mjs +0 -42
- package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +0 -53
- package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +0 -20
- package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +0 -50
- package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +0 -24
- package/esm2022/lib/user-clients-list/user-tenant.service.mjs +0 -24
- package/esm2022/lib/user-config/index.mjs +0 -3
- package/esm2022/lib/user-config/user-config.model.mjs +0 -50
- package/esm2022/lib/user-config/user-config.service.mjs +0 -65
- package/esm2022/lib/user-menu/user-menu.component.mjs +0 -39
- package/esm2022/lib/user-menu/user-menu.module.mjs +0 -28
- package/esm2022/lib/user-selector/index.mjs +0 -3
- package/esm2022/lib/user-selector/user-data.service.mjs +0 -35
- package/esm2022/lib/user-selector/user-selector.component.mjs +0 -86
- package/esm2022/lib/user-selector/user-selector.module.mjs +0 -26
- package/esm2022/lib/utility/date-utils.service.mjs +0 -89
- package/esm2022/lib/utility/index.mjs +0 -3
- package/esm2022/lib/utility/num-items-selector.component.mjs +0 -31
- package/esm2022/lib/utility/utility.module.mjs +0 -22
- package/esm2022/lib/validators/date.validator.mjs +0 -31
- package/esm2022/ngx-techlify-core.mjs +0 -5
- package/esm2022/public-api.mjs +0 -232
- package/index.d.ts +0 -5
- package/lib/access-control-config/access-control-config-form/access-control-config-form.component.d.ts +0 -44
- package/lib/access-control-config/access-control-config-routing.module.d.ts +0 -7
- package/lib/access-control-config/access-control-config.component.d.ts +0 -30
- package/lib/access-control-config/access-control-config.model.d.ts +0 -17
- package/lib/access-control-config/access-control-config.module.d.ts +0 -10
- package/lib/access-control-config/access-control-config.service.d.ts +0 -15
- package/lib/action-popup/action-popup.component.d.ts +0 -17
- package/lib/action-popup/action-popup.model.d.ts +0 -5
- package/lib/action-popup/action-popup.module.d.ts +0 -9
- package/lib/action-popup/index.d.ts +0 -2
- package/lib/app-admin/admin-role/admin-role-list/admin-role-list-routing.module.d.ts +0 -7
- package/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.d.ts +0 -29
- package/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.d.ts +0 -11
- package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.d.ts +0 -28
- package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.d.ts +0 -8
- package/lib/app-admin/admin-role/admin-role.service.d.ts +0 -11
- package/lib/app-admin/app-admin-home/app-admin-home.component.d.ts +0 -5
- package/lib/app-admin/app-admin-routing.module.d.ts +0 -7
- package/lib/app-admin/app-admin.module.d.ts +0 -8
- package/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.d.ts +0 -13
- package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +0 -20
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +0 -11
- package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +0 -33
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +0 -10
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +0 -20
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +0 -9
- package/lib/audit-log/audit-log-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +0 -20
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +0 -9
- package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +0 -18
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +0 -9
- package/lib/audit-log/audit-log.module.d.ts +0 -10
- package/lib/audit-log/audit-log.service.d.ts +0 -8
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +0 -7
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +0 -12
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +0 -10
- package/lib/base-model/index.d.ts +0 -7
- package/lib/base-model/techlify-form/contract/techlify-form.contract.d.ts +0 -18
- package/lib/base-model/techlify-form/techlify-form.component.d.ts +0 -69
- package/lib/base-model/techlify-list/contract/techlify-list.contract.d.ts +0 -9
- package/lib/base-model/techlify-list/techlify-list.component.d.ts +0 -175
- package/lib/base-model/techlify-service.d.ts +0 -54
- package/lib/base-model/techlify-show/contract/techlify-show.contract.d.ts +0 -17
- package/lib/base-model/techlify-show/techlify-show.component.d.ts +0 -71
- package/lib/change-password/change-password-routing.module.d.ts +0 -7
- package/lib/change-password/change-password.component.d.ts +0 -27
- package/lib/change-password/change-password.module.d.ts +0 -10
- package/lib/column-selector/column-config.model.d.ts +0 -7
- package/lib/column-selector/column-selector/column-selector.component.d.ts +0 -27
- package/lib/column-selector/column-selector.module.d.ts +0 -8
- package/lib/column-selector/index.d.ts +0 -3
- package/lib/company-information/client.service.d.ts +0 -9
- package/lib/company-information/company-info-display/company-info-display.component.d.ts +0 -16
- package/lib/company-information/company-information/company-information.component.d.ts +0 -27
- package/lib/company-information/tenant-form-button/tenant-form-button.component.d.ts +0 -14
- package/lib/core/alert.service.d.ts +0 -15
- package/lib/core/api-prefix.interceptor.d.ts +0 -14
- package/lib/core/app-update.service.d.ts +0 -25
- package/lib/core/authentication.guard.d.ts +0 -13
- package/lib/core/authentication.service.d.ts +0 -28
- package/lib/core/cache.interceptor.d.ts +0 -24
- package/lib/core/config.service.d.ts +0 -22
- package/lib/core/core.module.d.ts +0 -10
- package/lib/core/credentials.service.d.ts +0 -39
- package/lib/core/environment.service.d.ts +0 -8
- package/lib/core/error-handler.interceptor.d.ts +0 -26
- package/lib/core/error-handler.service.d.ts +0 -19
- package/lib/core/filter.service.d.ts +0 -14
- package/lib/core/form-validator.service.d.ts +0 -11
- package/lib/core/header.interceptor.d.ts +0 -11
- package/lib/core/http-cache.service.d.ts +0 -57
- package/lib/core/http.service.d.ts +0 -59
- package/lib/core/index.d.ts +0 -22
- package/lib/core/logger.service.d.ts +0 -85
- package/lib/core/route-reusable-strategy.d.ts +0 -16
- package/lib/core/snack/snack.component.d.ts +0 -13
- package/lib/core/snack/snack.module.d.ts +0 -10
- package/lib/core/storage.service.d.ts +0 -18
- package/lib/core/techlify-config.model.d.ts +0 -18
- package/lib/core/token.interceptor.d.ts +0 -14
- package/lib/custom-icon/custom-icon-registry.service.d.ts +0 -10
- package/lib/custom-icon/custom-icon.component.d.ts +0 -11
- package/lib/custom-icon/custom-icon.module.d.ts +0 -8
- package/lib/custom-icon/custom-icons.registry.d.ts +0 -4
- package/lib/data-table/data-table.component.d.ts +0 -61
- package/lib/data-table/data-table.model.d.ts +0 -46
- package/lib/data-table/data-table.module.d.ts +0 -8
- package/lib/data-table/index.d.ts +0 -2
- package/lib/delete-button/techlify-delete-button.component.d.ts +0 -24
- package/lib/detail-layout/techlify-detail-layout.component.d.ts +0 -5
- package/lib/document-viewer/document-viewer.component.d.ts +0 -19
- package/lib/document-viewer/document-viewer.module.d.ts +0 -10
- package/lib/document-viewer/index.d.ts +0 -2
- package/lib/document-viewer/viewer-config.model.d.ts +0 -5
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +0 -12
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +0 -19
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +0 -9
- package/lib/email-subscription/email-subscription-for-user/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +0 -35
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +0 -10
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +0 -14
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +0 -32
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +0 -10
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +0 -8
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +0 -35
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +0 -10
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +0 -14
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +0 -34
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +0 -11
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +0 -16
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +0 -9
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +0 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +0 -7
- package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +0 -8
- package/lib/email-subscription/email-subscription.module.d.ts +0 -8
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +0 -42
- package/lib/entity-files/entity-file-list/entity-file-list.component.d.ts +0 -72
- package/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.d.ts +0 -9
- package/lib/entity-files/entity-file-list.module.d.ts +0 -13
- package/lib/entity-files/entity-file.service.d.ts +0 -11
- package/lib/entity-files/index.d.ts +0 -4
- package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +0 -21
- package/lib/export-excel/export-excel.module.d.ts +0 -10
- package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +0 -31
- package/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.d.ts +0 -8
- package/lib/file-dropper/file-dropper.component.d.ts +0 -36
- package/lib/file-dropper/file-dropper.model.d.ts +0 -10
- package/lib/file-dropper/file-dropper.module.d.ts +0 -9
- package/lib/file-dropper/index.d.ts +0 -2
- package/lib/file-upload-button/file-upload-button.component.d.ts +0 -20
- package/lib/forgot-password/forgot-password-routing.module.d.ts +0 -7
- package/lib/forgot-password/forgot-password.component.d.ts +0 -34
- package/lib/forgot-password/forgot-password.module.d.ts +0 -9
- package/lib/forgot-password/index.d.ts +0 -2
- package/lib/form-button/techlify-form-button.component.d.ts +0 -15
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.d.ts +0 -7
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.d.ts +0 -18
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +0 -9
- package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.d.ts +0 -10
- package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.d.ts +0 -10
- package/lib/form-configuration/form-configuration-form-field.service.d.ts +0 -8
- package/lib/form-configuration/form-configuration-form.service.d.ts +0 -8
- package/lib/form-configuration/form-configuration-utility.service.d.ts +0 -18
- package/lib/image-preview/image-preview.component.d.ts +0 -9
- package/lib/import-csv/data-import/data-import.component.d.ts +0 -9
- package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +0 -15
- package/lib/import-csv/field-mapping/field-mapping.component.d.ts +0 -37
- package/lib/import-csv/import-csv-config.d.ts +0 -18
- package/lib/import-csv/import-csv.component.d.ts +0 -38
- package/lib/import-csv/import-csv.module.d.ts +0 -14
- package/lib/import-csv/import-history-list/import-history-list.component.d.ts +0 -23
- package/lib/import-csv/import-success/import-success.component.d.ts +0 -11
- package/lib/ip-address-selector/ip-address-selector.module.d.ts +0 -8
- package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +0 -28
- package/lib/loader/index.d.ts +0 -1
- package/lib/loader/loader.component.d.ts +0 -11
- package/lib/loader/loader.module.d.ts +0 -9
- package/lib/local-date-parser.d.ts +0 -1
- package/lib/locked-date/index.d.ts +0 -5
- package/lib/locked-date/locked-date-form/locked-date-form.component.d.ts +0 -24
- package/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.d.ts +0 -13
- package/lib/locked-date/locked-date.model.d.ts +0 -10
- package/lib/locked-date/locked-date.module.d.ts +0 -10
- package/lib/locked-date/locked-date.service.d.ts +0 -11
- package/lib/locked-date/locked-dates-list/locked-date-list.component.d.ts +0 -19
- package/lib/login/index.d.ts +0 -2
- package/lib/login/login-form-fields/login-form-fields.component.d.ts +0 -41
- package/lib/login/login-routing.module.d.ts +0 -7
- package/lib/login/login.component.d.ts +0 -36
- package/lib/login/login.module.d.ts +0 -10
- package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +0 -7
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +0 -25
- package/lib/login-history-for-user/login-history-for-user.module.d.ts +0 -9
- package/lib/material.module.d.ts +0 -30
- package/lib/ngx-techlify-users/ngx-techlify-users-routing.module.d.ts +0 -7
- package/lib/ngx-techlify-users/ngx-techlify-users.module.d.ts +0 -8
- package/lib/note/comment-form/comment-form.component.d.ts +0 -25
- package/lib/note/index.d.ts +0 -4
- package/lib/note/note-comment-list/note-comment-list.component.d.ts +0 -33
- package/lib/note/note-form/note-form.component.d.ts +0 -29
- package/lib/note/note-list/note-list.component.d.ts +0 -30
- package/lib/note/note.module.d.ts +0 -9
- package/lib/note/note.service.d.ts +0 -8
- package/lib/number-input-button/index.d.ts +0 -2
- package/lib/number-input-button/number-input-button/number-input-button.component.d.ts +0 -32
- package/lib/number-input-button/number-input-button.module.d.ts +0 -8
- package/lib/number-selector/number-selector.component.d.ts +0 -44
- package/lib/ordinal-pipe/ordinal-pipe.d.ts +0 -7
- package/lib/password-requirement-check/password-check-result.d.ts +0 -7
- package/lib/password-requirement-check/password-check.service.d.ts +0 -15
- package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +0 -23
- package/lib/password-requirement-check/password-requirement-check.module.d.ts +0 -8
- package/lib/pdf-button/pdf-button.component.d.ts +0 -11
- package/lib/pdf-button/pdf-button.module.d.ts +0 -8
- package/lib/phone-number-selector/country.service.d.ts +0 -12
- package/lib/phone-number-selector/phone-number-selector.component.d.ts +0 -47
- package/lib/pipes/file-size.pipe.d.ts +0 -7
- package/lib/pipes/wrap.pipe.d.ts +0 -7
- package/lib/profile/index.d.ts +0 -2
- package/lib/profile/profile-edit.component.d.ts +0 -33
- package/lib/profile/profile-routing.module.d.ts +0 -7
- package/lib/profile/profile.module.d.ts +0 -9
- package/lib/read-more/read-more.component.d.ts +0 -15
- package/lib/read-more/read-more.module.d.ts +0 -9
- package/lib/request-helper/request-helper.service.d.ts +0 -59
- package/lib/reset-password/index.d.ts +0 -3
- package/lib/reset-password/reset-password-routing.module.d.ts +0 -7
- package/lib/reset-password/reset-password.component.d.ts +0 -28
- package/lib/reset-password/reset-password.module.d.ts +0 -10
- package/lib/reset-password/reset-password.service.d.ts +0 -11
- package/lib/restrictors/index.d.ts +0 -3
- package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +0 -34
- package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +0 -8
- package/lib/restrictors/restrictor-level-selector/restrictor-level.service.d.ts +0 -9
- package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +0 -34
- package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +0 -8
- package/lib/restrictors/restrictor-status-selector/restrictor-status.service.d.ts +0 -9
- package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +0 -34
- package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +0 -8
- package/lib/restrictors/restrictor-type-selector/restrictor-type.service.d.ts +0 -9
- package/lib/restrictors/restrictor.service.d.ts +0 -9
- package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +0 -30
- package/lib/restrictors/restrictors-form-page/restrictors-form-page.component.d.ts +0 -21
- package/lib/restrictors/restrictors-list-page/restrictors-list-page.component.d.ts +0 -50
- package/lib/restrictors/restrictors-routing.module.d.ts +0 -7
- package/lib/restrictors/restrictors.module.d.ts +0 -15
- package/lib/role/index.d.ts +0 -9
- package/lib/role/permission/permission.model.d.ts +0 -11
- package/lib/role/permission/permission.module.d.ts +0 -9
- package/lib/role/permission/permission.routes.d.ts +0 -7
- package/lib/role/permission/permissions-management.component.d.ts +0 -41
- package/lib/role/role-form-button.component.d.ts +0 -16
- package/lib/role/role-form.component.d.ts +0 -32
- package/lib/role/role-list/role-list.component.d.ts +0 -33
- package/lib/role/role-view/role-view-routing.module.d.ts +0 -7
- package/lib/role/role-view/role-view.component.d.ts +0 -16
- package/lib/role/role-view/role-view.module.d.ts +0 -9
- package/lib/role/role.model.d.ts +0 -29
- package/lib/role/role.module.d.ts +0 -11
- package/lib/role/role.routes.d.ts +0 -7
- package/lib/role/role.service.d.ts +0 -10
- package/lib/searchable-selector/index.d.ts +0 -1
- package/lib/searchable-selector/searchable-selector.component.d.ts +0 -95
- package/lib/searchable-selector/searchable-selector.module.d.ts +0 -11
- package/lib/shared.module.d.ts +0 -22
- package/lib/signup/index.d.ts +0 -2
- package/lib/signup/signup-routing.module.d.ts +0 -7
- package/lib/signup/signup.component.d.ts +0 -29
- package/lib/signup/signup.module.d.ts +0 -9
- package/lib/subscription/subscription-form/subscription-form-routing.module.d.ts +0 -7
- package/lib/subscription/subscription-form/subscription-form.component.d.ts +0 -31
- package/lib/subscription/subscription-form/subscription-form.module.d.ts +0 -9
- package/lib/subscription/subscription-listing/subscription-listing-routing.module.d.ts +0 -7
- package/lib/subscription/subscription-listing/subscription-listing.component.d.ts +0 -25
- package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +0 -10
- package/lib/subscription/subscription-package-listing/subscription-package-listing-routing.module.d.ts +0 -7
- package/lib/subscription/subscription-package-listing/subscription-package-listing.component.d.ts +0 -28
- package/lib/subscription/subscription-package-listing/subscription-package-listing.module.d.ts +0 -9
- package/lib/subscription/subscription-package-view/subscription-package-view-routing.module.d.ts +0 -7
- package/lib/subscription/subscription-package-view/subscription-package-view.component.d.ts +0 -15
- package/lib/subscription/subscription-package-view/subscription-package-view.module.d.ts +0 -10
- package/lib/subscription/subscription-package.service.d.ts +0 -9
- package/lib/subscription/subscription-status.enum.d.ts +0 -4
- package/lib/subscription/subscription.service.d.ts +0 -12
- package/lib/subscription/techlify-subscription-directive.module.d.ts +0 -8
- package/lib/subscription/techlify-subscription.directive.d.ts +0 -14
- package/lib/tag/tag.service.d.ts +0 -8
- package/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.d.ts +0 -22
- package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +0 -12
- package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +0 -74
- package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +0 -8
- package/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.d.ts +0 -15
- package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +0 -61
- package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +0 -8
- package/lib/techlify-app-selector/techlify-app-selector.component.d.ts +0 -13
- package/lib/techlify-app-selector/techlify-app-selector.module.d.ts +0 -10
- package/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.d.ts +0 -50
- package/lib/techlify-company-switcher/index.d.ts +0 -2
- package/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.d.ts +0 -28
- package/lib/techlify-company-switcher/techlify-company-switcher.module.d.ts +0 -10
- package/lib/techlify-currency-pipe/techlify-currency-pipe.directive.d.ts +0 -8
- package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +0 -12
- package/lib/techlify-feature/techlify-feature-directive.module.d.ts +0 -8
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +0 -13
- package/lib/techlify-feature/techlify-feature-listing.component.d.ts +0 -32
- package/lib/techlify-feature/techlify-feature.module.d.ts +0 -11
- package/lib/techlify-feature/techlify-feature.routing.d.ts +0 -2
- package/lib/techlify-feature/techlify-feature.service.d.ts +0 -13
- package/lib/techlify-icon/techlify-icon.component.d.ts +0 -12
- package/lib/techlify-icon/techlify-icon.module.d.ts +0 -9
- package/lib/techlify-notifications/index.d.ts +0 -5
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +0 -17
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.d.ts +0 -9
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.d.ts +0 -8
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.d.ts +0 -8
- package/lib/techlify-notifications/techlify-notification-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification.module.d.ts +0 -8
- package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +0 -33
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +0 -9
- package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +0 -7
- package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +0 -34
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +0 -9
- package/lib/techlify-update/techlify-update-routing.module.d.ts +0 -7
- package/lib/techlify-update/techlify-update.module.d.ts +0 -10
- package/lib/techlify-update/techlify-update.service.d.ts +0 -16
- package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +0 -33
- package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.d.ts +0 -20
- package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.d.ts +0 -8
- package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +0 -28
- package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +0 -19
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +0 -10
- package/lib/techlify-update/update-view/update-view.component.d.ts +0 -17
- package/lib/techlify-update/update-view/update-view.module.d.ts +0 -8
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.d.ts +0 -23
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +0 -9
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.d.ts +0 -8
- package/lib/techlify-view/techlify-view-form/techlify-view-form.component.d.ts +0 -30
- package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +0 -8
- package/lib/techlify-view/techlify-view.service.d.ts +0 -8
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.d.ts +0 -7
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.d.ts +0 -17
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +0 -10
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.d.ts +0 -7
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.d.ts +0 -24
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +0 -9
- package/lib/timeline-activity/timeline-activity.service.d.ts +0 -8
- package/lib/timeline-filter/calculate-timeline.d.ts +0 -6
- package/lib/timeline-filter/index.d.ts +0 -3
- package/lib/timeline-filter/timeline-filter-routing.module.d.ts +0 -7
- package/lib/timeline-filter/timeline-filter.component.d.ts +0 -75
- package/lib/timeline-filter/timeline-filter.module.d.ts +0 -18
- package/lib/timeline-filter/timeline.model.d.ts +0 -17
- package/lib/user/app-admin-user-list/app-admin-user-list.component.d.ts +0 -40
- package/lib/user/app-admin-user-view/app-admin-user-view.component.d.ts +0 -26
- package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +0 -13
- package/lib/user/app-admin-user-view/app-admin-user-view.routes.d.ts +0 -7
- package/lib/user/current-user.service.d.ts +0 -75
- package/lib/user/index.d.ts +0 -13
- package/lib/user/user-enable-button-component/user-enable-button.component.d.ts +0 -23
- package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +0 -8
- package/lib/user/user-explore.component.d.ts +0 -26
- package/lib/user/user-form/user-form.component.d.ts +0 -43
- package/lib/user/user-list/user-list.component.d.ts +0 -38
- package/lib/user/user-sessions/user-session.service.d.ts +0 -8
- package/lib/user/user-sessions/user-sessions/user-sessions.component.d.ts +0 -15
- package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +0 -8
- package/lib/user/user-type.enum.d.ts +0 -5
- package/lib/user/user-view.component.d.ts +0 -32
- package/lib/user/user.model.d.ts +0 -30
- package/lib/user/user.module.d.ts +0 -16
- package/lib/user/user.routes.d.ts +0 -7
- package/lib/user/user.service.d.ts +0 -15
- package/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.d.ts +0 -22
- package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +0 -8
- package/lib/user-clients-list/user-clients-list.component.d.ts +0 -15
- package/lib/user-clients-list/user-clients-list.module.d.ts +0 -9
- package/lib/user-clients-list/user-tenant.service.d.ts +0 -11
- package/lib/user-config/index.d.ts +0 -2
- package/lib/user-config/user-config.model.d.ts +0 -50
- package/lib/user-config/user-config.service.d.ts +0 -14
- package/lib/user-menu/user-menu.component.d.ts +0 -17
- package/lib/user-menu/user-menu.module.d.ts +0 -13
- package/lib/user-selector/index.d.ts +0 -2
- package/lib/user-selector/user-data.service.d.ts +0 -16
- package/lib/user-selector/user-selector.component.d.ts +0 -28
- package/lib/user-selector/user-selector.module.d.ts +0 -8
- package/lib/utility/date-utils.service.d.ts +0 -38
- package/lib/utility/index.d.ts +0 -2
- package/lib/utility/num-items-selector.component.d.ts +0 -19
- package/lib/utility/utility.module.d.ts +0 -8
- package/lib/validators/date.validator.d.ts +0 -6
- package/public-api.d.ts +0 -212
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { RouterModule } from '@angular/router';
|
|
4
|
-
import { finalize } from 'rxjs/operators';
|
|
5
|
-
import { UntilDestroy } from '@ngneat/until-destroy';
|
|
6
|
-
import { UserFormComponent } from '../user-form/user-form.component';
|
|
7
|
-
import { TechlifyListComponent } from '../../base-model';
|
|
8
|
-
import { SharedModule } from '../../shared.module';
|
|
9
|
-
import { UserEnableButtonModule } from '../user-enable-button-component/user-enable-button.module';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../../core";
|
|
12
|
-
import * as i2 from "../current-user.service";
|
|
13
|
-
import * as i3 from "../../user-config";
|
|
14
|
-
import * as i4 from "../user.service";
|
|
15
|
-
import * as i5 from "@angular/forms";
|
|
16
|
-
import * as i6 from "@angular/common";
|
|
17
|
-
import * as i7 from "ngx-infinite-scroll";
|
|
18
|
-
import * as i8 from "@angular/material/button";
|
|
19
|
-
import * as i9 from "@angular/material/form-field";
|
|
20
|
-
import * as i10 from "@angular/material/icon";
|
|
21
|
-
import * as i11 from "@angular/material/input";
|
|
22
|
-
import * as i12 from "@angular/material/sort";
|
|
23
|
-
import * as i13 from "@angular/material/table";
|
|
24
|
-
import * as i14 from "@angular/material/card";
|
|
25
|
-
import * as i15 from "@angular/material/tooltip";
|
|
26
|
-
import * as i16 from "@angular/material/button-toggle";
|
|
27
|
-
import * as i17 from "@angular/material/progress-bar";
|
|
28
|
-
import * as i18 from "../../searchable-selector/searchable-selector.component";
|
|
29
|
-
import * as i19 from "../../delete-button/techlify-delete-button.component";
|
|
30
|
-
import * as i20 from "../../form-button/techlify-form-button.component";
|
|
31
|
-
import * as i21 from "../../techlify-icon/techlify-icon.component";
|
|
32
|
-
import * as i22 from "@angular/router";
|
|
33
|
-
import * as i23 from "../user-enable-button-component/user-enable-button.component";
|
|
34
|
-
let AppAdminUserList = class AppAdminUserList extends TechlifyListComponent {
|
|
35
|
-
constructor(alertService, currentUserService, userConfigService, service, fb) {
|
|
36
|
-
super();
|
|
37
|
-
this.alertService = alertService;
|
|
38
|
-
this.currentUserService = currentUserService;
|
|
39
|
-
this.userConfigService = userConfigService;
|
|
40
|
-
this.service = service;
|
|
41
|
-
this.fb = fb;
|
|
42
|
-
this.userTypeIds = [];
|
|
43
|
-
this.title = 'User Management';
|
|
44
|
-
this.displayedColumns = [
|
|
45
|
-
'index',
|
|
46
|
-
'name',
|
|
47
|
-
'email',
|
|
48
|
-
'type',
|
|
49
|
-
'roles',
|
|
50
|
-
'last_login',
|
|
51
|
-
'added_by',
|
|
52
|
-
'actions'
|
|
53
|
-
];
|
|
54
|
-
this.scrollContainer = '.mat-sidenav-content';
|
|
55
|
-
this.models = [];
|
|
56
|
-
this.userFormComponent = UserFormComponent;
|
|
57
|
-
this.config = this.userConfigService.getConfig();
|
|
58
|
-
this.filterFormConfiguration = {
|
|
59
|
-
role_ids: { multiple: true },
|
|
60
|
-
status: { multiple: true },
|
|
61
|
-
user_type_ids: { multiple: true }
|
|
62
|
-
};
|
|
63
|
-
if (this.config?.scrollContainer) {
|
|
64
|
-
// Set to null if scroll has to be done from root
|
|
65
|
-
this.scrollContainer = this.config?.scrollContainer === 'root' ? null : this.config?.scrollContainer;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
ngOnInit() {
|
|
69
|
-
//Initialize form in OnInit.
|
|
70
|
-
//On constructor Input() variables will be null, that will introduce a issue for admin view
|
|
71
|
-
this.filterForm = this.fb.group({
|
|
72
|
-
search: [''],
|
|
73
|
-
role_ids: [''],
|
|
74
|
-
status: ['enabled'],
|
|
75
|
-
sort_by: ['id|ASC'],
|
|
76
|
-
relations: ['roles,type,userClients.type,creator,userClient'],
|
|
77
|
-
appends: ['last_login'],
|
|
78
|
-
client_id: [this.clientId],
|
|
79
|
-
user_type_ids: this.userTypeIds.toString()
|
|
80
|
-
});
|
|
81
|
-
this.currentUser = this.currentUserService.getUser();
|
|
82
|
-
this.patchFiltersFromRoute();
|
|
83
|
-
this.listenFilterChanges();
|
|
84
|
-
this.loadData();
|
|
85
|
-
}
|
|
86
|
-
getUserViewRoute(user) {
|
|
87
|
-
return `${user.id}/app-admin-view`;
|
|
88
|
-
}
|
|
89
|
-
loadData() {
|
|
90
|
-
this.isWorking = true;
|
|
91
|
-
const clientId = this.clientId ?? this.currentUser?.client_id;
|
|
92
|
-
const params = {
|
|
93
|
-
...this.filterForm.value,
|
|
94
|
-
status: this.filterForm.value.status ? this.filterForm.value.status.toString() : '',
|
|
95
|
-
page: this.page,
|
|
96
|
-
role_ids: this.filterForm?.value?.role_ids?.toString(),
|
|
97
|
-
user_type_ids: this.filterForm?.value?.user_type_ids?.toString()
|
|
98
|
-
};
|
|
99
|
-
this.service.index(params).subscribe({
|
|
100
|
-
next: (result) => {
|
|
101
|
-
this.isWorking = false;
|
|
102
|
-
this.models = this.models.concat(result?.data);
|
|
103
|
-
this.lastPage = result?.last_page;
|
|
104
|
-
this.models.forEach((userData) => {
|
|
105
|
-
const client = (userData?.user_clients || [])
|
|
106
|
-
.find((userClient) => userClient.client_id === clientId && userClient.user_id === userData.id);
|
|
107
|
-
if (client) {
|
|
108
|
-
userData.user_type_id = client.user_type_id;
|
|
109
|
-
userData.client_id = client.client_id;
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
},
|
|
113
|
-
error: () => this.isWorking = false
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get the user type for the current client.
|
|
118
|
-
*
|
|
119
|
-
* @param user User
|
|
120
|
-
*/
|
|
121
|
-
getUserType(user) {
|
|
122
|
-
let userClient;
|
|
123
|
-
if (!!this.clientId) {
|
|
124
|
-
userClient = (user?.user_clients).find((item) => item?.client_id === this.clientId);
|
|
125
|
-
}
|
|
126
|
-
return userClient?.type?.title || '';
|
|
127
|
-
}
|
|
128
|
-
resetPassword(user) {
|
|
129
|
-
this.isWorking = true;
|
|
130
|
-
this.service.resetPassword(user)
|
|
131
|
-
.pipe(finalize(() => this.isWorking = false))
|
|
132
|
-
.subscribe(_ => this.alertService.addAlert('Password reset email sent', 'success'));
|
|
133
|
-
}
|
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserList, deps: [{ token: i1.AlertService }, { token: i2.CurrentUserService }, { token: i3.UserConfigService }, { token: i4.UserService }, { token: i5.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppAdminUserList, isStandalone: true, selector: "app-admin-user-list", inputs: { clientId: "clientId", userTypeIds: "userTypeIds", title: "title" }, usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{'m-4':config?.userConfig?.showDefaultMargin}\">\n <mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <section class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\"> {{ title }} </h5>\n <app-techlify-form-button [component]=\"userFormComponent\" matTooltip=\"New User\"\n [data]=\"{client_id: clientId ?? currentUser?.client_id}\"\n *ngIf=\"config?.userConfig?.showAddUser && currentUserService?.hasPermission('user_create')\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../import']\"\n *ngIf=\"config?.userConfig?.showImportButton && currentUserService?.hasPermission('user_create')\">\n Import User\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../roles']\" *ngIf=\"config?.userConfig?.showRoles\">\n <mat-icon>people</mat-icon>\n Roles\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"config?.userConfig?.showPermissions\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../configurations']\"\n *ngIf=\"config?.userConfig?.showConfigurations && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n toggle_on\n </span>\n </mat-icon>\n Configurations\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../restrictors']\"\n *ngIf=\"config?.userConfig?.showRestrictors && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n vpn_lock\n </span>\n </mat-icon>\n Restrictors\n </button>\n </section>\n <form [formGroup]=\"filterForm\" class=\"d-flex flex-row justify-content-center align-items-center gap-2\">\n <mat-form-field appearance=\"outline\" class='fl-md'>\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" matInput type=\"text\" name=\"search\" placeholder=\"Search by name, email\"\n formControlName=\"search\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class='fl-sm'>\n <mat-label>Role</mat-label>\n <app-searchable-selector apiUrl=\"api/roles\" [multiple]=\"true\" formControlName=\"role_ids\"\n titleField=\"label\"></app-searchable-selector>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class='fl-sm'>\n <mat-label>User Type</mat-label>\n <app-searchable-selector apiUrl=\"api/user-types\" [multiple]=\"true\" formControlName=\"user_type_ids\"\n titleField=\"title\"></app-searchable-selector>\n </mat-form-field>\n <mat-button-toggle-group class='mb-4' [hideSingleSelectionIndicator]=\"true\"\n [hideMultipleSelectionIndicator]=\"true\" formControlName=\"status\" multiple>\n <mat-button-toggle value=\"enabled\">Enabled</mat-button-toggle>\n <mat-button-toggle value=\"disabled\">Disabled</mat-button-toggle>\n </mat-button-toggle-group>\n </form>\n </mat-card-content>\n </mat-card>\n <mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Users\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\" matSort (matSortChange)=\"sortColumn($event)\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell mat-sort-header=\"name\" *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"[element?.id]\" class=\"text-decoration-none\">\n {{ element.name }}\n </a>\n <p class=\"mb-0 text-secondary\">\n <!-- !element?.user_client condition added to check if user has user_client record -->\n {{ !element?.user_client ? '' : element?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Email Column -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell mat-sort-header=\"email\" *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell mat-sort-header=\"user_type_id\" *matHeaderCellDef> User Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ getUserType(element) }} </td>\n </ng-container>\n\n <!-- Roles Column -->\n <ng-container matColumnDef=\"roles\">\n <th mat-header-cell *matHeaderCellDef> Role </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-1 flex-wrap text-light\">\n <span *ngFor=\"let role of element?.roles\" class=\"badge bg-secondary\">\n {{ role?.label }}\n </span>\n </div>\n </td>\n </ng-container>\n\n <!-- Last Login Column -->\n <ng-container matColumnDef=\"last_login\">\n <th mat-header-cell *matHeaderCellDef> Last Login </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.last_login | date:'medium' }}</td>\n </ng-container>\n\n <!-- Added By Column -->\n <ng-container matColumnDef=\"added_by\">\n <th mat-header-cell *matHeaderCellDef> Added By </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.creator?.name }}</p>\n <p class=\"text-secondary\">{{ element?.created_at | date }}</p>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row justify-content-start align-items-center gap-2 text-secondary\">\n <app-techlify-icon role='button' name=\"view\" class=\"clickable\" [routerLink]=\"[getUserViewRoute(element)]\"\n matTooltip=\"View\"></app-techlify-icon>\n\n <app-techlify-form-button [component]=\"userFormComponent\" [model]=\"element\" class=\"clickable\"\n [data]=\"{client_id: clientId ?? currentUser?.client_id}\" matTooltip=\"Edit\"\n *ngIf=\"currentUserService.hasPermission('user_update')\"\n (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n\n <app-techlify-delete-button\n *ngIf=\"currentUserService.hasPermission('user_delete') && element?.id !== currentUser?.id\"\n [model]=\"element\" [service]=\"service\" [data]=\"{title: element?.name, type: 'user'}\"\n (deleted)=\"modelsDeletedById(element)\"></app-techlify-delete-button>\n\n <app-techlify-icon role='button'\n *ngIf=\"currentUserService.hasPermission('techlify_rbac.user.reset_password')\" name=\"reset\"\n class=\"clickable\" (click)=\"resetPassword(element)\" matTooltip=\"Reset User Password\"></app-techlify-icon>\n\n <app-user-enable-button [user]=\"element\" (onSave)=\"modelsUpdatedById($event)\"></app-user-enable-button>\n </div>\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 <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "ngmodule", type: SharedModule }, { 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: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { 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: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.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: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i14.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i16.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i16.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i17.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i18.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange", "isItemsEmpty"] }, { kind: "component", type: i19.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted", "loading"] }, { kind: "component", type: i20.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i21.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i22.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: UserEnableButtonModule }, { kind: "component", type: i23.UserEnableButtonComponent, selector: "app-user-enable-button", inputs: ["user", "isUseIcons"], outputs: ["onSave"] }] }); }
|
|
136
|
-
};
|
|
137
|
-
AppAdminUserList = __decorate([
|
|
138
|
-
UntilDestroy()
|
|
139
|
-
], AppAdminUserList);
|
|
140
|
-
export { AppAdminUserList };
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserList, decorators: [{
|
|
142
|
-
type: Component,
|
|
143
|
-
args: [{ selector: 'app-admin-user-list', standalone: true, imports: [
|
|
144
|
-
SharedModule,
|
|
145
|
-
RouterModule,
|
|
146
|
-
UserEnableButtonModule
|
|
147
|
-
], template: "<div [ngClass]=\"{'m-4':config?.userConfig?.showDefaultMargin}\">\n <mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <section class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\"> {{ title }} </h5>\n <app-techlify-form-button [component]=\"userFormComponent\" matTooltip=\"New User\"\n [data]=\"{client_id: clientId ?? currentUser?.client_id}\"\n *ngIf=\"config?.userConfig?.showAddUser && currentUserService?.hasPermission('user_create')\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../import']\"\n *ngIf=\"config?.userConfig?.showImportButton && currentUserService?.hasPermission('user_create')\">\n Import User\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../roles']\" *ngIf=\"config?.userConfig?.showRoles\">\n <mat-icon>people</mat-icon>\n Roles\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"config?.userConfig?.showPermissions\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../configurations']\"\n *ngIf=\"config?.userConfig?.showConfigurations && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n toggle_on\n </span>\n </mat-icon>\n Configurations\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../restrictors']\"\n *ngIf=\"config?.userConfig?.showRestrictors && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n vpn_lock\n </span>\n </mat-icon>\n Restrictors\n </button>\n </section>\n <form [formGroup]=\"filterForm\" class=\"d-flex flex-row justify-content-center align-items-center gap-2\">\n <mat-form-field appearance=\"outline\" class='fl-md'>\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" matInput type=\"text\" name=\"search\" placeholder=\"Search by name, email\"\n formControlName=\"search\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class='fl-sm'>\n <mat-label>Role</mat-label>\n <app-searchable-selector apiUrl=\"api/roles\" [multiple]=\"true\" formControlName=\"role_ids\"\n titleField=\"label\"></app-searchable-selector>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class='fl-sm'>\n <mat-label>User Type</mat-label>\n <app-searchable-selector apiUrl=\"api/user-types\" [multiple]=\"true\" formControlName=\"user_type_ids\"\n titleField=\"title\"></app-searchable-selector>\n </mat-form-field>\n <mat-button-toggle-group class='mb-4' [hideSingleSelectionIndicator]=\"true\"\n [hideMultipleSelectionIndicator]=\"true\" formControlName=\"status\" multiple>\n <mat-button-toggle value=\"enabled\">Enabled</mat-button-toggle>\n <mat-button-toggle value=\"disabled\">Disabled</mat-button-toggle>\n </mat-button-toggle-group>\n </form>\n </mat-card-content>\n </mat-card>\n <mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Users\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\" matSort (matSortChange)=\"sortColumn($event)\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell mat-sort-header=\"name\" *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"[element?.id]\" class=\"text-decoration-none\">\n {{ element.name }}\n </a>\n <p class=\"mb-0 text-secondary\">\n <!-- !element?.user_client condition added to check if user has user_client record -->\n {{ !element?.user_client ? '' : element?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Email Column -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell mat-sort-header=\"email\" *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell mat-sort-header=\"user_type_id\" *matHeaderCellDef> User Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ getUserType(element) }} </td>\n </ng-container>\n\n <!-- Roles Column -->\n <ng-container matColumnDef=\"roles\">\n <th mat-header-cell *matHeaderCellDef> Role </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-1 flex-wrap text-light\">\n <span *ngFor=\"let role of element?.roles\" class=\"badge bg-secondary\">\n {{ role?.label }}\n </span>\n </div>\n </td>\n </ng-container>\n\n <!-- Last Login Column -->\n <ng-container matColumnDef=\"last_login\">\n <th mat-header-cell *matHeaderCellDef> Last Login </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.last_login | date:'medium' }}</td>\n </ng-container>\n\n <!-- Added By Column -->\n <ng-container matColumnDef=\"added_by\">\n <th mat-header-cell *matHeaderCellDef> Added By </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.creator?.name }}</p>\n <p class=\"text-secondary\">{{ element?.created_at | date }}</p>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row justify-content-start align-items-center gap-2 text-secondary\">\n <app-techlify-icon role='button' name=\"view\" class=\"clickable\" [routerLink]=\"[getUserViewRoute(element)]\"\n matTooltip=\"View\"></app-techlify-icon>\n\n <app-techlify-form-button [component]=\"userFormComponent\" [model]=\"element\" class=\"clickable\"\n [data]=\"{client_id: clientId ?? currentUser?.client_id}\" matTooltip=\"Edit\"\n *ngIf=\"currentUserService.hasPermission('user_update')\"\n (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n\n <app-techlify-delete-button\n *ngIf=\"currentUserService.hasPermission('user_delete') && element?.id !== currentUser?.id\"\n [model]=\"element\" [service]=\"service\" [data]=\"{title: element?.name, type: 'user'}\"\n (deleted)=\"modelsDeletedById(element)\"></app-techlify-delete-button>\n\n <app-techlify-icon role='button'\n *ngIf=\"currentUserService.hasPermission('techlify_rbac.user.reset_password')\" name=\"reset\"\n class=\"clickable\" (click)=\"resetPassword(element)\" matTooltip=\"Reset User Password\"></app-techlify-icon>\n\n <app-user-enable-button [user]=\"element\" (onSave)=\"modelsUpdatedById($event)\"></app-user-enable-button>\n </div>\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 <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>" }]
|
|
148
|
-
}], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.CurrentUserService }, { type: i3.UserConfigService }, { type: i4.UserService }, { type: i5.UntypedFormBuilder }], propDecorators: { clientId: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], userTypeIds: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], title: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkbWluLXVzZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvYXBwLWFkbWluLXVzZXItbGlzdC9hcHAtYWRtaW4tdXNlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci9hcHAtYWRtaW4tdXNlci1saXN0L2FwcC1hZG1pbi11c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXJFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWE1RixJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLHFCQUFxQjtJQXlCekQsWUFDVSxZQUEwQixFQUMzQixrQkFBc0MsRUFDdEMsaUJBQW9DLEVBQ3hCLE9BQW9CLEVBQy9CLEVBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBTkEsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsdUJBQWtCLEdBQWxCLGtC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Q0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixVQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBbUIsQ0FBQSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLFNBQVMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakcsQ0FBQztRQUNELE9BQU8sVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7YUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQzsrR0F4SFUsZ0JBQWdCO21HQUFoQixnQkFBZ0Isb0xDM0I3Qix5MVFBa0tNLDJDRDVJRixZQUFZLHN3TUFDWixZQUFZLGdSQUNaLHNCQUFzQjs7QUFHYixnQkFBZ0I7SUFYNUIsWUFBWSxFQUFFO0dBV0YsZ0JBQWdCLENBeUg1Qjs7NEZBekhZLGdCQUFnQjtrQkFWNUIsU0FBUzsrQkFDRSxxQkFBcUIsY0FFbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixzQkFBc0I7cUJBQ3ZCOzZNQUtRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBDdXJyZW50VXNlclNlcnZpY2UgfSBmcm9tICcuLi9jdXJyZW50LXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItZm9ybS91c2VyLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpVXNlckNvbmZpZywgVXNlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFVzZXJUeXBlRW51bSB9IGZyb20gJy4uL3VzZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBVc2VyRW5hYmxlQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vdXNlci1lbmFibGUtYnV0dG9uLWNvbXBvbmVudC91c2VyLWVuYWJsZS1idXR0b24ubW9kdWxlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWRtaW4tdXNlci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1hZG1pbi11c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBVc2VyRW5hYmxlQnV0dG9uTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwQWRtaW5Vc2VyTGlzdCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8gRm9yIGFkbWluIHBhZ2Ugd2UgbmVlZCB0byBwYXNzIHRoZSBjbGllbnQgSWRcbiAgQElucHV0KCkgY2xpZW50SWQ6IG51bWJlcjtcbiAgQElucHV0KCkgdXNlclR5cGVJZHM6IG51bWJlcltdID0gW107XG5cbiAgY3VycmVudFVzZXI6IFVzZXI7XG4gIGNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuICB1c2VyOiBVc2VyO1xuICBASW5wdXQoKSB0aXRsZSA9ICdVc2VyIE1hbmFnZW1lbnQnO1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnaW5kZXgnLFxuICAgICduYW1lJyxcbiAgICAnZW1haWwnLFxuICAgICd0eXBlJyxcbiAgICAncm9sZXMnLFxuICAgICdsYXN0X2xvZ2luJyxcbiAgICAnYWRkZWRfYnknLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuXG4gIHNjcm9sbENvbnRhaW5lciA9ICcubWF0LXNpZGVuYXYtY29udGVudCc7XG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgdXNlckZvcm1Db21wb25lbnQgPSBVc2VyRm9ybUNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgdXNlckNvbmZpZ1NlcnZpY2U6IFVzZXJDb25maWdTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuXG4gICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIHJvbGVfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgICBzdGF0dXM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICAgIHVzZXJfdHlwZV9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jb25maWc/LnNjcm9sbENvbnRhaW5lcikge1xuICAgICAgLy8gU2V0IHRvIG51bGwgaWYgc2Nyb2xsIGhhcyB0byBiZSBkb25lIGZyb20gcm9vdFxuICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIgPSB0aGlzLmNvbmZpZz8uc2Nyb2xsQ29udGFpbmVyID09PSAncm9vdCcgPyBudWxsIDogdGhpcy5jb25maWc/LnNjcm9sbENvbnRhaW5lcjtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvL0luaXRpYWxpemUgZm9ybSBpbiBPbkluaXQuXG4gICAgLy9PbiBjb25zdHJ1Y3RvciBJbnB1dCgpIHZhcmlhYmxlcyB3aWxsIGJlIG51bGwsIHRoYXQgd2lsbCBpbnRyb2R1Y2UgYSBpc3N1ZSBmb3IgYWRtaW4gdmlld1xuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc2VhcmNoOiBbJyddLFxuICAgICAgcm9sZV9pZHM6IFsnJ10sXG4gICAgICBzdGF0dXM6IFsnZW5hYmxlZCddLFxuICAgICAgc29ydF9ieTogWydpZHxBU0MnXSxcbiAgICAgIHJlbGF0aW9uczogWydyb2xlcyx0eXBlLHVzZXJDbGllbnRzLnR5cGUsY3JlYXRvcix1c2VyQ2xpZW50J10sXG4gICAgICBhcHBlbmRzOiBbJ2xhc3RfbG9naW4nXSxcbiAgICAgIGNsaWVudF9pZDogW3RoaXMuY2xpZW50SWRdLFxuICAgICAgdXNlcl90eXBlX2lkczogdGhpcy51c2VyVHlwZUlkcy50b1N0cmluZygpXG4gICAgfSk7XG5cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlcigpO1xuXG4gICAgdGhpcy5wYXRjaEZpbHRlcnNGcm9tUm91dGUoKTtcbiAgICB0aGlzLmxpc3RlbkZpbHRlckNoYW5nZXMoKTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBnZXRVc2VyVmlld1JvdXRlKHVzZXI6IGFueSkge1xuICAgIHJldHVybiBgJHt1c2VyLmlkfS9hcHAtYWRtaW4tdmlld2A7XG4gIH1cblxuICBvdmVycmlkZSBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgY29uc3QgY2xpZW50SWQgPSB0aGlzLmNsaWVudElkID8/IHRoaXMuY3VycmVudFVzZXI/LmNsaWVudF9pZDtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAuLi50aGlzLmZpbHRlckZvcm0udmFsdWUsXG4gICAgICBzdGF0dXM6IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgPyB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzLnRvU3RyaW5nKCkgOiAnJyxcbiAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgIHJvbGVfaWRzOiB0aGlzLmZpbHRlckZvcm0/LnZhbHVlPy5yb2xlX2lkcz8udG9TdHJpbmcoKSxcbiAgICAgIHVzZXJfdHlwZV9pZHM6IHRoaXMuZmlsdGVyRm9ybT8udmFsdWU/LnVzZXJfdHlwZV9pZHM/LnRvU3RyaW5nKClcbiAgICB9O1xuXG4gICAgdGhpcy5zZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXN1bHQ/LmRhdGEpO1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2U7XG5cbiAgICAgICAgdGhpcy5tb2RlbHMuZm9yRWFjaCgodXNlckRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNsaWVudDogYW55ID0gKHVzZXJEYXRhPy51c2VyX2NsaWVudHMgYXMgYW55W10gfHwgW10pXG4gICAgICAgICAgICAuZmluZCgodXNlckNsaWVudDogYW55KSA9PiB1c2VyQ2xpZW50LmNsaWVudF9pZCA9PT0gY2xpZW50SWQgJiYgdXNlckNsaWVudC51c2VyX2lkID09PSB1c2VyRGF0YS5pZCk7XG4gICAgICAgICAgaWYgKGNsaWVudCkge1xuICAgICAgICAgICAgdXNlckRhdGEudXNlcl90eXBlX2lkID0gY2xpZW50LnVzZXJfdHlwZV9pZDtcbiAgICAgICAgICAgIHVzZXJEYXRhLmNsaWVudF9pZCA9IGNsaWVudC5jbGllbnRfaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1c2VyIHR5cGUgZm9yIHRoZSBjdXJyZW50IGNsaWVudC5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVXNlclxuICAgKi9cbiAgZ2V0VXNlclR5cGUodXNlcjogYW55KTogc3RyaW5nIHtcbiAgICBsZXQgdXNlckNsaWVudDogYW55O1xuICAgIGlmICghIXRoaXMuY2xpZW50SWQpIHtcbiAgICAgIHVzZXJDbGllbnQgPSAodXNlcj8udXNlcl9jbGllbnRzIGFzIFtdKS5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0/LmNsaWVudF9pZCA9PT0gdGhpcy5jbGllbnRJZCk7XG4gICAgfVxuICAgIHJldHVybiB1c2VyQ2xpZW50Py50eXBlPy50aXRsZSB8fCAnJztcbiAgfVxuXG4gIHJlc2V0UGFzc3dvcmQodXNlcjogYW55KSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2VydmljZS5yZXNldFBhc3N3b3JkKHVzZXIpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzV29ya2luZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnUGFzc3dvcmQgcmVzZXQgZW1haWwgc2VudCcsICdzdWNjZXNzJykpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsnbS00Jzpjb25maWc/LnVzZXJDb25maWc/LnNob3dEZWZhdWx0TWFyZ2lufVwiPlxuICA8bWF0LWNhcmQgY2xhc3M9XCJtYi0yXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj4ge3sgdGl0bGUgfX0gPC9oNT5cbiAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBbY29tcG9uZW50XT1cInVzZXJGb3JtQ29tcG9uZW50XCIgbWF0VG9vbHRpcD1cIk5ldyBVc2VyXCJcbiAgICAgICAgICBbZGF0YV09XCJ7Y2xpZW50X2lkOiBjbGllbnRJZCA/PyBjdXJyZW50VXNlcj8uY2xpZW50X2lkfVwiXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/LnVzZXJDb25maWc/LnNob3dBZGRVc2VyICYmIGN1cnJlbnRVc2VyU2VydmljZT8uaGFzUGVybWlzc2lvbigndXNlcl9jcmVhdGUnKVwiXG4gICAgICAgICAgKHNhdmVkKT1cIm1vZGVsQ3JlYXRlZCgkZXZlbnQpXCI+PC9hcHAtdGVjaGxpZnktZm9ybS1idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vaW1wb3J0J11cIlxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy51c2VyQ29uZmlnPy5zaG93SW1wb3J0QnV0dG9uICYmIGN1cnJlbnRVc2VyU2VydmljZT8uaGFzUGVybWlzc2lvbigndXNlcl9jcmVhdGUnKVwiPlxuICAgICAgICAgIEltcG9ydCBVc2VyXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbJy4uL3JvbGVzJ11cIiAqbmdJZj1cImNvbmZpZz8udXNlckNvbmZpZz8uc2hvd1JvbGVzXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnBlb3BsZTwvbWF0LWljb24+XG4gICAgICAgICAgUm9sZXNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vcm9sZS1wZXJtaXNzaW9ucyddXCJcbiAgICAgICAgICAqbmdJZj1cImNvbmZpZz8udXNlckNvbmZpZz8uc2hvd1Blcm1pc3Npb25zXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmxvY2s8L21hdC1pY29uPlxuICAgICAgICAgIFJvbGUgUGVybWlzc2lvbnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vY29uZmlndXJhdGlvbnMnXVwiXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/LnVzZXJDb25maWc/LnNob3dDb25maWd1cmF0aW9ucyAmJiBjdXJyZW50VXNlcj8udXNlcl90eXBlX2lkID09PSAyXCI+XG4gICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICB0b2dnbGVfb25cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIENvbmZpZ3VyYXRpb25zXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbJy4uL3Jlc3RyaWN0b3JzJ11cIlxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy51c2VyQ29uZmlnPy5zaG93UmVzdHJpY3RvcnMgJiYgY3VycmVudFVzZXI/LnVzZXJfdHlwZV9pZCA9PT0gMlwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgdnBuX2xvY2tcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIFJlc3RyaWN0b3JzXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9J2ZsLW1kJz5cbiAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBuYW1lLCBlbWFpbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9J2ZsLXNtJz5cbiAgICAgICAgICA8bWF0LWxhYmVsPlJvbGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgYXBpVXJsPVwiYXBpL3JvbGVzXCIgW211bHRpcGxlXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJyb2xlX2lkc1wiXG4gICAgICAgICAgICB0aXRsZUZpZWxkPVwibGFiZWxcIj48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz0nZmwtc20nPlxuICAgICAgICAgIDxtYXQtbGFiZWw+VXNlciBUeXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGFwaVVybD1cImFwaS91c2VyLXR5cGVzXCIgW211bHRpcGxlXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyX3R5cGVfaWRzXCJcbiAgICAgICAgICAgIHRpdGxlRmllbGQ9XCJ0aXRsZVwiPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBjbGFzcz0nbWItNCcgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgW2hpZGVNdWx0aXBsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzXCIgbXVsdGlwbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZW5hYmxlZFwiPkVuYWJsZWQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImRpc2FibGVkXCI+RGlzYWJsZWQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgPC9mb3JtPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cbiAgPG1hdC1jYXJkIGNsYXNzPVwibXQtMiBwLTBcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJVc2Vyc1wiIGluZmluaXRlU2Nyb2xsXG4gICAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIFtpbmZpbml0ZVNjcm9sbENvbnRhaW5lcl09XCJzY3JvbGxDb250YWluZXJcIlxuICAgICAgICBbZnJvbVJvb3RdPVwidHJ1ZVwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgbWF0U29ydCAobWF0U29ydENoYW5nZSk9XCJzb3J0Q29sdW1uKCRldmVudClcIj5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXg7XCI+IHt7IGkgKyAxIH19IDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmFtZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgbWF0LXNvcnQtaGVhZGVyPVwibmFtZVwiICptYXRIZWFkZXJDZWxsRGVmPiBOYW1lIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltlbGVtZW50Py5pZF1cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi1ub25lXCI+XG4gICAgICAgICAgICAgIHt7IGVsZW1lbnQubmFtZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIHRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIDwhLS0gIWVsZW1lbnQ/LnVzZXJfY2xpZW50IGNvbmRpdGlvbiBhZGRlZCB0byBjaGVjayBpZiB1c2VyIGhhcyB1c2VyX2NsaWVudCByZWNvcmQgLS0+XG4gICAgICAgICAgICAgIHt7ICFlbGVtZW50Py51c2VyX2NsaWVudCA/ICcnIDogZWxlbWVudD8udXNlcl9jbGllbnQ/LmlzX2VuYWJsZWQgPyAnRW5hYmxlZCcgOiAnRGlzYWJsZWQnIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBFbWFpbCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZW1haWxcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsIG1hdC1zb3J0LWhlYWRlcj1cImVtYWlsXCIgKm1hdEhlYWRlckNlbGxEZWY+IEVtYWlsIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmVtYWlsfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBUeXBlIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0eXBlXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCBtYXQtc29ydC1oZWFkZXI9XCJ1c2VyX3R5cGVfaWRcIiAqbWF0SGVhZGVyQ2VsbERlZj4gVXNlciBUeXBlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3sgZ2V0VXNlclR5cGUoZWxlbWVudCkgfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBSb2xlcyBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicm9sZXNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBSb2xlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBmbGV4LXdyYXAgdGV4dC1saWdodFwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgcm9sZSBvZiBlbGVtZW50Py5yb2xlc1wiIGNsYXNzPVwiYmFkZ2UgYmctc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAge3sgcm9sZT8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBMYXN0IExvZ2luIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0X2xvZ2luXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTGFzdCBMb2dpbiA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8ubGFzdF9sb2dpbiB8IGRhdGU6J21lZGl1bScgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEFkZGVkIEJ5IENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhZGRlZF9ieVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFkZGVkIEJ5IDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7IGVsZW1lbnQ/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3sgZWxlbWVudD8uY3JlYXRlZF9hdCB8IGRhdGUgfX08L3A+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9uIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWljb24gcm9sZT0nYnV0dG9uJyBuYW1lPVwidmlld1wiIGNsYXNzPVwiY2xpY2thYmxlXCIgW3JvdXRlckxpbmtdPVwiW2dldFVzZXJWaWV3Um91dGUoZWxlbWVudCldXCJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiVmlld1wiPjwvYXBwLXRlY2hsaWZ5LWljb24+XG5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBbY29tcG9uZW50XT1cInVzZXJGb3JtQ29tcG9uZW50XCIgW21vZGVsXT1cImVsZW1lbnRcIiBjbGFzcz1cImNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwie2NsaWVudF9pZDogY2xpZW50SWQgPz8gY3VycmVudFVzZXI/LmNsaWVudF9pZH1cIiBtYXRUb29sdGlwPVwiRWRpdFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50VXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbigndXNlcl91cGRhdGUnKVwiXG4gICAgICAgICAgICAgICAgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRVc2VyU2VydmljZS5oYXNQZXJtaXNzaW9uKCd1c2VyX2RlbGV0ZScpICYmIGVsZW1lbnQ/LmlkICE9PSBjdXJyZW50VXNlcj8uaWRcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJlbGVtZW50XCIgW3NlcnZpY2VdPVwic2VydmljZVwiIFtkYXRhXT1cInt0aXRsZTogZWxlbWVudD8ubmFtZSwgdHlwZTogJ3VzZXInfVwiXG4gICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoZWxlbWVudClcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktaWNvbiByb2xlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50VXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbigndGVjaGxpZnlfcmJhYy51c2VyLnJlc2V0X3Bhc3N3b3JkJylcIiBuYW1lPVwicmVzZXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlXCIgKGNsaWNrKT1cInJlc2V0UGFzc3dvcmQoZWxlbWVudClcIiBtYXRUb29sdGlwPVwiUmVzZXQgVXNlciBQYXNzd29yZFwiPjwvYXBwLXRlY2hsaWZ5LWljb24+XG5cbiAgICAgICAgICAgICAgPGFwcC11c2VyLWVuYWJsZS1idXR0b24gW3VzZXJdPVwiZWxlbWVudFwiIChvblNhdmUpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXVzZXItZW5hYmxlLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgICA8L3RhYmxlPlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJpc1dvcmtpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { UserTypeEnum } from '../user-type.enum';
|
|
3
|
-
import { UserFormComponent } from '../user-form/user-form.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../user.service";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "../../core";
|
|
8
|
-
import * as i4 from "../current-user.service";
|
|
9
|
-
import * as i5 from "@angular/common";
|
|
10
|
-
import * as i6 from "@angular/material/button";
|
|
11
|
-
import * as i7 from "@angular/material/tabs";
|
|
12
|
-
import * as i8 from "../../form-button/techlify-form-button.component";
|
|
13
|
-
import * as i9 from "../../login-history-for-user/login-history-for-user.component";
|
|
14
|
-
import * as i10 from "../../audit-log/audit-log-list/audit-log-list.component";
|
|
15
|
-
import * as i11 from "../../user-clients-list/user-clients-list.component";
|
|
16
|
-
import * as i12 from "../user-sessions/user-sessions/user-sessions.component";
|
|
17
|
-
export class AppAdminUserViewComponent {
|
|
18
|
-
constructor(userService, route, config, http, currentUserService) {
|
|
19
|
-
this.userService = userService;
|
|
20
|
-
this.route = route;
|
|
21
|
-
this.config = config;
|
|
22
|
-
this.http = http;
|
|
23
|
-
this.currentUserService = currentUserService;
|
|
24
|
-
this.userFormComponent = UserFormComponent;
|
|
25
|
-
this.UserTypeEnum = UserTypeEnum;
|
|
26
|
-
this.currentUser = this.currentUserService.getUser();
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
this.route.params.subscribe(params => {
|
|
30
|
-
if (params.id !== undefined) {
|
|
31
|
-
this.loadUser(params.id);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
loadUser(userId) {
|
|
36
|
-
this.userService.getUser(userId).then((result) => {
|
|
37
|
-
this.user = result.item;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
enableOrDisableUser(action) {
|
|
41
|
-
this.http.patch('api/users/' + this.user.id + '/' + action, this.user).toPromise().then((res) => {
|
|
42
|
-
this.user.user_client = res.item.user_client;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewComponent, deps: [{ token: i1.UserService }, { token: i2.ActivatedRoute }, { token: i3.ConfigService }, { token: i3.HttpService }, { token: i4.CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppAdminUserViewComponent, selector: "app-admin-user-view", ngImport: i0, template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <app-techlify-form-button [component]=\"userFormComponent\" [model]=\"user\"\n [data]=\"{client_id: user?.client_id}\" (saved)=\"loadUser(user.id)\"></app-techlify-form-button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatTabContent, selector: "[matTabContent]" }, { kind: "component", type: i7.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i7.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i8.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i9.LoginHistoryForUserComponent, selector: "app-login-history-for-user", inputs: ["userId"] }, { kind: "component", type: i10.AuditLogListComponent, selector: "app-audit-log-list", inputs: ["objectId", "objectType", "showFilter", "showExportButtons", "userId", "disableFilterPatchingFromUrl", "scrollContainer"] }, { kind: "component", type: i11.UserClientsListComponent, selector: "app-user-clients-list", inputs: ["user"] }, { kind: "component", type: i12.UserSessionsComponent, selector: "app-user-sessions", inputs: ["user"] }] }); }
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewComponent, decorators: [{
|
|
49
|
-
type: Component,
|
|
50
|
-
args: [{ selector: 'app-admin-user-view', template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <app-techlify-form-button [component]=\"userFormComponent\" [model]=\"user\"\n [data]=\"{client_id: user?.client_id}\" (saved)=\"loadUser(user.id)\"></app-techlify-form-button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>" }]
|
|
51
|
-
}], ctorParameters: () => [{ type: i1.UserService }, { type: i2.ActivatedRoute }, { type: i3.ConfigService }, { type: i3.HttpService }, { type: i4.CurrentUserService }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkbWluLXVzZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvYXBwLWFkbWluLXVzZXItdmlldy9hcHAtYWRtaW4tdXNlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci9hcHAtYWRtaW4tdXNlci12aWV3L2FwcC1hZG1pbi11c2VyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU1sRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXJFLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0IsV0FBd0IsRUFDbEMsS0FBcUIsRUFDdEIsTUFBcUIsRUFDcEIsSUFBaUIsRUFDbEIsa0JBQXNDO1FBSjNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTS9DLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRW5CLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBTjdDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFPRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbkMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFXO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ3JGLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMvQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7K0dBdENVLHlCQUF5QjttR0FBekIseUJBQXlCLDJEQ2Z0QyxteEhBd0ZNOzs0RkR6RU8seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVudFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY3VycmVudC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgVXNlclR5cGVFbnVtIH0gZnJvbSAnLi4vdXNlci10eXBlLmVudW0nO1xuaW1wb3J0IHsgVXNlckZvcm1Db21wb25lbnQgfSBmcm9tICcuLi91c2VyLWZvcm0vdXNlci1mb3JtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFkbWluLXVzZXItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtYWRtaW4tdXNlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLWFkbWluLXVzZXItdmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcEFkbWluVXNlclZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHB1YmxpYyBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwdWJsaWMgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuY3VycmVudFVzZXIgPSB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRVc2VyKCk7XG4gIH1cbiAgdXNlcjogVXNlcjtcbiAgY3VycmVudFVzZXI6IFVzZXI7XG4gIHVzZXJGb3JtQ29tcG9uZW50ID0gVXNlckZvcm1Db21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFVzZXJUeXBlRW51bSA9IFVzZXJUeXBlRW51bTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmxvYWRVc2VyKHBhcmFtcy5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBsb2FkVXNlcih1c2VySWQ6IGFueSkge1xuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlcih1c2VySWQpLnRoZW4oXG4gICAgICAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy51c2VyID0gcmVzdWx0Lml0ZW07XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGVuYWJsZU9yRGlzYWJsZVVzZXIoYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLmh0dHAucGF0Y2goJ2FwaS91c2Vycy8nICsgdGhpcy51c2VyLmlkICsgJy8nICsgYWN0aW9uLCB0aGlzLnVzZXIpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy51c2VyLnVzZXJfY2xpZW50ID0gcmVzLml0ZW0udXNlcl9jbGllbnQ7XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5IG0tNFwiICpuZ0lmPVwidXNlclwiPlxuICA8aDEgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7dXNlci5uYW1lfX08L2gxPlxuXG4gIDxkaXYgY2xhc3M9XCJib3JkZXJcIj5cbiAgICA8bWF0LXRhYi1ncm91cD5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiQmFzaWMgSW5mb3JtYXRpb25cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyZWQtc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImN1cnJlbnRVc2VyPy51c2VyX3R5cGVfaWQgIT0gM1wiPlxuICAgICAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBbY29tcG9uZW50XT1cInVzZXJGb3JtQ29tcG9uZW50XCIgW21vZGVsXT1cInVzZXJcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ7Y2xpZW50X2lkOiB1c2VyPy5jbGllbnRfaWR9XCIgKHNhdmVkKT1cImxvYWRVc2VyKHVzZXIuaWQpXCI+PC9hcHAtdGVjaGxpZnktZm9ybS1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAqbmdJZj1cIiF1c2VyLnVzZXJfY2xpZW50Py5pc19lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZU9yRGlzYWJsZVVzZXIoJ2VuYWJsZScpXCI+XG4gICAgICAgICAgICAgICAgICAgIEVuYWJsZVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInVzZXIudXNlcl9jbGllbnQ/LmlzX2VuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlT3JEaXNhYmxlVXNlcignZGlzYWJsZScpXCI+RGlzYWJsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29udHJvbC1sYWJlbFwiPk5hbWU6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPnt7dXNlcj8ubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29udHJvbC1sYWJlbFwiPkVtYWlsOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj57e3VzZXI/LmVtYWlsfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb250cm9sLWxhYmVsXCI+VHlwZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+e3t1c2VyPy50eXBlPy50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29udHJvbC1sYWJlbFwiPlN0YXR1czo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+e3t1c2VyPy51c2VyX2NsaWVudD8uaXNfZW5hYmxlZCA/ICdFbmFibGVkJyA6ICdEaXNhYmxlZCcgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbnRyb2wtbGFiZWxcIj5Sb2xlOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHJvbGUgb2YgdXNlcj8ucm9sZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRhcmsgYnRuLXhzIG1iLTJcIj57e3JvbGU/LmxhYmVsfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29udHJvbC1sYWJlbFwiPlNpZ25hdHVyZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlcj8uc2lnbmF0dXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e3VzZXI/LnNpZ25hdHVyZV91cmx9fVwiIGFsdD1cIlwiIHdpZHRoPVwiMjUwcHhcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXVzZXI/LnNpZ25hdHVyZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIE5vIFNpZ25hdHVyZSBBZGRlZFxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJMb2dpbiBIaXN0b3J5XCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgIDxhcHAtbG9naW4taGlzdG9yeS1mb3ItdXNlciBbdXNlcklkXT1cInVzZXI/LmlkXCI+PC9hcHAtbG9naW4taGlzdG9yeS1mb3ItdXNlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiQWN0aXZpdHkgTG9nc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICA8YXBwLWF1ZGl0LWxvZy1saXN0IG9iamVjdFR5cGU9XCJVc2VyXCIgW29iamVjdElkXT1cInVzZXI/LmlkXCIgW3Nob3dFeHBvcnRCdXR0b25zXT1cImZhbHNlXCI+XG4gICAgICAgICAgPC9hcHAtYXVkaXQtbG9nLWxpc3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIlRlbmFudHNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgPGFwcC11c2VyLWNsaWVudHMtbGlzdCBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlci1jbGllbnRzLWxpc3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIlNlc3Npb25zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgIDxhcHAtdXNlci1zZXNzaW9ucyBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlci1zZXNzaW9ucz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICA8L21hdC10YWItZ3JvdXA+XG4gIDwvZGl2PlxuXG48L2Rpdj4iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { AppAdminUserViewComponent, } from './app-admin-user-view.component';
|
|
3
|
-
import { SharedModule } from '../../shared.module';
|
|
4
|
-
import { LoginHistoryForUserModule } from '../../login-history-for-user/login-history-for-user.module';
|
|
5
|
-
import { AuditLogListModule } from '../../audit-log/audit-log-list/audit-log-list.module';
|
|
6
|
-
import { AppAdminUserViewRoutingProvider } from './app-admin-user-view.routes';
|
|
7
|
-
import { UserClientsListModule } from '../../user-clients-list/user-clients-list.module';
|
|
8
|
-
import { UserSessionsModule } from '../user-sessions/user-sessions/user-sessions.module';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class AppAdminUserViewModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewModule, declarations: [AppAdminUserViewComponent], imports: [SharedModule,
|
|
13
|
-
LoginHistoryForUserModule,
|
|
14
|
-
AuditLogListModule,
|
|
15
|
-
AppAdminUserViewRoutingProvider,
|
|
16
|
-
UserClientsListModule,
|
|
17
|
-
UserSessionsModule], exports: [AppAdminUserViewComponent] }); }
|
|
18
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewModule, imports: [SharedModule,
|
|
19
|
-
LoginHistoryForUserModule,
|
|
20
|
-
AuditLogListModule,
|
|
21
|
-
AppAdminUserViewRoutingProvider,
|
|
22
|
-
UserClientsListModule,
|
|
23
|
-
UserSessionsModule] }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewModule, decorators: [{
|
|
26
|
-
type: NgModule,
|
|
27
|
-
args: [{
|
|
28
|
-
imports: [
|
|
29
|
-
SharedModule,
|
|
30
|
-
LoginHistoryForUserModule,
|
|
31
|
-
AuditLogListModule,
|
|
32
|
-
AppAdminUserViewRoutingProvider,
|
|
33
|
-
UserClientsListModule,
|
|
34
|
-
UserSessionsModule
|
|
35
|
-
],
|
|
36
|
-
declarations: [
|
|
37
|
-
AppAdminUserViewComponent
|
|
38
|
-
],
|
|
39
|
-
exports: [
|
|
40
|
-
AppAdminUserViewComponent
|
|
41
|
-
]
|
|
42
|
-
}]
|
|
43
|
-
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkbWluLXVzZXItdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvYXBwLWFkbWluLXVzZXItdmlldy9hcHAtYWRtaW4tdXNlci12aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsR0FBRyxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7QUFrQnpGLE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjtnSEFBdEIsc0JBQXNCLGlCQU4vQix5QkFBeUIsYUFSekIsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixrQkFBa0I7WUFDbEIsK0JBQStCO1lBQy9CLHFCQUFxQjtZQUNyQixrQkFBa0IsYUFNbEIseUJBQXlCO2dIQUdoQixzQkFBc0IsWUFkL0IsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixrQkFBa0I7WUFDbEIsK0JBQStCO1lBQy9CLHFCQUFxQjtZQUNyQixrQkFBa0I7OzRGQVNULHNCQUFzQjtrQkFoQmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQWRtaW5Vc2VyVmlld0NvbXBvbmVudCwgfSBmcm9tICcuL2FwcC1hZG1pbi11c2VyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgTG9naW5IaXN0b3J5Rm9yVXNlck1vZHVsZSB9IGZyb20gJy4uLy4uL2xvZ2luLWhpc3RvcnktZm9yLXVzZXIvbG9naW4taGlzdG9yeS1mb3ItdXNlci5tb2R1bGUnO1xuaW1wb3J0IHsgQXVkaXRMb2dMaXN0TW9kdWxlIH0gZnJvbSAnLi4vLi4vYXVkaXQtbG9nL2F1ZGl0LWxvZy1saXN0L2F1ZGl0LWxvZy1saXN0Lm1vZHVsZSc7XG5pbXBvcnQgeyBBcHBBZG1pblVzZXJWaWV3Um91dGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9hcHAtYWRtaW4tdXNlci12aWV3LnJvdXRlcyc7XG5pbXBvcnQgeyBVc2VyQ2xpZW50c0xpc3RNb2R1bGUgfSBmcm9tICcuLi8uLi91c2VyLWNsaWVudHMtbGlzdC91c2VyLWNsaWVudHMtbGlzdC5tb2R1bGUnO1xuaW1wb3J0IHsgVXNlclNlc3Npb25zTW9kdWxlIH0gZnJvbSAnLi4vdXNlci1zZXNzaW9ucy91c2VyLXNlc3Npb25zL3VzZXItc2Vzc2lvbnMubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBMb2dpbkhpc3RvcnlGb3JVc2VyTW9kdWxlLFxuICAgIEF1ZGl0TG9nTGlzdE1vZHVsZSxcbiAgICBBcHBBZG1pblVzZXJWaWV3Um91dGluZ1Byb3ZpZGVyLFxuICAgIFVzZXJDbGllbnRzTGlzdE1vZHVsZSxcbiAgICBVc2VyU2Vzc2lvbnNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwQWRtaW5Vc2VyVmlld0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXBwQWRtaW5Vc2VyVmlld0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcEFkbWluVXNlclZpZXdNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { RouterModule } from '@angular/router';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { AppAdminUserViewComponent } from './app-admin-user-view.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
const routes = [
|
|
7
|
-
{ path: '**', component: AppAdminUserViewComponent },
|
|
8
|
-
];
|
|
9
|
-
// @dynamic
|
|
10
|
-
export class AppAdminUserViewRoutingProvider {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppAdminUserViewRoutingProvider, decorators: [{
|
|
16
|
-
type: NgModule,
|
|
17
|
-
args: [{
|
|
18
|
-
imports: [RouterModule.forChild(routes)],
|
|
19
|
-
exports: [RouterModule]
|
|
20
|
-
}]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWFkbWluLXVzZXItdmlldy5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvYXBwLWFkbWluLXVzZXItdmlldy9hcHAtYWRtaW4tdXNlci12aWV3LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBRTVFLE1BQU0sTUFBTSxHQUFXO0lBQ25CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7Q0FDdkQsQ0FBQztBQU9GLFdBQVc7QUFDWCxNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7Z0hBQS9CLCtCQUErQix3Q0FKOUIsWUFBWTtnSEFJYiwrQkFBK0IsWUFMOUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTs7NEZBSWIsK0JBQStCO2tCQU4zQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQWRtaW5Vc2VyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vYXBwLWFkbWluLXVzZXItdmlldy5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICB7IHBhdGg6ICcqKicsIGNvbXBvbmVudDogQXBwQWRtaW5Vc2VyVmlld0NvbXBvbmVudCB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFwcEFkbWluVXNlclZpZXdSb3V0aW5nUHJvdmlkZXIgeyB9XG4iXX0=
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject, of, map, BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { User } from './user.model';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../core/http.service";
|
|
6
|
-
import * as i2 from "../core/storage.service";
|
|
7
|
-
/**
|
|
8
|
-
* Service that manages information about the current user
|
|
9
|
-
*
|
|
10
|
-
* @author Joshua Kissoon
|
|
11
|
-
* @since 20170817
|
|
12
|
-
*/
|
|
13
|
-
export class CurrentUserService {
|
|
14
|
-
constructor(http, storage) {
|
|
15
|
-
this.http = http;
|
|
16
|
-
this.storage = storage;
|
|
17
|
-
/**Deprecated stop using for new projects */
|
|
18
|
-
this.userSub = new Subject();
|
|
19
|
-
// Track the auth status of the user.
|
|
20
|
-
this.isLoggedIn = new BehaviorSubject(false);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get the login status of the user.
|
|
24
|
-
*/
|
|
25
|
-
getAuthStatus() {
|
|
26
|
-
return this.isLoggedIn.asObservable();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Update the login status of the user.
|
|
30
|
-
*
|
|
31
|
-
* @param val The next value of the isLoggedIn.
|
|
32
|
-
*/
|
|
33
|
-
updateAuthStatus(val) {
|
|
34
|
-
this.isLoggedIn.next(val);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Returns an user if present, otherwise a empty user
|
|
38
|
-
* @returns {User} user
|
|
39
|
-
*/
|
|
40
|
-
getUser() {
|
|
41
|
-
if (this.user) {
|
|
42
|
-
return this.user;
|
|
43
|
-
}
|
|
44
|
-
this.user = new User();
|
|
45
|
-
const userFromStorage = JSON.parse(this.storage.getItem('currentUser'));
|
|
46
|
-
if (userFromStorage) {
|
|
47
|
-
this.user.loadFromMap(userFromStorage);
|
|
48
|
-
}
|
|
49
|
-
return this.user;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @deprecated Don't use for new projects, use getUserObservable() instead
|
|
53
|
-
* @returns {Observable<User>} Observable of user once changed.
|
|
54
|
-
*/
|
|
55
|
-
watch() {
|
|
56
|
-
return this.userSub.asObservable();
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Loads the current logged in user
|
|
60
|
-
* @deprecated use getUserObservable() instead
|
|
61
|
-
* @param reload whether to fetch new data from server
|
|
62
|
-
* @returns {Promise<User>} promise of user
|
|
63
|
-
*/
|
|
64
|
-
getCurrentUser(reload = false) {
|
|
65
|
-
let promise;
|
|
66
|
-
if (undefined !== this.data && !reload) {
|
|
67
|
-
promise = new Promise((resolve, reject) => {
|
|
68
|
-
resolve(this.data);
|
|
69
|
-
});
|
|
70
|
-
return promise;
|
|
71
|
-
}
|
|
72
|
-
promise = this.http.get('api/user/current').toPromise();
|
|
73
|
-
promise.then(res => {
|
|
74
|
-
this.user = new User();
|
|
75
|
-
this.data = res;
|
|
76
|
-
this.user.loadFromMap(res.user);
|
|
77
|
-
this.storage.setItem('currentUser', JSON.stringify(res.user));
|
|
78
|
-
this.userSub.next(this.user);
|
|
79
|
-
});
|
|
80
|
-
return promise;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Used to update the current user data
|
|
84
|
-
* @param {any} userData data that needs to be updated to current user
|
|
85
|
-
*/
|
|
86
|
-
updateCurrentUser(userData) {
|
|
87
|
-
this.user = new User();
|
|
88
|
-
this.data = userData;
|
|
89
|
-
this.user.loadFromMap(userData);
|
|
90
|
-
this.storage.setItem('currentUser', JSON.stringify(userData));
|
|
91
|
-
this.userSub.next(this.user);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* @param {number} id Id of role
|
|
95
|
-
* @returns {boolean} true if role is present
|
|
96
|
-
*/
|
|
97
|
-
hasRole(id) {
|
|
98
|
-
if (this.user.roles == null) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
return (this.user.roles || []).some(role => role.id == id);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* @param {number} id Id of permission
|
|
105
|
-
* @returns {boolean} true if permission is present
|
|
106
|
-
*/
|
|
107
|
-
hasPermission(slug) {
|
|
108
|
-
if (!this.user) {
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
if (this.user.user_type_id == 1) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
if (this.user.permissions == null) {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
return (this.user.permissions || []).some(permission => permission.slug == slug);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Returns the observable of user
|
|
123
|
-
* @param {boolean} reload - whether to reload the entire user again
|
|
124
|
-
* @returns {Observable<User>} Observable of user.
|
|
125
|
-
*/
|
|
126
|
-
getUserObservable(reload = false) {
|
|
127
|
-
if (this.user && !reload) {
|
|
128
|
-
return of(this.user);
|
|
129
|
-
}
|
|
130
|
-
return this.http.get('api/user/current')
|
|
131
|
-
.pipe(map((res) => {
|
|
132
|
-
this.user = new User();
|
|
133
|
-
this.data = res;
|
|
134
|
-
this.user.loadFromMap(res.user);
|
|
135
|
-
this.storage.setItem('currentUser', JSON.stringify(res.user));
|
|
136
|
-
return this.user;
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* @returns {any} Returns the raw user data
|
|
141
|
-
*/
|
|
142
|
-
getUserData() {
|
|
143
|
-
return this.data;
|
|
144
|
-
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentUserService, deps: [{ token: i1.HttpService }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentUserService, providedIn: 'root' }); }
|
|
147
|
-
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentUserService, decorators: [{
|
|
149
|
-
type: Injectable,
|
|
150
|
-
args: [{ providedIn: 'root' }]
|
|
151
|
-
}], ctorParameters: () => [{ type: i1.HttpService }, { type: i2.StorageService }] });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC11c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXIvY3VycmVudC11c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFJcEM7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBUzNCLFlBQW9CLElBQWlCLEVBQVUsT0FBdUI7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBTHRFLDRDQUE0QztRQUNwQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QyxxQ0FBcUM7UUFDN0IsZUFBVSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUVULENBQUM7SUFFM0U7O09BRUc7SUFDSCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsR0FBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksZUFBZSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsTUFBTSxHQUFHLEtBQUs7UUFDekIsSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXhELE9BQU8sQ0FBQyxJQUFJLENBQ1IsR0FBRyxDQUFDLEVBQUU7WUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQ0osQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxRQUFhO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLEVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7OztNQUdFO0lBQ0YsYUFBYSxDQUFDLElBQVk7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFDSSxDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLFNBQWtCLEtBQUs7UUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO2FBQ25DLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7K0dBckpRLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgbWFwLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBtYW5hZ2VzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXJcbiAqXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXG4gKiBAc2luY2UgMjAxNzA4MTdcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDdXJyZW50VXNlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgdXNlcjogVXNlcjtcbiAgICBwcml2YXRlIGRhdGE6IGFueTtcblxuICAgIC8qKkRlcHJlY2F0ZWQgc3RvcCB1c2luZyBmb3IgbmV3IHByb2plY3RzICovXG4gICAgcHJpdmF0ZSB1c2VyU3ViID0gbmV3IFN1YmplY3Q8VXNlcj4oKTtcbiAgICAvLyBUcmFjayB0aGUgYXV0aCBzdGF0dXMgb2YgdGhlIHVzZXIuXG4gICAgcHJpdmF0ZSBpc0xvZ2dlZEluOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHsgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBsb2dpbiBzdGF0dXMgb2YgdGhlIHVzZXIuXG4gICAgICovXG4gICAgZ2V0QXV0aFN0YXR1cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMb2dnZWRJbi5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIGxvZ2luIHN0YXR1cyBvZiB0aGUgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWwgVGhlIG5leHQgdmFsdWUgb2YgdGhlIGlzTG9nZ2VkSW4uXG4gICAgICovXG4gICAgdXBkYXRlQXV0aFN0YXR1cyh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvZ2dlZEluLm5leHQodmFsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIHVzZXIgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIGEgZW1wdHkgdXNlclxuICAgICAqIEByZXR1cm5zIHtVc2VyfSB1c2VyXG4gICAgICovXG4gICAgZ2V0VXNlcigpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XG4gICAgICAgIGNvbnN0IHVzZXJGcm9tU3RvcmFnZSA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xuICAgICAgICBpZiAodXNlckZyb21TdG9yYWdlKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIubG9hZEZyb21NYXAodXNlckZyb21TdG9yYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERvbid0IHVzZSBmb3IgbmV3IHByb2plY3RzLCB1c2UgZ2V0VXNlck9ic2VydmFibGUoKSBpbnN0ZWFkXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8VXNlcj59IE9ic2VydmFibGUgb2YgdXNlciBvbmNlIGNoYW5nZWQuXG4gICAgICovXG4gICAgd2F0Y2goKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlclN1Yi5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlclxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBnZXRVc2VyT2JzZXJ2YWJsZSgpIGluc3RlYWRcbiAgICAgKiBAcGFyYW0gcmVsb2FkIHdoZXRoZXIgdG8gZmV0Y2ggbmV3IGRhdGEgZnJvbSBzZXJ2ZXJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxVc2VyPn0gcHJvbWlzZSBvZiB1c2VyXG4gICAgICovXG4gICAgZ2V0Q3VycmVudFVzZXIocmVsb2FkID0gZmFsc2UpOiBhbnkge1xuICAgICAgICBsZXQgcHJvbWlzZTtcbiAgICAgICAgaWYgKHVuZGVmaW5lZCAhPT0gdGhpcy5kYXRhICYmICFyZWxvYWQpIHtcbiAgICAgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLmRhdGEpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgICAgICB9XG4gICAgICAgIHByb21pc2UgPSB0aGlzLmh0dHAuZ2V0KCdhcGkvdXNlci9jdXJyZW50JykudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgcHJvbWlzZS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSBuZXcgVXNlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlcztcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIubG9hZEZyb21NYXAocmVzLnVzZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKCdjdXJyZW50VXNlcicsIEpTT04uc3RyaW5naWZ5KHJlcy51c2VyKSk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU3ViLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHVwZGF0ZSB0aGUgY3VycmVudCB1c2VyIGRhdGFcbiAgICAgKiBAcGFyYW0ge2FueX0gdXNlckRhdGEgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY3VycmVudCB1c2VyXG4gICAgICovXG4gICAgdXBkYXRlQ3VycmVudFVzZXIodXNlckRhdGE6IGFueSk6IGFueSB7XG4gICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XG4gICAgICAgIHRoaXMuZGF0YSA9IHVzZXJEYXRhO1xuICAgICAgICB0aGlzLnVzZXIubG9hZEZyb21NYXAodXNlckRhdGEpO1xuICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSgnY3VycmVudFVzZXInLCBKU09OLnN0cmluZ2lmeSh1c2VyRGF0YSkpO1xuICAgICAgICB0aGlzLnVzZXJTdWIubmV4dCh0aGlzLnVzZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpZCBJZCBvZiByb2xlXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgcm9sZSBpcyBwcmVzZW50XG4gICAgICovXG4gICAgaGFzUm9sZShpZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIucm9sZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy51c2VyLnJvbGVzIHx8IFtdKS5zb21lKHJvbGUgPT4gcm9sZS5pZCA9PSBpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBAcGFyYW0ge251bWJlcn0gaWQgSWQgb2YgcGVybWlzc2lvblxuICAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgcGVybWlzc2lvbiBpcyBwcmVzZW50XG4gICAgKi9cbiAgICBoYXNQZXJtaXNzaW9uKHNsdWc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMudXNlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVzZXIudXNlcl90eXBlX2lkID09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlci5wZXJtaXNzaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnVzZXIucGVybWlzc2lvbnMgfHwgW10pLnNvbWUocGVybWlzc2lvbiA9PiBwZXJtaXNzaW9uLnNsdWcgPT0gc2x1Zyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZhYmxlIG9mIHVzZXJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlbG9hZCAtIHdoZXRoZXIgdG8gcmVsb2FkIHRoZSBlbnRpcmUgdXNlciBhZ2FpblxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFVzZXI+fSBPYnNlcnZhYmxlIG9mIHVzZXIuXG4gICAgICovXG4gICAgZ2V0VXNlck9ic2VydmFibGUocmVsb2FkOiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICAgICAgaWYgKHRoaXMudXNlciAmJiAhcmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy51c2VyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCgnYXBpL3VzZXIvY3VycmVudCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyLmxvYWRGcm9tTWFwKHJlcy51c2VyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRVc2VyJywgSlNPTi5zdHJpbmdpZnkocmVzLnVzZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7YW55fSBSZXR1cm5zIHRoZSByYXcgdXNlciBkYXRhXG4gICAgICovXG4gICAgZ2V0VXNlckRhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG59XG4iXX0=
|