ngx-techlify-core 11.4.8 → 11.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/karma.conf.js +44 -0
- package/ng-package.json +27 -0
- package/package.json +29 -37
- package/src/lib/action-popup/action-popup.component.html +21 -0
- package/src/lib/action-popup/action-popup.component.scss +0 -0
- package/src/lib/action-popup/action-popup.component.spec.ts +25 -0
- package/src/lib/action-popup/action-popup.component.ts +31 -0
- package/{lib/action-popup/action-popup.model.d.ts → src/lib/action-popup/action-popup.model.ts} +2 -2
- package/src/lib/action-popup/action-popup.module.ts +23 -0
- package/{lib/action-popup/index.d.ts → src/lib/action-popup/index.ts} +1 -1
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model.component.html +9 -0
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model.component.scss +0 -0
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model.component.spec.ts +25 -0
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model.component.ts +49 -0
- package/src/lib/audit-log/audit-log-for-model/audit-log-for-model.module.ts +24 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list.component.html +92 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list.component.scss +21 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list.component.spec.ts +25 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list.component.ts +138 -0
- package/src/lib/audit-log/audit-log-list/audit-log-list.module.ts +28 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.html +49 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.scss +0 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.spec.ts +26 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.ts +74 -0
- package/src/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.ts +24 -0
- package/src/lib/audit-log/audit-log-routing.module.ts +18 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view.component.html +46 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view.component.scss +0 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view.component.spec.ts +25 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view.component.ts +54 -0
- package/src/lib/audit-log/audit-log-view/audit-log-view.module.ts +20 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model.component.html +38 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model.component.scss +4 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model.component.spec.ts +25 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model.component.ts +53 -0
- package/src/lib/audit-log/audit-log-view-model/audit-log-view-model.module.ts +20 -0
- package/src/lib/audit-log/audit-log.module.ts +20 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.ts +10 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.html +4 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.scss +4 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.spec.ts +25 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.ts +28 -0
- package/src/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.ts +20 -0
- package/src/lib/base-model/index.ts +3 -0
- package/src/lib/base-model/techlify-form-component.class.ts +60 -0
- package/src/lib/base-model/techlify-listing-component.class.ts +67 -0
- package/src/lib/base-model/techlify-service.class.ts +73 -0
- package/src/lib/core/alert.service.ts +32 -0
- package/src/lib/core/api-prefix.interceptor.ts +22 -0
- package/src/lib/core/authentication.guard.ts +34 -0
- package/src/lib/core/authentication.service.ts +53 -0
- package/src/lib/core/cache.interceptor.ts +59 -0
- package/src/lib/core/config.service.ts +52 -0
- package/src/lib/core/core.module.ts +44 -0
- package/src/lib/core/credentials.service.ts +91 -0
- package/{lib/core/dataManager.service.d.ts → src/lib/core/dataManager.service.ts} +76 -22
- package/src/lib/core/error-handler.interceptor.ts +43 -0
- package/src/lib/core/error-handler.service.ts +61 -0
- package/src/lib/core/filter.service.ts +42 -0
- package/src/lib/core/form-validator.service.ts +23 -0
- package/src/lib/core/header.interceptor.ts +22 -0
- package/src/lib/core/http-cache.service.ts +122 -0
- package/src/lib/core/http.service.ts +137 -0
- package/{lib/core/index.d.ts → src/lib/core/index.ts} +2 -0
- package/src/lib/core/logger.service.ts +113 -0
- package/src/lib/core/route-reusable-strategy.ts +36 -0
- package/src/lib/core/snack/error-snack.html +8 -0
- package/src/lib/core/snack/snack.component.ts +19 -0
- package/src/lib/core/snack/snack.module.ts +22 -0
- package/src/lib/core/snack/snack.scss +18 -0
- package/src/lib/core/snack/success-snack.html +8 -0
- package/src/lib/core/storage.service.ts +38 -0
- package/src/lib/core/techlify-config.model.ts +32 -0
- package/src/lib/core/token.interceptor.ts +25 -0
- package/src/lib/data-table/data-table.component.html +139 -0
- package/src/lib/data-table/data-table.component.scss +54 -0
- package/src/lib/data-table/data-table.component.spec.ts +25 -0
- package/src/lib/data-table/data-table.component.ts +232 -0
- package/{lib/data-table/data-table.model.d.ts → src/lib/data-table/data-table.model.ts} +9 -6
- package/src/lib/data-table/data-table.module.ts +23 -0
- package/{lib/data-table/index.d.ts → src/lib/data-table/index.ts} +1 -1
- package/src/lib/date-validator.ts +12 -0
- package/src/lib/document-viewer/document-viewer.component.css +5 -0
- package/src/lib/document-viewer/document-viewer.component.html +19 -0
- package/src/lib/document-viewer/document-viewer.component.ts +66 -0
- package/src/lib/document-viewer/document-viewer.module.ts +22 -0
- package/{lib/document-viewer/index.d.ts → src/lib/document-viewer/index.ts} +1 -1
- package/src/lib/document-viewer/viewer-config.model.ts +5 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.ts +25 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.html +23 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.scss +4 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.ts +74 -0
- package/src/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.ts +22 -0
- package/{lib/email-subscription/email-subscription-for-user/index.d.ts → src/lib/email-subscription/email-subscription-for-user/index.ts} +0 -0
- package/src/lib/email-subscription/email-subscription-routing.module.ts +10 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.ts +10 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.html +47 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.scss +0 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.ts +113 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.ts +28 -0
- package/{lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts → src/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.ts} +0 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.ts +29 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.html +76 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.scss +4 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.ts +170 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.ts +26 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.ts +1 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.ts +11 -0
- package/src/lib/email-subscription/email-subscription-type/email-subscription-type.module.ts +14 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.ts +10 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.html +38 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.scss +0 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.ts +113 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.ts +26 -0
- package/{lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts → src/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.ts} +0 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.ts +27 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.html +74 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.scss +5 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.ts +174 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.ts +28 -0
- package/{lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts → src/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.ts} +0 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.ts +10 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.html +21 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.scss +0 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.spec.ts +25 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.ts +56 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.ts +24 -0
- package/{lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts → src/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.ts} +0 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.ts +11 -0
- package/src/lib/email-subscription/email-subscription-user/email-subscription-user.module.ts +14 -0
- package/src/lib/email-subscription/email-subscription.module.ts +15 -0
- package/src/lib/entity-files/entity-file-form/entity-file-form.component.css +0 -0
- package/src/lib/entity-files/entity-file-form/entity-file-form.component.html +45 -0
- package/src/lib/entity-files/entity-file-form/entity-file-form.component.ts +172 -0
- package/src/lib/entity-files/entity-file.service.ts +46 -0
- package/src/lib/entity-files/entity-files-view-all.component.css +0 -0
- package/src/lib/entity-files/entity-files-view-all.component.html +236 -0
- package/src/lib/entity-files/entity-files-view-all.component.ts +325 -0
- package/src/lib/entity-files/entity-files-view-all.module.ts +38 -0
- package/src/lib/entity-files/index.ts +2 -0
- package/src/lib/export-excel/export-excel-button/export-excel-button.component.html +1 -0
- package/src/lib/export-excel/export-excel-button/export-excel-button.component.scss +0 -0
- package/src/lib/export-excel/export-excel-button/export-excel-button.component.spec.ts +25 -0
- package/src/lib/export-excel/export-excel-button/export-excel-button.component.ts +31 -0
- package/src/lib/export-excel/export-excel.module.ts +16 -0
- package/src/lib/file-dropper/file-dropper.component.html +41 -0
- package/src/lib/file-dropper/file-dropper.component.scss +8 -0
- package/src/lib/file-dropper/file-dropper.component.ts +139 -0
- package/src/lib/file-dropper/file-dropper.model.ts +10 -0
- package/src/lib/file-dropper/file-dropper.module.ts +18 -0
- package/{lib/file-dropper/index.d.ts → src/lib/file-dropper/index.ts} +1 -1
- package/src/lib/import-csv/data-import/data-import.component.html +11 -0
- package/src/lib/import-csv/data-import/data-import.component.scss +0 -0
- package/src/lib/import-csv/data-import/data-import.component.spec.ts +28 -0
- package/src/lib/import-csv/data-import/data-import.component.ts +16 -0
- package/src/lib/import-csv/failed-items-list/failed-items-list.component.html +61 -0
- package/src/lib/import-csv/failed-items-list/failed-items-list.component.scss +0 -0
- package/src/lib/import-csv/failed-items-list/failed-items-list.component.spec.ts +28 -0
- package/src/lib/import-csv/failed-items-list/failed-items-list.component.ts +30 -0
- package/src/lib/import-csv/field-mapping/field-mapping.component.html +70 -0
- package/src/lib/import-csv/field-mapping/field-mapping.component.scss +15 -0
- package/src/lib/import-csv/field-mapping/field-mapping.component.ts +161 -0
- package/src/lib/import-csv/import-csv-config.ts +17 -0
- package/src/lib/import-csv/import-csv.component.html +71 -0
- package/src/lib/import-csv/import-csv.component.scss +15 -0
- package/src/lib/import-csv/import-csv.component.spec.ts +28 -0
- package/src/lib/import-csv/import-csv.component.ts +198 -0
- package/src/lib/import-csv/import-csv.module.ts +43 -0
- package/src/lib/import-csv/import-history-list/import-history-list.component.html +43 -0
- package/src/lib/import-csv/import-history-list/import-history-list.component.scss +0 -0
- package/src/lib/import-csv/import-history-list/import-history-list.component.spec.ts +28 -0
- package/src/lib/import-csv/import-history-list/import-history-list.component.ts +74 -0
- package/src/lib/import-csv/import-success/import-success.component.html +22 -0
- package/src/lib/import-csv/import-success/import-success.component.scss +0 -0
- package/src/lib/import-csv/import-success/import-success.component.spec.ts +28 -0
- package/src/lib/import-csv/import-success/import-success.component.ts +17 -0
- package/{lib/loader/index.d.ts → src/lib/loader/index.ts} +0 -0
- package/src/lib/loader/loader.component.html +4 -0
- package/src/lib/loader/loader.component.scss +8 -0
- package/src/lib/loader/loader.component.spec.ts +73 -0
- package/src/lib/loader/loader.component.ts +18 -0
- package/src/lib/loader/loader.module.ts +18 -0
- package/src/lib/login-history-for-user/login-history-for-user-routing.module.ts +18 -0
- package/src/lib/login-history-for-user/login-history-for-user.component.html +31 -0
- package/src/lib/login-history-for-user/login-history-for-user.component.scss +4 -0
- package/src/lib/login-history-for-user/login-history-for-user.component.spec.ts +25 -0
- package/src/lib/login-history-for-user/login-history-for-user.component.ts +94 -0
- package/src/lib/login-history-for-user/login-history-for-user.module.ts +26 -0
- package/src/lib/material.module.ts +68 -0
- package/src/lib/note/comment-form/comment-form.component.html +45 -0
- package/src/lib/note/comment-form/comment-form.component.scss +7 -0
- package/src/lib/note/comment-form/comment-form.component.spec.ts +24 -0
- package/src/lib/note/comment-form/comment-form.component.ts +84 -0
- package/{lib/note/index.d.ts → src/lib/note/index.ts} +0 -0
- package/src/lib/note/note-form/note-form.component.css +0 -0
- package/src/lib/note/note-form/note-form.component.html +26 -0
- package/src/lib/note/note-form/note-form.component.spec.ts +25 -0
- package/src/lib/note/note-form/note-form.component.ts +93 -0
- package/src/lib/note/note-list/note-list.component.css +4 -0
- package/src/lib/note/note-list/note-list.component.html +58 -0
- package/src/lib/note/note-list/note-list.component.spec.ts +25 -0
- package/src/lib/note/note-list/note-list.component.ts +156 -0
- package/src/lib/note/note.module.ts +33 -0
- package/src/lib/note/note.service.spec.ts +16 -0
- package/src/lib/note/note.service.ts +26 -0
- package/src/lib/read-more/read-more.component.html +3 -0
- package/src/lib/read-more/read-more.component.scss +8 -0
- package/src/lib/read-more/read-more.component.spec.ts +24 -0
- package/src/lib/read-more/read-more.component.ts +41 -0
- package/src/lib/read-more/read-more.module.ts +18 -0
- package/src/lib/request-helper/request-helper.service.ts +92 -0
- package/src/lib/searchable-selector/index.ts +2 -0
- package/src/lib/searchable-selector/mat-select-infinite-scroll.directive.ts +89 -0
- package/src/lib/searchable-selector/searchable-selector.component.html +21 -0
- package/src/lib/searchable-selector/searchable-selector.component.scss +8 -0
- package/src/lib/searchable-selector/searchable-selector.component.spec.ts +25 -0
- package/src/lib/searchable-selector/searchable-selector.component.ts +337 -0
- package/src/lib/searchable-selector/searchable-selector.module.ts +25 -0
- package/src/lib/techlify-feature/on-off-switch/on-off-switch.component.html +4 -0
- package/src/lib/techlify-feature/on-off-switch/on-off-switch.component.scss +0 -0
- package/src/lib/techlify-feature/on-off-switch/on-off-switch.component.spec.ts +28 -0
- package/src/lib/techlify-feature/on-off-switch/on-off-switch.component.ts +25 -0
- package/src/lib/techlify-feature/techlify-feature-enabled.directive.ts +71 -0
- package/src/lib/techlify-feature/techlify-feature-listing.component.html +65 -0
- package/src/lib/techlify-feature/techlify-feature-listing.component.scss +0 -0
- package/src/lib/techlify-feature/techlify-feature-listing.component.ts +174 -0
- package/src/lib/techlify-feature/techlify-feature.module.ts +28 -0
- package/src/lib/techlify-feature/techlify-feature.routing.ts +13 -0
- package/src/lib/techlify-feature/techlify-feature.service.ts +23 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.ts +25 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.html +18 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.scss +6 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.spec.ts +25 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.ts +308 -0
- package/src/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.ts +24 -0
- package/src/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.html +8 -0
- package/src/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.scss +0 -0
- package/src/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.spec.ts +25 -0
- package/src/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.ts +180 -0
- package/src/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.ts +28 -0
- package/src/lib/techlify-update/techlify-update-form/techlify-update-form.component.html +78 -0
- package/src/lib/techlify-update/techlify-update-form/techlify-update-form.component.scss +0 -0
- package/src/lib/techlify-update/techlify-update-form/techlify-update-form.component.spec.ts +25 -0
- package/src/lib/techlify-update/techlify-update-form/techlify-update-form.component.ts +113 -0
- package/src/lib/techlify-update/techlify-update-form/techlify-update-form.module.ts +25 -0
- package/src/lib/techlify-update/techlify-update-history/index.ts +1 -0
- package/src/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.ts +21 -0
- package/src/lib/techlify-update/techlify-update-history/techlify-update-history.component.html +94 -0
- package/src/lib/techlify-update/techlify-update-history/techlify-update-history.component.scss +0 -0
- package/src/lib/techlify-update/techlify-update-history/techlify-update-history.component.ts +142 -0
- package/src/lib/techlify-update/techlify-update-history/techlify-update-history.module.ts +25 -0
- package/src/lib/techlify-update/techlify-update-routing.module.ts +21 -0
- package/src/lib/techlify-update/techlify-update.module.ts +27 -0
- package/src/lib/techlify-update/techlify-update.service.spec.ts +16 -0
- package/src/lib/techlify-update/techlify-update.service.ts +42 -0
- package/src/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.html +104 -0
- package/src/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.scss +0 -0
- package/src/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.spec.ts +25 -0
- package/src/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.ts +167 -0
- package/src/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.html +39 -0
- package/src/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.scss +57 -0
- package/src/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.spec.ts +25 -0
- package/src/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.ts +76 -0
- package/src/lib/techlify-update/update-notifier/update-notifier.component.html +0 -0
- package/src/lib/techlify-update/update-notifier/update-notifier.component.scss +3 -0
- package/src/lib/techlify-update/update-notifier/update-notifier.component.spec.ts +25 -0
- package/src/lib/techlify-update/update-notifier/update-notifier.component.ts +56 -0
- package/src/lib/techlify-update/update-notifier/update-notifier.module.ts +27 -0
- package/src/lib/techlify-update/update-view/update-view.component.html +63 -0
- package/src/lib/techlify-update/update-view/update-view.component.scss +19 -0
- package/src/lib/techlify-update/update-view/update-view.component.spec.ts +25 -0
- package/src/lib/techlify-update/update-view/update-view.component.ts +36 -0
- package/src/lib/techlify-update/update-view/update-view.module.ts +23 -0
- package/src/lib/timeline-filter/README.md +60 -0
- package/src/lib/timeline-filter/calculate-timeline.ts +109 -0
- package/{lib/timeline-filter/index.d.ts → src/lib/timeline-filter/index.ts} +1 -1
- package/src/lib/timeline-filter/timeline-filter-routing.module.ts +10 -0
- package/src/lib/timeline-filter/timeline-filter.component.html +54 -0
- package/src/lib/timeline-filter/timeline-filter.component.scss +0 -0
- package/src/lib/timeline-filter/timeline-filter.component.spec.ts +25 -0
- package/src/lib/timeline-filter/timeline-filter.component.ts +220 -0
- package/src/lib/timeline-filter/timeline-filter.module.ts +22 -0
- package/src/lib/timeline-filter/timeline.model.ts +17 -0
- package/src/lib/utility/date-utils.service.ts +51 -0
- package/{lib/utility/index.d.ts → src/lib/utility/index.ts} +1 -1
- package/src/lib/utility/num-items-selector.component.ts +29 -0
- package/src/lib/utility/num-items-selector.html +13 -0
- package/src/lib/utility/number-selector.component.ts +38 -0
- package/src/lib/utility/number-selector.html +6 -0
- package/src/lib/utility/utility.module.ts +20 -0
- package/{public-api.d.ts → src/public-api.ts} +31 -0
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +26 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/tslint.json +17 -0
- package/bundles/ngx-techlify-core.umd.js +0 -8325
- package/bundles/ngx-techlify-core.umd.js.map +0 -1
- package/bundles/ngx-techlify-core.umd.min.js +0 -2
- package/bundles/ngx-techlify-core.umd.min.js.map +0 -1
- package/esm2015/lib/action-popup/action-popup.component.js +0 -32
- package/esm2015/lib/action-popup/action-popup.model.js +0 -3
- package/esm2015/lib/action-popup/action-popup.module.js +0 -26
- package/esm2015/lib/action-popup/index.js +0 -3
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.component.js +0 -49
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.module.js +0 -25
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list.component.js +0 -132
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list.module.js +0 -29
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.js +0 -67
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.js +0 -25
- package/esm2015/lib/audit-log/audit-log-routing.module.js +0 -19
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +0 -60
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.module.js +0 -21
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +0 -57
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.module.js +0 -21
- package/esm2015/lib/audit-log/audit-log.module.js +0 -20
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.js +0 -12
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.js +0 -35
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.js +0 -21
- package/esm2015/lib/base-model/index.js +0 -4
- package/esm2015/lib/base-model/techlify-form-component.class.js +0 -51
- package/esm2015/lib/base-model/techlify-listing-component.class.js +0 -41
- package/esm2015/lib/base-model/techlify-service.class.js +0 -64
- package/esm2015/lib/core/alert.service.js +0 -40
- package/esm2015/lib/core/api-prefix.interceptor.js +0 -28
- package/esm2015/lib/core/authentication.guard.js +0 -39
- package/esm2015/lib/core/authentication.service.js +0 -59
- package/esm2015/lib/core/cache.interceptor.js +0 -60
- package/esm2015/lib/core/config.service.js +0 -47
- package/esm2015/lib/core/core.module.js +0 -42
- package/esm2015/lib/core/credentials.service.js +0 -84
- package/esm2015/lib/core/dataManager.service.js +0 -121
- package/esm2015/lib/core/error-handler.interceptor.js +0 -53
- package/esm2015/lib/core/error-handler.service.js +0 -60
- package/esm2015/lib/core/form-validator.service.js +0 -23
- package/esm2015/lib/core/header.interceptor.js +0 -22
- package/esm2015/lib/core/http-cache.service.js +0 -110
- package/esm2015/lib/core/http.service.js +0 -82
- package/esm2015/lib/core/index.js +0 -21
- package/esm2015/lib/core/logger.service.js +0 -100
- package/esm2015/lib/core/route-reusable-strategy.js +0 -35
- package/esm2015/lib/core/snack/snack.component.js +0 -33
- package/esm2015/lib/core/snack/snack.module.js +0 -25
- package/esm2015/lib/core/storage.service.js +0 -37
- package/esm2015/lib/core/techlify-config.model.js +0 -28
- package/esm2015/lib/core/token.interceptor.js +0 -30
- package/esm2015/lib/data-table/data-table.component.js +0 -190
- package/esm2015/lib/data-table/data-table.model.js +0 -11
- package/esm2015/lib/data-table/data-table.module.js +0 -25
- package/esm2015/lib/data-table/index.js +0 -3
- package/esm2015/lib/date-validator.js +0 -10
- package/esm2015/lib/document-viewer/document-viewer.component.js +0 -58
- package/esm2015/lib/document-viewer/document-viewer.module.js +0 -25
- package/esm2015/lib/document-viewer/index.js +0 -3
- package/esm2015/lib/document-viewer/viewer-config.model.js +0 -3
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +0 -26
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.js +0 -72
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.js +0 -23
- package/esm2015/lib/email-subscription/email-subscription-for-user/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.js +0 -102
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.js +0 -28
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +0 -28
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +0 -153
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.js +0 -27
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type.module.js +0 -15
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.js +0 -99
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.js +0 -27
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +0 -28
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.js +0 -155
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.js +0 -29
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +0 -50
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.js +0 -25
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js +0 -2
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.js +0 -12
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user.module.js +0 -15
- package/esm2015/lib/email-subscription/email-subscription.module.js +0 -15
- package/esm2015/lib/entity-files/entity-file-form/entity-file-form.component.js +0 -138
- package/esm2015/lib/entity-files/entity-file.service.js +0 -42
- package/esm2015/lib/entity-files/entity-files-view-all.component.js +0 -208
- package/esm2015/lib/entity-files/entity-files-view-all.module.js +0 -34
- package/esm2015/lib/entity-files/index.js +0 -3
- package/esm2015/lib/export-excel/export-excel-button/export-excel-button.component.js +0 -32
- package/esm2015/lib/export-excel/export-excel.module.js +0 -17
- package/esm2015/lib/file-dropper/file-dropper.component.js +0 -122
- package/esm2015/lib/file-dropper/file-dropper.model.js +0 -3
- package/esm2015/lib/file-dropper/file-dropper.module.js +0 -21
- package/esm2015/lib/file-dropper/index.js +0 -3
- package/esm2015/lib/import-csv/data-import/data-import.component.js +0 -18
- package/esm2015/lib/import-csv/failed-items-list/failed-items-list.component.js +0 -33
- package/esm2015/lib/import-csv/field-mapping/field-mapping.component.js +0 -148
- package/esm2015/lib/import-csv/import-csv-config.js +0 -2
- package/esm2015/lib/import-csv/import-csv.component.js +0 -196
- package/esm2015/lib/import-csv/import-csv.module.js +0 -46
- package/esm2015/lib/import-csv/import-history-list/import-history-list.component.js +0 -71
- package/esm2015/lib/import-csv/import-success/import-success.component.js +0 -19
- package/esm2015/lib/loader/index.js +0 -2
- package/esm2015/lib/loader/loader.component.js +0 -22
- package/esm2015/lib/loader/loader.module.js +0 -21
- package/esm2015/lib/login-history-for-user/login-history-for-user-routing.module.js +0 -20
- package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +0 -88
- package/esm2015/lib/login-history-for-user/login-history-for-user.module.js +0 -27
- package/esm2015/lib/material.module.js +0 -60
- package/esm2015/lib/note/comment-form/comment-form.component.js +0 -73
- package/esm2015/lib/note/index.js +0 -4
- package/esm2015/lib/note/note-form/note-form.component.js +0 -81
- package/esm2015/lib/note/note-list/note-list.component.js +0 -151
- package/esm2015/lib/note/note.module.js +0 -36
- package/esm2015/lib/note/note.service.js +0 -31
- package/esm2015/lib/read-more/read-more.component.js +0 -43
- package/esm2015/lib/read-more/read-more.module.js +0 -21
- package/esm2015/lib/searchable-selector/index.js +0 -3
- package/esm2015/lib/searchable-selector/mat-select-infinite-scroll.directive.js +0 -81
- package/esm2015/lib/searchable-selector/searchable-selector.component.js +0 -307
- package/esm2015/lib/searchable-selector/searchable-selector.module.js +0 -28
- package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +0 -27
- package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +0 -78
- package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +0 -177
- package/esm2015/lib/techlify-feature/techlify-feature.module.js +0 -30
- package/esm2015/lib/techlify-feature/techlify-feature.routing.js +0 -12
- package/esm2015/lib/techlify-feature/techlify-feature.service.js +0 -28
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js +0 -15
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js +0 -269
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.js +0 -25
- package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.js +0 -168
- package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.js +0 -29
- package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.component.js +0 -114
- package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.module.js +0 -28
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.js +0 -22
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.component.js +0 -143
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +0 -28
- package/esm2015/lib/techlify-update/techlify-update-routing.module.js +0 -22
- package/esm2015/lib/techlify-update/techlify-update.module.js +0 -30
- package/esm2015/lib/techlify-update/techlify-update.service.js +0 -43
- package/esm2015/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.js +0 -161
- package/esm2015/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.js +0 -82
- package/esm2015/lib/techlify-update/update-notifier/update-notifier.component.js +0 -62
- package/esm2015/lib/techlify-update/update-notifier/update-notifier.module.js +0 -29
- package/esm2015/lib/techlify-update/update-view/update-view.component.js +0 -36
- package/esm2015/lib/techlify-update/update-view/update-view.module.js +0 -24
- package/esm2015/lib/timeline-filter/calculate-timeline.js +0 -102
- package/esm2015/lib/timeline-filter/index.js +0 -4
- package/esm2015/lib/timeline-filter/timeline-filter-routing.module.js +0 -12
- package/esm2015/lib/timeline-filter/timeline-filter.component.js +0 -213
- package/esm2015/lib/timeline-filter/timeline-filter.module.js +0 -23
- package/esm2015/lib/timeline-filter/timeline.model.js +0 -18
- package/esm2015/lib/utility/date-utils.service.js +0 -48
- package/esm2015/lib/utility/index.js +0 -4
- package/esm2015/lib/utility/num-items-selector.component.js +0 -30
- package/esm2015/lib/utility/number-selector.component.js +0 -38
- package/esm2015/lib/utility/utility.module.js +0 -21
- package/esm2015/ngx-techlify-core.js +0 -60
- package/esm2015/public-api.js +0 -96
- package/fesm2015/ngx-techlify-core.js +0 -7039
- package/fesm2015/ngx-techlify-core.js.map +0 -1
- package/lib/action-popup/action-popup.component.d.ts +0 -14
- package/lib/action-popup/action-popup.module.d.ts +0 -2
- package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +0 -12
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +0 -2
- package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +0 -32
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +0 -2
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +0 -19
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +0 -2
- package/lib/audit-log/audit-log-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +0 -17
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +0 -2
- package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +0 -15
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +0 -2
- package/lib/audit-log/audit-log.module.d.ts +0 -2
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +0 -2
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +0 -11
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +0 -2
- package/lib/base-model/index.d.ts +0 -3
- package/lib/base-model/techlify-form-component.class.d.ts +0 -43
- package/lib/base-model/techlify-listing-component.class.d.ts +0 -47
- package/lib/base-model/techlify-service.class.d.ts +0 -52
- package/lib/core/alert.service.d.ts +0 -12
- package/lib/core/api-prefix.interceptor.d.ts +0 -11
- package/lib/core/authentication.guard.d.ts +0 -10
- package/lib/core/authentication.service.d.ts +0 -23
- package/lib/core/cache.interceptor.d.ts +0 -21
- package/lib/core/config.service.d.ts +0 -19
- package/lib/core/core.module.d.ts +0 -3
- package/lib/core/credentials.service.d.ts +0 -36
- package/lib/core/error-handler.interceptor.d.ts +0 -14
- package/lib/core/error-handler.service.d.ts +0 -14
- package/lib/core/form-validator.service.d.ts +0 -8
- package/lib/core/header.interceptor.d.ts +0 -8
- package/lib/core/http-cache.service.d.ts +0 -54
- package/lib/core/http.service.d.ts +0 -56
- package/lib/core/logger.service.d.ts +0 -85
- package/lib/core/route-reusable-strategy.d.ts +0 -13
- package/lib/core/snack/snack.component.d.ts +0 -8
- package/lib/core/snack/snack.module.d.ts +0 -2
- package/lib/core/storage.service.d.ts +0 -15
- package/lib/core/techlify-config.model.d.ts +0 -18
- package/lib/core/token.interceptor.d.ts +0 -11
- package/lib/data-table/data-table.component.d.ts +0 -60
- package/lib/data-table/data-table.module.d.ts +0 -2
- package/lib/date-validator.d.ts +0 -1
- package/lib/document-viewer/document-viewer.component.d.ts +0 -16
- package/lib/document-viewer/document-viewer.module.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 -7
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +0 -17
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-routing.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +0 -32
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +0 -9
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +0 -30
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +0 -2
- 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 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +0 -32
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +0 -9
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +0 -32
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +0 -13
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +0 -2
- package/lib/email-subscription/email-subscription.module.d.ts +0 -2
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +0 -34
- package/lib/entity-files/entity-file.service.d.ts +0 -10
- package/lib/entity-files/entity-files-view-all.component.d.ts +0 -45
- package/lib/entity-files/entity-files-view-all.module.d.ts +0 -2
- package/lib/entity-files/index.d.ts +0 -2
- package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +0 -8
- package/lib/export-excel/export-excel.module.d.ts +0 -2
- package/lib/file-dropper/file-dropper.component.d.ts +0 -33
- package/lib/file-dropper/file-dropper.model.d.ts +0 -10
- package/lib/file-dropper/file-dropper.module.d.ts +0 -2
- package/lib/import-csv/data-import/data-import.component.d.ts +0 -6
- package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +0 -12
- package/lib/import-csv/field-mapping/field-mapping.component.d.ts +0 -34
- package/lib/import-csv/import-csv-config.d.ts +0 -17
- package/lib/import-csv/import-csv.component.d.ts +0 -33
- package/lib/import-csv/import-csv.module.d.ts +0 -2
- package/lib/import-csv/import-history-list/import-history-list.component.d.ts +0 -21
- package/lib/import-csv/import-success/import-success.component.d.ts +0 -8
- package/lib/loader/loader.component.d.ts +0 -8
- package/lib/loader/loader.module.d.ts +0 -2
- package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +0 -2
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +0 -23
- package/lib/login-history-for-user/login-history-for-user.module.d.ts +0 -2
- package/lib/material.module.d.ts +0 -2
- package/lib/note/comment-form/comment-form.component.d.ts +0 -22
- package/lib/note/note-form/note-form.component.d.ts +0 -27
- package/lib/note/note-list/note-list.component.d.ts +0 -28
- package/lib/note/note.module.d.ts +0 -2
- package/lib/note/note.service.d.ts +0 -9
- package/lib/read-more/read-more.component.d.ts +0 -12
- package/lib/read-more/read-more.module.d.ts +0 -2
- package/lib/searchable-selector/index.d.ts +0 -2
- package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +0 -23
- package/lib/searchable-selector/searchable-selector.component.d.ts +0 -81
- package/lib/searchable-selector/searchable-selector.module.d.ts +0 -2
- package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +0 -9
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +0 -17
- package/lib/techlify-feature/techlify-feature-listing.component.d.ts +0 -37
- package/lib/techlify-feature/techlify-feature.module.d.ts +0 -2
- package/lib/techlify-feature/techlify-feature.routing.d.ts +0 -2
- package/lib/techlify-feature/techlify-feature.service.d.ts +0 -8
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +0 -12
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +0 -76
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +0 -2
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +0 -58
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +0 -30
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +0 -31
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update-routing.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update.module.d.ts +0 -2
- package/lib/techlify-update/techlify-update.service.d.ts +0 -13
- package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +0 -31
- package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +0 -25
- package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +0 -16
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +0 -2
- package/lib/techlify-update/update-view/update-view.component.d.ts +0 -14
- package/lib/techlify-update/update-view/update-view.module.d.ts +0 -2
- package/lib/timeline-filter/calculate-timeline.d.ts +0 -6
- package/lib/timeline-filter/timeline-filter-routing.module.d.ts +0 -2
- package/lib/timeline-filter/timeline-filter.component.d.ts +0 -61
- package/lib/timeline-filter/timeline-filter.module.d.ts +0 -2
- package/lib/timeline-filter/timeline.model.d.ts +0 -17
- package/lib/utility/date-utils.service.d.ts +0 -21
- package/lib/utility/num-items-selector.component.d.ts +0 -16
- package/lib/utility/number-selector.component.d.ts +0 -20
- package/lib/utility/utility.module.d.ts +0 -2
- package/ngx-techlify-core.d.ts +0 -59
- package/ngx-techlify-core.metadata.json +0 -1
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
var SearchableSelectorComponent_1;
|
|
2
|
-
import { __decorate } from "tslib";
|
|
3
|
-
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
4
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
-
import { Component, ElementRef, Input, Optional, Self, Output, EventEmitter } from '@angular/core';
|
|
6
|
-
import { FormBuilder, NgControl, Validators } from '@angular/forms';
|
|
7
|
-
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
8
|
-
import { Subject, of, from } from 'rxjs';
|
|
9
|
-
import { debounceTime, distinctUntilChanged, startWith, switchMap, finalize } from 'rxjs/operators';
|
|
10
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
11
|
-
import { HttpService } from '../core/http.service';
|
|
12
|
-
import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy";
|
|
13
|
-
let SearchableSelectorComponent = SearchableSelectorComponent_1 = class SearchableSelectorComponent {
|
|
14
|
-
constructor(formBuilder, _focusMonitor, http, _elementRef, dialog, ngControl) {
|
|
15
|
-
this._focusMonitor = _focusMonitor;
|
|
16
|
-
this.http = http;
|
|
17
|
-
this._elementRef = _elementRef;
|
|
18
|
-
this.dialog = dialog;
|
|
19
|
-
this.ngControl = ngControl;
|
|
20
|
-
this.valueField = 'id';
|
|
21
|
-
this.titleField = 'title';
|
|
22
|
-
this.multiple = false;
|
|
23
|
-
this.selectedValueChange = new EventEmitter();
|
|
24
|
-
this.enableSearch = true;
|
|
25
|
-
this.add = false;
|
|
26
|
-
this.edit = false;
|
|
27
|
-
this.sort = true;
|
|
28
|
-
this.items = [];
|
|
29
|
-
this.apiDataProperty = 'data';
|
|
30
|
-
this.cache = false;
|
|
31
|
-
this.perPage = 25;
|
|
32
|
-
this.inDataSearch = false;
|
|
33
|
-
this.selectionChange = new EventEmitter();
|
|
34
|
-
this.itemsChange = new EventEmitter();
|
|
35
|
-
this.isLoading = false;
|
|
36
|
-
this.onChange = () => { };
|
|
37
|
-
this.onTouched = () => { };
|
|
38
|
-
this.stateChanges = new Subject();
|
|
39
|
-
this.focused = false;
|
|
40
|
-
this.controlType = 'searchable-selctor';
|
|
41
|
-
this.id = `searchable-selctor-${SearchableSelectorComponent_1.nextId++}`;
|
|
42
|
-
this.describedBy = '';
|
|
43
|
-
this.cachedItems = [];
|
|
44
|
-
this._required = false;
|
|
45
|
-
this._disabled = false;
|
|
46
|
-
this.selectorForm = formBuilder.group({
|
|
47
|
-
select_value: [null],
|
|
48
|
-
search: ''
|
|
49
|
-
});
|
|
50
|
-
_focusMonitor.monitor(_elementRef, true).subscribe(origin => {
|
|
51
|
-
if (this.focused && !origin) {
|
|
52
|
-
this.onTouched();
|
|
53
|
-
}
|
|
54
|
-
this.focused = !!origin;
|
|
55
|
-
this.stateChanges.next();
|
|
56
|
-
});
|
|
57
|
-
if (this.ngControl != null) {
|
|
58
|
-
this.ngControl.valueAccessor = this;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
get empty() {
|
|
62
|
-
const { value: { select_value } } = this.selectorForm;
|
|
63
|
-
return !select_value;
|
|
64
|
-
}
|
|
65
|
-
get shouldLabelFloat() { return this.focused || !this.empty; }
|
|
66
|
-
get required() { return this._required; }
|
|
67
|
-
set required(value) {
|
|
68
|
-
this.selectorForm.get('select_value').setValidators(Validators.required);
|
|
69
|
-
this._required = coerceBooleanProperty(value);
|
|
70
|
-
this.stateChanges.next();
|
|
71
|
-
}
|
|
72
|
-
get disabled() { return this._disabled; }
|
|
73
|
-
set disabled(value) {
|
|
74
|
-
this._disabled = coerceBooleanProperty(value);
|
|
75
|
-
this._disabled ? this.selectorForm.disable() : this.selectorForm.enable();
|
|
76
|
-
this.stateChanges.next();
|
|
77
|
-
}
|
|
78
|
-
get value() {
|
|
79
|
-
if (this.selectorForm.valid) {
|
|
80
|
-
return this.selectorForm.value.select_value;
|
|
81
|
-
}
|
|
82
|
-
return '';
|
|
83
|
-
}
|
|
84
|
-
set value(data) {
|
|
85
|
-
this.selectorForm.patchValue({ select_value: data || '' });
|
|
86
|
-
this.stateChanges.next();
|
|
87
|
-
}
|
|
88
|
-
openedChange(event) {
|
|
89
|
-
if (this.dataItems.length === 0 && this.selectorForm.get('search').value) {
|
|
90
|
-
this.selectorForm.get('search').setValue('');
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
get dataItems() {
|
|
94
|
-
let items = [];
|
|
95
|
-
if (this.multiple && this.selectedValue && (this.selectedValue.length > 0))
|
|
96
|
-
items = [...this.selectedValue, ...this.items];
|
|
97
|
-
else if ((!this.multiple) && this.selectedValue)
|
|
98
|
-
items = [this.selectedValue, ...this.items];
|
|
99
|
-
else
|
|
100
|
-
items = this.items;
|
|
101
|
-
items = items.filter((v, i, a) => a.findIndex(v => v[this.valueField] === a[i][this.valueField]) === i);
|
|
102
|
-
//Emit the items to any child component
|
|
103
|
-
this.itemsChange.emit(items);
|
|
104
|
-
return items;
|
|
105
|
-
}
|
|
106
|
-
ngOnInit() {
|
|
107
|
-
this.selectorForm.get('search').valueChanges
|
|
108
|
-
.pipe(debounceTime(500), distinctUntilChanged(), untilDestroyed(this)).subscribe(value => {
|
|
109
|
-
if (this.enableSearch)
|
|
110
|
-
this.search(value);
|
|
111
|
-
});
|
|
112
|
-
this.filters = {
|
|
113
|
-
perPage: this.perPage,
|
|
114
|
-
search: '',
|
|
115
|
-
page: 1,
|
|
116
|
-
lastPage: 1
|
|
117
|
-
};
|
|
118
|
-
if (this.sort) {
|
|
119
|
-
this.filters.sort_by = this.sortBy || `${this.titleField}|asc`;
|
|
120
|
-
}
|
|
121
|
-
//Fetch Items only if it is not present, can be used in places where we load many entries.
|
|
122
|
-
if (this.items.length === 0) {
|
|
123
|
-
this.fetchItemList();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
fetchItemList() {
|
|
127
|
-
this.isLoading = true;
|
|
128
|
-
let request = this.http.get(this.apiUrl, { params: this.filters });
|
|
129
|
-
if (this.cache) {
|
|
130
|
-
request = this.http.cache().get(this.apiUrl, { params: this.filters });
|
|
131
|
-
}
|
|
132
|
-
of().pipe(startWith(true), switchMap((_) => from(request)), finalize(() => this.isLoading = false), untilDestroyed(this)).subscribe((result) => {
|
|
133
|
-
this.items = this.items.concat(result[this.apiDataProperty]);
|
|
134
|
-
if (this.cache) {
|
|
135
|
-
this.cachedItems = this.items;
|
|
136
|
-
}
|
|
137
|
-
this.filters.page = (result === null || result === void 0 ? void 0 : result.current_page) || 1;
|
|
138
|
-
this.filters.lastPage = (result === null || result === void 0 ? void 0 : result.last_page) || 1;
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
setDescribedByIds(ids) {
|
|
142
|
-
this.describedBy = ids.join(' ');
|
|
143
|
-
}
|
|
144
|
-
onContainerClick(event) {
|
|
145
|
-
event.stopPropagation();
|
|
146
|
-
}
|
|
147
|
-
writeValue(data) {
|
|
148
|
-
this.value = data;
|
|
149
|
-
}
|
|
150
|
-
registerOnChange(fn) {
|
|
151
|
-
this.onChange = fn;
|
|
152
|
-
}
|
|
153
|
-
registerOnTouched(fn) {
|
|
154
|
-
this.onTouched = fn;
|
|
155
|
-
}
|
|
156
|
-
setDisabledState(isDisabled) {
|
|
157
|
-
this.disabled = isDisabled;
|
|
158
|
-
}
|
|
159
|
-
getPropertyValue(ele, keyString) {
|
|
160
|
-
keyString = keyString.replace(/\[(\w+)\]/g, ".$1"); // convert indexes to properties
|
|
161
|
-
keyString = keyString.replace(/^\./, ""); // strip a leading dot
|
|
162
|
-
const keyList = keyString.split(".");
|
|
163
|
-
for (let i = 0, n = keyList.length; i < n; ++i) {
|
|
164
|
-
const key = keyList[i];
|
|
165
|
-
if (ele && key in ele) {
|
|
166
|
-
ele = ele[key];
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return ele;
|
|
173
|
-
}
|
|
174
|
-
_handleInput() {
|
|
175
|
-
this.onChange(this.value);
|
|
176
|
-
if (this.multiple)
|
|
177
|
-
this.selectedValue = this.value.map(x => this.dataItems.find(y => y[this.valueField] === x));
|
|
178
|
-
else
|
|
179
|
-
this.selectedValue = this.dataItems.find(x => x[this.valueField] === this.value);
|
|
180
|
-
this.selectedValueChange.emit(this.selectedValue);
|
|
181
|
-
this.selectionChange.emit(this.value);
|
|
182
|
-
}
|
|
183
|
-
get errorState() {
|
|
184
|
-
return (this.ngControl && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty));
|
|
185
|
-
}
|
|
186
|
-
onScroll() {
|
|
187
|
-
if (this.filters.lastPage > this.filters.page) {
|
|
188
|
-
this.filters.page += 1;
|
|
189
|
-
this.fetchItemList();
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
reloadData() {
|
|
193
|
-
this.items = [];
|
|
194
|
-
this.filters.page = 1;
|
|
195
|
-
this.filters.lastPage = 1;
|
|
196
|
-
this.fetchItemList();
|
|
197
|
-
}
|
|
198
|
-
search(event) {
|
|
199
|
-
if (this.searchField) {
|
|
200
|
-
this.filters[this.searchField] = event;
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
this.filters.search = event;
|
|
204
|
-
}
|
|
205
|
-
// we need search field to search in data
|
|
206
|
-
if (this.inDataSearch && this.searchField) {
|
|
207
|
-
this.filterItems(event);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
this.reloadData();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
filterItems(event) {
|
|
214
|
-
if (event) {
|
|
215
|
-
this.items = this.cachedItems.filter((value) => {
|
|
216
|
-
return value[this.searchField].toLowerCase().search(event.toLowerCase()) != -1;
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
this.items = this.cachedItems;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
addItem(event) {
|
|
224
|
-
const dialogRef = this.dialog.open(this.itemComponent, Object.assign({ width: '400px', autoFocus: false, data: {} }, this.addConfig));
|
|
225
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
226
|
-
if (result) {
|
|
227
|
-
this.items.push(result.item);
|
|
228
|
-
this.selectorForm.get('select_value').setValue(result.item[this.valueField]);
|
|
229
|
-
this._handleInput();
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
event.stopPropagation();
|
|
233
|
-
}
|
|
234
|
-
editItem(event) {
|
|
235
|
-
const dialogRef = this.dialog.open(this.itemComponent, Object.assign({ width: '400px', autoFocus: false, data: {
|
|
236
|
-
item: this.selectedValue
|
|
237
|
-
} }, this.editConfig));
|
|
238
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
239
|
-
if (result) {
|
|
240
|
-
this.items = this.items.filter(x => x[this.valueField] !== this.selectedValue[this.valueField]);
|
|
241
|
-
this.items.push(result.item);
|
|
242
|
-
this.selectedValue = null;
|
|
243
|
-
this.selectorForm.get('select_value').setValue(result.item[this.valueField]);
|
|
244
|
-
this._handleInput();
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
event.stopPropagation();
|
|
248
|
-
}
|
|
249
|
-
ngOnDestroy() {
|
|
250
|
-
this.stateChanges.complete();
|
|
251
|
-
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
SearchableSelectorComponent.nextId = 0;
|
|
255
|
-
SearchableSelectorComponent.decorators = [
|
|
256
|
-
{ type: Component, args: [{
|
|
257
|
-
selector: 'app-searchable-selector',
|
|
258
|
-
template: "<div [formGroup]=\"selectorForm\" class=\"searchable-selctor-container\">\r\n <mat-select formControlName=\"select_value\" focused=\"false\" [multiple]=\"multiple\" [required]=\"required\"\r\n autocomplete=\"off\" (selectionChange)=\"_handleInput()\" msInfiniteScroll (infiniteScroll)=\"onScroll()\"\r\n (openedChange)=\"openedChange($event)\">\r\n <mat-form-field *ngIf=\"enableSearch\" class=\"p-1 w-100\">\r\n <input matInput formControlName=\"search\" placeholder=\"Search...\" (keydown)=\"$event.stopPropagation();\"\r\n autocomplete=\"off\">\r\n </mat-form-field>\r\n <div>\r\n <!-- TODO:Implement scroll only for options and have search fixed -->\r\n <mat-option *ngFor=\" let item of dataItems\" [value]=\"getPropertyValue(item,valueField)\">\r\n {{getPropertyValue(item,titleField)}}\r\n </mat-option>\r\n </div>\r\n <div fxlayout=\"column\" class=\"w-100\" fxLayoutAlign=\"center center\">\r\n <mat-spinner class=\"my-4\" color=\"primary\" diameter=\"30\" *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n </mat-select>\r\n <mat-icon *ngIf=\"add\" class=\"relative-icon\" matSuffix (click)=\"addItem($event)\">add_circle_outline</mat-icon>\r\n <mat-icon *ngIf=\"edit && selectedValue\" class=\"relative-icon\" matSuffix (click)=\"editItem($event)\">edit</mat-icon>\r\n</div>",
|
|
259
|
-
providers: [
|
|
260
|
-
{
|
|
261
|
-
provide: MatFormFieldControl,
|
|
262
|
-
useExisting: SearchableSelectorComponent_1
|
|
263
|
-
}
|
|
264
|
-
],
|
|
265
|
-
styles: [".searchable-selctor-container{display:flex}.relative-icon{position:relative;top:-4px}"]
|
|
266
|
-
},] }
|
|
267
|
-
];
|
|
268
|
-
SearchableSelectorComponent.ctorParameters = () => [
|
|
269
|
-
{ type: FormBuilder },
|
|
270
|
-
{ type: FocusMonitor },
|
|
271
|
-
{ type: HttpService },
|
|
272
|
-
{ type: ElementRef },
|
|
273
|
-
{ type: MatDialog },
|
|
274
|
-
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] }
|
|
275
|
-
];
|
|
276
|
-
SearchableSelectorComponent.propDecorators = {
|
|
277
|
-
valueField: [{ type: Input }],
|
|
278
|
-
titleField: [{ type: Input }],
|
|
279
|
-
apiUrl: [{ type: Input }],
|
|
280
|
-
multiple: [{ type: Input }],
|
|
281
|
-
selectedValue: [{ type: Input }],
|
|
282
|
-
selectedValueChange: [{ type: Output }],
|
|
283
|
-
enableSearch: [{ type: Input }],
|
|
284
|
-
add: [{ type: Input }],
|
|
285
|
-
addConfig: [{ type: Input }],
|
|
286
|
-
edit: [{ type: Input }],
|
|
287
|
-
editConfig: [{ type: Input }],
|
|
288
|
-
sort: [{ type: Input }],
|
|
289
|
-
sortBy: [{ type: Input }],
|
|
290
|
-
searchField: [{ type: Input }],
|
|
291
|
-
itemComponent: [{ type: Input }],
|
|
292
|
-
items: [{ type: Input }],
|
|
293
|
-
apiDataProperty: [{ type: Input }],
|
|
294
|
-
cache: [{ type: Input }],
|
|
295
|
-
perPage: [{ type: Input }],
|
|
296
|
-
inDataSearch: [{ type: Input }],
|
|
297
|
-
selectionChange: [{ type: Output }],
|
|
298
|
-
itemsChange: [{ type: Output }],
|
|
299
|
-
required: [{ type: Input }],
|
|
300
|
-
disabled: [{ type: Input }],
|
|
301
|
-
value: [{ type: Input }]
|
|
302
|
-
};
|
|
303
|
-
SearchableSelectorComponent = SearchableSelectorComponent_1 = __decorate([
|
|
304
|
-
UntilDestroy()
|
|
305
|
-
], SearchableSelectorComponent);
|
|
306
|
-
export { SearchableSelectorComponent };
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLFdBQVcsRUFBbUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0lBY3hELDJCQUEyQix5Q0FBM0IsMkJBQTJCO0lBOEV0QyxZQUNFLFdBQXdCLEVBQ2hCLGFBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLFdBQW9DLEVBQ3BDLE1BQWlCLEVBQ0UsU0FBb0I7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Q0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUVGLENBQUE7QUEzUlEsa0NBQU0sR0FBRyxDQUFDLENBQUM7O1lBeENuQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMseTZDQUFtRDtnQkFFbkQsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7d0JBQzVCLFdBQVcsRUFBRSw2QkFBMkI7cUJBQ3pDO2lCQUNGOzthQUNGOzs7WUFwQlEsV0FBVztZQUhYLFlBQVk7WUFTWixXQUFXO1lBUEEsVUFBVTtZQUtyQixTQUFTO1lBSnFDLFNBQVMsdUJBeUczRCxRQUFRLFlBQUksSUFBSTs7O3lCQWxGbEIsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2tDQUNMLE1BQU07MkJBQ04sS0FBSztrQkFDTCxLQUFLO3dCQUNMLEtBQUs7bUJBQ0wsS0FBSzt5QkFDTCxLQUFLO21CQUNMLEtBQUs7cUJBQ0wsS0FBSzswQkFDTCxLQUFLOzRCQUNMLEtBQUs7b0JBQ0wsS0FBSzs4QkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzhCQUNMLE1BQU07MEJBQ04sTUFBTTt1QkF5Qk4sS0FBSzt1QkFTTCxLQUFLO29CQVNMLEtBQUs7O0FBbEVLLDJCQUEyQjtJQVp2QyxZQUFZLEVBQUU7R0FZRiwyQkFBMkIsQ0F3VHZDO1NBeFRZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgZnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQG5nbmVhdC91bnRpbC1kZXN0cm95XCI7XHJcblxyXG5AVW50aWxEZXN0cm95KClcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2VhcmNoYWJsZS1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaGFibGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaGFibGUtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNlYXJjaGFibGVTZWxlY3RvckNvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaGFibGVTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcbiAgQElucHV0KCkgdGl0bGVGaWVsZDogc3RyaW5nID0gJ3RpdGxlJztcclxuICBASW5wdXQoKSBhcGlVcmwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBhbnk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhZGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBhZGRDb25maWc6IGFueTtcclxuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZWRpdENvbmZpZzogYW55O1xyXG4gIEBJbnB1dCgpIHNvcnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNvcnRCeTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXRlbUNvbXBvbmVudDogQ29tcG9uZW50VHlwZTx1bmtub3duPiB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFwaURhdGFQcm9wZXJ0eTogc3RyaW5nID0gJ2RhdGEnO1xyXG4gIEBJbnB1dCgpIGNhY2hlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGVyUGFnZTogbnVtYmVyID0gMjU7XHJcbiAgQElucHV0KCkgaW5EYXRhU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHNlbGVjdG9yRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlID0gJ3NlYXJjaGFibGUtc2VsY3Rvcic7XHJcbiAgaWQgPSBgc2VhcmNoYWJsZS1zZWxjdG9yLSR7U2VhcmNoYWJsZVNlbGVjdG9yQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcbiAgZGVzY3JpYmVkQnkgPSAnJztcclxuICBmaWx0ZXJzOiBhbnk7XHJcbiAgY2FjaGVkSXRlbXM6IGFueVtdID0gW107XHJcblxyXG5cclxuICBnZXQgZW1wdHkoKSB7XHJcbiAgICBjb25zdCB7IHZhbHVlOiB7IHNlbGVjdF92YWx1ZSB9IH0gPSB0aGlzLnNlbGVjdG9yRm9ybTtcclxuICAgIHJldHVybiAhc2VsZWN0X3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7IHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7IH1cclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7IH1cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VsZWN0X3ZhbHVlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnNlbGVjdG9yRm9ybS5kaXNhYmxlKCkgOiB0aGlzLnNlbGVjdG9yRm9ybS5lbmFibGUoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIGlmICh0aGlzLnNlbGVjdG9yRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RvckZvcm0udmFsdWUuc2VsZWN0X3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBzZXQgdmFsdWUoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdG9yRm9ybS5wYXRjaFZhbHVlKHsgc2VsZWN0X3ZhbHVlOiBkYXRhIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0b3JGb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBzZWxlY3RfdmFsdWU6IFtudWxsXSxcclxuICAgICAgc2VhcmNoOiAnJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgX2ZvY3VzTW9uaXRvci5tb25pdG9yKF9lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiAhb3JpZ2luKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuZWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YUl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnNlbGVjdG9yRm9ybS5nZXQoJ3NlYXJjaCcpLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VhcmNoJykuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGFJdGVtcygpOiBhbnlbXSB7XHJcbiAgICBsZXQgaXRlbXM6IGFueVtdID0gW107XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgJiYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPiAwKSlcclxuICAgICAgaXRlbXMgPSBbLi4udGhpcy5zZWxlY3RlZFZhbHVlLCAuLi50aGlzLml0ZW1zXTtcclxuICAgIGVsc2UgaWYgKCghdGhpcy5tdWx0aXBsZSkgJiYgdGhpcy5zZWxlY3RlZFZhbHVlKVxyXG4gICAgICBpdGVtcyA9IFt0aGlzLnNlbGVjdGVkVmFsdWUsIC4uLnRoaXMuaXRlbXNdO1xyXG4gICAgZWxzZVxyXG4gICAgICBpdGVtcyA9IHRoaXMuaXRlbXM7XHJcbiAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcigodiwgaSwgYSkgPT4gYS5maW5kSW5kZXgodiA9PiB2W3RoaXMudmFsdWVGaWVsZF0gPT09IGFbaV1bdGhpcy52YWx1ZUZpZWxkXSkgPT09IGkpO1xyXG4gICAgLy9FbWl0IHRoZSBpdGVtcyB0byBhbnkgY2hpbGQgY29tcG9uZW50XHJcbiAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQoaXRlbXMpO1xyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdG9yRm9ybS5nZXQoJ3NlYXJjaCcpLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXHJcbiAgICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICBpZiAodGhpcy5lbmFibGVTZWFyY2gpXHJcbiAgICAgICAgICB0aGlzLnNlYXJjaCh2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVycyA9IHtcclxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxyXG4gICAgICBzZWFyY2g6ICcnLFxyXG4gICAgICBwYWdlOiAxLFxyXG4gICAgICBsYXN0UGFnZTogMVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc29ydCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnMuc29ydF9ieSA9IHRoaXMuc29ydEJ5IHx8IGAke3RoaXMudGl0bGVGaWVsZH18YXNjYDtcclxuICAgIH1cclxuXHJcbiAgICAvL0ZldGNoIEl0ZW1zIG9ubHkgaWYgaXQgaXMgbm90IHByZXNlbnQsIGNhbiBiZSB1c2VkIGluIHBsYWNlcyB3aGVyZSB3ZSBsb2FkIG1hbnkgZW50cmllcy5cclxuICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZldGNoSXRlbUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoSXRlbUxpc3QoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQodGhpcy5hcGlVcmwsIHsgcGFyYW1zOiB0aGlzLmZpbHRlcnMgfSlcclxuICAgIGlmICh0aGlzLmNhY2hlKSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAuY2FjaGUoKS5nZXQodGhpcy5hcGlVcmwsIHsgcGFyYW1zOiB0aGlzLmZpbHRlcnMgfSlcclxuICAgIH1cclxuICAgIG9mKCkucGlwZShcclxuICAgICAgc3RhcnRXaXRoKHRydWUpLFxyXG4gICAgICBzd2l0Y2hNYXAoKF8pID0+IGZyb20ocmVxdWVzdCkpLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSxcclxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcclxuICAgICkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5jb25jYXQocmVzdWx0W3RoaXMuYXBpRGF0YVByb3BlcnR5XSk7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlKSB7XHJcbiAgICAgICAgdGhpcy5jYWNoZWRJdGVtcyA9IHRoaXMuaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maWx0ZXJzLnBhZ2UgPSByZXN1bHQ/LmN1cnJlbnRfcGFnZSB8fCAxO1xyXG4gICAgICB0aGlzLmZpbHRlcnMubGFzdFBhZ2UgPSByZXN1bHQ/Lmxhc3RfcGFnZSB8fCAxO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJ0eVZhbHVlKGVsZTogYW55LCBrZXlTdHJpbmc6IHN0cmluZykge1xyXG4gICAga2V5U3RyaW5nID0ga2V5U3RyaW5nLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCBcIi4kMVwiKTsgLy8gY29udmVydCBpbmRleGVzIHRvIHByb3BlcnRpZXNcclxuICAgIGtleVN0cmluZyA9IGtleVN0cmluZy5yZXBsYWNlKC9eXFwuLywgXCJcIik7IC8vIHN0cmlwIGEgbGVhZGluZyBkb3RcclxuICAgIGNvbnN0IGtleUxpc3QgPSBrZXlTdHJpbmcuc3BsaXQoXCIuXCIpO1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBrZXlMaXN0Lmxlbmd0aDsgaSA8IG47ICsraSkge1xyXG4gICAgICBjb25zdCBrZXkgPSBrZXlMaXN0W2ldO1xyXG4gICAgICBpZiAoZWxlICYmIGtleSBpbiBlbGUpIHtcclxuICAgICAgICBlbGUgPSBlbGVba2V5XTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBlbGU7XHJcbiAgfVxyXG5cclxuICBfaGFuZGxlSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9ICh0aGlzLnZhbHVlIGFzIFtdKS5tYXAoeCA9PiB0aGlzLmRhdGFJdGVtcy5maW5kKHkgPT4geVt0aGlzLnZhbHVlRmllbGRdID09PSB4KSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuZGF0YUl0ZW1zLmZpbmQoeCA9PiB4W3RoaXMudmFsdWVGaWVsZF0gPT09IHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFZhbHVlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5uZ0NvbnRyb2wudG91Y2hlZCB8fCB0aGlzLm5nQ29udHJvbC5kaXJ0eSkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVxdWlyZWQ6IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG5cclxuICBvblNjcm9sbCgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcnMubGFzdFBhZ2UgPiB0aGlzLmZpbHRlcnMucGFnZSkge1xyXG4gICAgICB0aGlzLmZpbHRlcnMucGFnZSArPSAxO1xyXG4gICAgICB0aGlzLmZldGNoSXRlbUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbG9hZERhdGEoKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB0aGlzLmZpbHRlcnMucGFnZSA9IDE7XHJcbiAgICB0aGlzLmZpbHRlcnMubGFzdFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5mZXRjaEl0ZW1MaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoRmllbGQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzW3RoaXMuc2VhcmNoRmllbGRdID0gZXZlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gZXZlbnQ7XHJcbiAgICB9XHJcbiAgICAvLyB3ZSBuZWVkIHNlYXJjaCBmaWVsZCB0byBzZWFyY2ggaW4gZGF0YVxyXG4gICAgaWYgKHRoaXMuaW5EYXRhU2VhcmNoICYmIHRoaXMuc2VhcmNoRmllbGQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJJdGVtcyhldmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbG9hZERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlckl0ZW1zKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5jYWNoZWRJdGVtcy5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gKHZhbHVlW3RoaXMuc2VhcmNoRmllbGRdIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5zZWFyY2goZXZlbnQudG9Mb3dlckNhc2UoKSkgIT0gLTFcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNhY2hlZEl0ZW1zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkSXRlbShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuaXRlbUNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzQwMHB4JyxcclxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgZGF0YToge30sXHJcbiAgICAgIC4uLnRoaXMuYWRkQ29uZmlnXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLml0ZW1zLnB1c2gocmVzdWx0Lml0ZW0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VsZWN0X3ZhbHVlJykuc2V0VmFsdWUocmVzdWx0Lml0ZW1bdGhpcy52YWx1ZUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGVkaXRJdGVtKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5pdGVtQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxyXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaXRlbTogdGhpcy5zZWxlY3RlZFZhbHVlXHJcbiAgICAgIH0sXHJcbiAgICAgIC4uLnRoaXMuZWRpdENvbmZpZ1xyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT4geFt0aGlzLnZhbHVlRmllbGRdICE9PSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy52YWx1ZUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHJlc3VsdC5pdGVtKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VsZWN0X3ZhbHVlJykuc2V0VmFsdWUocmVzdWx0Lml0ZW1bdGhpcy52YWx1ZUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { SearchableSelectorComponent } from './searchable-selector.component';
|
|
4
|
-
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatSelectInfiniteScrollDirective } from './mat-select-infinite-scroll.directive';
|
|
7
|
-
import { MaterialModule } from '../material.module';
|
|
8
|
-
export class SearchableSelectorModule {
|
|
9
|
-
}
|
|
10
|
-
SearchableSelectorModule.decorators = [
|
|
11
|
-
{ type: NgModule, args: [{
|
|
12
|
-
imports: [
|
|
13
|
-
CommonModule,
|
|
14
|
-
ReactiveFormsModule,
|
|
15
|
-
FlexLayoutModule,
|
|
16
|
-
MaterialModule
|
|
17
|
-
],
|
|
18
|
-
declarations: [
|
|
19
|
-
SearchableSelectorComponent,
|
|
20
|
-
MatSelectInfiniteScrollDirective
|
|
21
|
-
],
|
|
22
|
-
exports: [
|
|
23
|
-
SearchableSelectorComponent,
|
|
24
|
-
MatSelectInfiniteScrollDirective
|
|
25
|
-
]
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBa0JwRCxNQUFNLE9BQU8sd0JBQXdCOzs7WUFoQnBDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osMkJBQTJCO29CQUMzQixnQ0FBZ0M7aUJBQ2pDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwyQkFBMkI7b0JBQzNCLGdDQUFnQztpQkFDakM7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoYWJsZS1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vbWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNlYXJjaGFibGVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIE1hdFNlbGVjdEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { FormBuilder } from '@angular/forms';
|
|
3
|
-
export class OnOffSwitchComponent {
|
|
4
|
-
constructor(fb) {
|
|
5
|
-
this.fb = fb;
|
|
6
|
-
this.slideToggle = this.fb.group({
|
|
7
|
-
toggle: [""]
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
this.slideToggle.get('toggle').setValue(this.value);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
OnOffSwitchComponent.decorators = [
|
|
15
|
-
{ type: Component, args: [{
|
|
16
|
-
selector: 'app-on-off-switch',
|
|
17
|
-
template: "<form [formGroup]=\"slideToggle\">\r\n <mat-slide-toggle formControlName=\"toggle\">On / Off\r\n </mat-slide-toggle>\r\n</form>\r\n",
|
|
18
|
-
styles: [""]
|
|
19
|
-
},] }
|
|
20
|
-
];
|
|
21
|
-
OnOffSwitchComponent.ctorParameters = () => [
|
|
22
|
-
{ type: FormBuilder }
|
|
23
|
-
];
|
|
24
|
-
OnOffSwitchComponent.propDecorators = {
|
|
25
|
-
value: [{ type: Input }]
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tb2ZmLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWZlYXR1cmUvb24tb2ZmLXN3aXRjaC9vbi1vZmYtc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFReEQsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7WUFuQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGlKQUE2Qzs7YUFFOUM7OztZQU5RLFdBQVc7OztvQkFVakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtb24tb2ZmLXN3aXRjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29uLW9mZi1zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29uLW9mZi1zd2l0Y2guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE9uT2ZmU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgdmFsdWU6IGJvb2xlYW47XHJcbiAgc2xpZGVUb2dnbGU6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuc2xpZGVUb2dnbGUgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdG9nZ2xlOiBbXCJcIl1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2xpZGVUb2dnbGUuZ2V0KCd0b2dnbGUnKS5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
3
|
-
import { ErrorHandlerService } from '../core/error-handler.service';
|
|
4
|
-
import { StorageService } from '../core/storage.service';
|
|
5
|
-
import { TechlifyFeatureService } from './techlify-feature.service';
|
|
6
|
-
export class TechlifyFeatureEnabledDirective {
|
|
7
|
-
constructor(el, featureService, errorHandler, storage) {
|
|
8
|
-
this.el = el;
|
|
9
|
-
this.featureService = featureService;
|
|
10
|
-
this.errorHandler = errorHandler;
|
|
11
|
-
this.storage = storage;
|
|
12
|
-
this.localFeatures = [];
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
if (!this.storage.getItem('features')) {
|
|
16
|
-
this.getFeatures();
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
this.checkForFeatureEnabled();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
getFeatures() {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
try {
|
|
25
|
-
let features = yield this.featureService.getFeatures();
|
|
26
|
-
for (let feature of features.data) {
|
|
27
|
-
if (!feature.client_feature) {
|
|
28
|
-
if (feature.is_enabled_default) {
|
|
29
|
-
this.localFeatures.push(feature.code);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
if (feature.client_feature.is_enabled) {
|
|
34
|
-
this.localFeatures.push(feature.code);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
this.storage.setItem("features", this.localFeatures);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
this.errorHandler.handleError(error);
|
|
42
|
-
}
|
|
43
|
-
finally {
|
|
44
|
-
this.checkForFeatureEnabled();
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
checkForFeatureEnabled() {
|
|
49
|
-
try {
|
|
50
|
-
let features = this.storage.getItem('features');
|
|
51
|
-
let features_split = features.split(',');
|
|
52
|
-
if (features_split.includes(this.enabledFeature)) {
|
|
53
|
-
this.el.nativeElement.style.display = "show";
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.el.nativeElement.remove();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
this.errorHandler.handleError(error);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
TechlifyFeatureEnabledDirective.decorators = [
|
|
65
|
-
{ type: Directive, args: [{
|
|
66
|
-
selector: '[techlifyFeatureEnabled]'
|
|
67
|
-
},] }
|
|
68
|
-
];
|
|
69
|
-
TechlifyFeatureEnabledDirective.ctorParameters = () => [
|
|
70
|
-
{ type: ElementRef },
|
|
71
|
-
{ type: TechlifyFeatureService },
|
|
72
|
-
{ type: ErrorHandlerService },
|
|
73
|
-
{ type: StorageService }
|
|
74
|
-
];
|
|
75
|
-
TechlifyFeatureEnabledDirective.propDecorators = {
|
|
76
|
-
enabledFeature: [{ type: Input, args: ['techlifyFeatureEnabled',] }]
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS1lbmFibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktZmVhdHVyZS90ZWNobGlmeS1mZWF0dXJlLWVuYWJsZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3BFLE1BQU0sT0FBTywrQkFBK0I7SUFNMUMsWUFDVSxFQUFjLEVBQ2QsY0FBc0MsRUFDdEMsWUFBaUMsRUFDakMsT0FBdUI7UUFIdkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFQakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7SUFTMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFSyxXQUFXOztZQUNmLElBQUk7Z0JBQ0YsSUFBSSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUV2RCxLQUFLLElBQUksT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO3dCQUMzQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTs0QkFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN2QztxQkFDRjt5QkFBTTt3QkFDTCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFOzRCQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3ZDO3FCQUNGO2lCQUVGO2dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QztvQkFBUztnQkFDUixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTthQUM5QjtRQUNILENBQUM7S0FBQTtJQUVELHNCQUFzQjtRQUNwQixJQUFJO1lBQ0YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDaEQsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUV6QyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQzthQUM5QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNoQztTQUVGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7OztZQS9ERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjthQUNyQzs7O1lBUG1CLFVBQVU7WUFHckIsc0JBQXNCO1lBRnRCLG1CQUFtQjtZQUNuQixjQUFjOzs7NkJBVXBCLEtBQUssU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi90ZWNobGlmeS1mZWF0dXJlLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdGVjaGxpZnlGZWF0dXJlRW5hYmxlZF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWNobGlmeUZlYXR1cmVFbmFibGVkRGlyZWN0aXZlIHtcclxuXHJcbiAgZmVhdHVyZXM6IGFueTtcclxuICBsb2NhbEZlYXR1cmVzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgndGVjaGxpZnlGZWF0dXJlRW5hYmxlZCcpIGVuYWJsZWRGZWF0dXJlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZmVhdHVyZVNlcnZpY2U6IFRlY2hsaWZ5RmVhdHVyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2ZlYXR1cmVzJykpIHtcclxuICAgICAgdGhpcy5nZXRGZWF0dXJlcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja0ZvckZlYXR1cmVFbmFibGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRGZWF0dXJlcygpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBmZWF0dXJlcyA9IGF3YWl0IHRoaXMuZmVhdHVyZVNlcnZpY2UuZ2V0RmVhdHVyZXMoKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGZlYXR1cmUgb2YgZmVhdHVyZXMuZGF0YSkge1xyXG4gICAgICAgIGlmICghZmVhdHVyZS5jbGllbnRfZmVhdHVyZSkge1xyXG4gICAgICAgICAgaWYgKGZlYXR1cmUuaXNfZW5hYmxlZF9kZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxGZWF0dXJlcy5wdXNoKGZlYXR1cmUuY29kZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChmZWF0dXJlLmNsaWVudF9mZWF0dXJlLmlzX2VuYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbEZlYXR1cmVzLnB1c2goZmVhdHVyZS5jb2RlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKFwiZmVhdHVyZXNcIiwgdGhpcy5sb2NhbEZlYXR1cmVzKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMuY2hlY2tGb3JGZWF0dXJlRW5hYmxlZCgpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0ZvckZlYXR1cmVFbmFibGVkKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGZlYXR1cmVzID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2ZlYXR1cmVzJyk7XHJcbiAgICAgIGxldCBmZWF0dXJlc19zcGxpdCA9IGZlYXR1cmVzLnNwbGl0KCcsJyk7XHJcblxyXG4gICAgICBpZiAoZmVhdHVyZXNfc3BsaXQuaW5jbHVkZXModGhpcy5lbmFibGVkRmVhdHVyZSkpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwic2hvd1wiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|