ngx-techlify-core 11.5.0 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2020/lib/action-popup/action-popup.component.mjs +34 -0
- package/{esm2015/lib/action-popup/action-popup.model.js → esm2020/lib/action-popup/action-popup.model.mjs} +3 -3
- package/esm2020/lib/action-popup/action-popup.module.mjs +32 -0
- package/{esm2015/lib/action-popup/index.js → esm2020/lib/action-popup/index.mjs} +3 -3
- package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +51 -0
- package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +40 -0
- package/esm2020/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-log-list/audit-log-list.component.mjs +139 -0
- package/esm2020/lib/audit-log/audit-log-list/audit-log-list.module.mjs +48 -0
- package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +74 -0
- package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +40 -0
- package/esm2020/lib/audit-log/audit-log-routing.module.mjs +25 -0
- package/esm2020/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-log-view/audit-log-view.component.mjs +51 -0
- package/esm2020/lib/audit-log/audit-log-view/audit-log-view.module.mjs +32 -0
- package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +56 -0
- package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +32 -0
- package/esm2020/lib/audit-log/audit-log.module.mjs +31 -0
- package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +18 -0
- package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +37 -0
- package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +32 -0
- package/{esm2015/lib/base-model/index.js → esm2020/lib/base-model/index.mjs} +4 -4
- package/esm2020/lib/base-model/techlify-form-component.class.mjs +49 -0
- package/esm2020/lib/base-model/techlify-listing-component.class.mjs +41 -0
- package/esm2020/lib/base-model/techlify-service.class.mjs +64 -0
- package/esm2020/lib/core/alert.service.mjs +38 -0
- package/esm2020/lib/core/api-prefix.interceptor.mjs +26 -0
- package/esm2020/lib/core/authentication.guard.mjs +35 -0
- package/esm2020/lib/core/authentication.service.mjs +54 -0
- package/esm2020/lib/core/cache.interceptor.mjs +58 -0
- package/esm2020/lib/core/config.service.mjs +45 -0
- package/esm2020/lib/core/core.module.mjs +63 -0
- package/esm2020/lib/core/credentials.service.mjs +79 -0
- package/esm2020/lib/core/dataManager.service.mjs +119 -0
- package/esm2020/lib/core/error-handler.interceptor.mjs +48 -0
- package/esm2020/lib/core/error-handler.service.mjs +55 -0
- package/esm2020/lib/core/filter.service.mjs +37 -0
- package/esm2020/lib/core/form-validator.service.mjs +24 -0
- package/esm2020/lib/core/header.interceptor.mjs +24 -0
- package/esm2020/lib/core/http-cache.service.mjs +107 -0
- package/esm2020/lib/core/http.service.mjs +84 -0
- package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +22 -21
- package/{esm2015/lib/core/logger.service.js → esm2020/lib/core/logger.service.mjs} +100 -100
- package/esm2020/lib/core/route-reusable-strategy.mjs +36 -0
- package/esm2020/lib/core/snack/snack.component.mjs +33 -0
- package/esm2020/lib/core/snack/snack.module.mjs +36 -0
- package/esm2020/lib/core/storage.service.mjs +38 -0
- package/esm2020/lib/core/techlify-config.model.mjs +28 -0
- package/esm2020/lib/core/token.interceptor.mjs +28 -0
- package/esm2020/lib/data-table/data-table.component.mjs +208 -0
- package/esm2020/lib/data-table/data-table.model.mjs +11 -0
- package/esm2020/lib/data-table/data-table.module.mjs +36 -0
- package/{esm2015/lib/data-table/index.js → esm2020/lib/data-table/index.mjs} +3 -3
- package/{esm2015/lib/date-validator.js → esm2020/lib/date-validator.mjs} +10 -10
- package/esm2020/lib/document-viewer/document-viewer.component.mjs +65 -0
- package/esm2020/lib/document-viewer/document-viewer.module.mjs +36 -0
- package/{esm2015/lib/document-viewer/index.js → esm2020/lib/document-viewer/index.mjs} +3 -3
- package/{esm2015/lib/document-viewer/viewer-config.model.js → esm2020/lib/document-viewer/viewer-config.model.mjs} +3 -3
- package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +32 -0
- package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +76 -0
- package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +36 -0
- package/{esm2015/lib/email-subscription/email-subscription-for-user/index.js → esm2020/lib/email-subscription/email-subscription-for-user/index.mjs} +2 -2
- package/esm2020/lib/email-subscription/email-subscription-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +105 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +44 -0
- package/{esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js → esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs} +2 -2
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +34 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +161 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +44 -0
- package/{esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js → esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs} +1 -1
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +22 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +101 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +43 -0
- package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs} +2 -2
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +34 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +165 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +48 -0
- package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs} +2 -2
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +52 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +40 -0
- package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs} +2 -2
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +18 -0
- package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +22 -0
- package/esm2020/lib/email-subscription/email-subscription.module.mjs +22 -0
- package/esm2020/lib/entity-files/entity-file-form/entity-file-form.component.mjs +144 -0
- package/esm2020/lib/entity-files/entity-file.service.mjs +43 -0
- package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +320 -0
- package/esm2020/lib/entity-files/entity-files-view-all.module.mjs +66 -0
- package/{esm2015/lib/entity-files/index.js → esm2020/lib/entity-files/index.mjs} +3 -3
- package/esm2020/lib/export-excel/export-excel-button/export-excel-button.component.mjs +32 -0
- package/esm2020/lib/export-excel/export-excel.module.mjs +24 -0
- package/esm2020/lib/file-dropper/file-dropper.component.mjs +125 -0
- package/{esm2015/lib/file-dropper/file-dropper.model.js → esm2020/lib/file-dropper/file-dropper.model.mjs} +3 -3
- package/esm2020/lib/file-dropper/file-dropper.module.mjs +30 -0
- package/{esm2015/lib/file-dropper/index.js → esm2020/lib/file-dropper/index.mjs} +3 -3
- package/esm2020/lib/import-csv/data-import/data-import.component.mjs +18 -0
- package/esm2020/lib/import-csv/failed-items-list/failed-items-list.component.mjs +35 -0
- package/esm2020/lib/import-csv/field-mapping/field-mapping.component.mjs +153 -0
- package/esm2020/lib/import-csv/import-csv-config.mjs +2 -0
- package/esm2020/lib/import-csv/import-csv.component.mjs +198 -0
- package/esm2020/lib/import-csv/import-csv.module.mjs +74 -0
- package/esm2020/lib/import-csv/import-history-list/import-history-list.component.mjs +71 -0
- package/esm2020/lib/import-csv/import-success/import-success.component.mjs +24 -0
- package/{esm2015/lib/loader/index.js → esm2020/lib/loader/index.mjs} +2 -2
- package/esm2020/lib/loader/loader.component.mjs +23 -0
- package/esm2020/lib/loader/loader.module.mjs +28 -0
- package/esm2020/lib/login-history-for-user/login-history-for-user-routing.module.mjs +26 -0
- package/esm2020/lib/login-history-for-user/login-history-for-user.component.mjs +92 -0
- package/esm2020/lib/login-history-for-user/login-history-for-user.module.mjs +44 -0
- package/esm2020/lib/material.module.mjs +115 -0
- package/esm2020/lib/note/comment-form/comment-form.component.mjs +77 -0
- package/{esm2015/lib/note/index.js → esm2020/lib/note/index.mjs} +4 -4
- package/esm2020/lib/note/note-form/note-form.component.mjs +79 -0
- package/esm2020/lib/note/note-list/note-list.component.mjs +148 -0
- package/esm2020/lib/note/note.module.mjs +54 -0
- package/esm2020/lib/note/note.service.mjs +29 -0
- package/esm2020/lib/read-more/read-more.component.mjs +43 -0
- package/esm2020/lib/read-more/read-more.module.mjs +30 -0
- package/esm2020/lib/request-helper/request-helper.service.mjs +106 -0
- package/{esm2015/lib/searchable-selector/index.js → esm2020/lib/searchable-selector/index.mjs} +3 -3
- package/esm2020/lib/searchable-selector/mat-select-infinite-scroll.directive.mjs +84 -0
- package/esm2020/lib/searchable-selector/searchable-selector.component.mjs +350 -0
- package/esm2020/lib/searchable-selector/searchable-selector.module.mjs +41 -0
- package/esm2020/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +24 -0
- package/esm2020/lib/techlify-feature/techlify-feature-enabled.directive.mjs +73 -0
- package/esm2020/lib/techlify-feature/techlify-feature-listing.component.mjs +172 -0
- package/esm2020/lib/techlify-feature/techlify-feature.module.mjs +48 -0
- package/{esm2015/lib/techlify-feature/techlify-feature.routing.js → esm2020/lib/techlify-feature/techlify-feature.routing.mjs} +12 -12
- package/esm2020/lib/techlify-feature/techlify-feature.service.mjs +26 -0
- package/{esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js → esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs} +15 -15
- package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +285 -0
- package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +38 -0
- package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +180 -0
- package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +46 -0
- package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +114 -0
- package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +38 -0
- package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +28 -0
- package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +144 -0
- package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +47 -0
- package/esm2020/lib/techlify-update/techlify-update-routing.module.mjs +28 -0
- package/esm2020/lib/techlify-update/techlify-update.module.mjs +51 -0
- package/esm2020/lib/techlify-update/techlify-update.service.mjs +41 -0
- package/esm2020/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +162 -0
- package/esm2020/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +77 -0
- package/esm2020/lib/techlify-update/update-notifier/update-notifier.component.mjs +53 -0
- package/esm2020/lib/techlify-update/update-notifier/update-notifier.module.mjs +39 -0
- package/esm2020/lib/techlify-update/update-view/update-view.component.mjs +38 -0
- package/esm2020/lib/techlify-update/update-view/update-view.module.mjs +30 -0
- package/esm2020/lib/timeline-filter/calculate-timeline.mjs +101 -0
- package/{esm2015/lib/timeline-filter/index.js → esm2020/lib/timeline-filter/index.mjs} +4 -4
- package/esm2020/lib/timeline-filter/timeline-filter-routing.module.mjs +18 -0
- package/esm2020/lib/timeline-filter/timeline-filter.component.mjs +237 -0
- package/esm2020/lib/timeline-filter/timeline-filter.module.mjs +60 -0
- package/{esm2015/lib/timeline-filter/timeline.model.js → esm2020/lib/timeline-filter/timeline.model.mjs} +18 -18
- package/{esm2015/lib/utility/date-utils.service.js → esm2020/lib/utility/date-utils.service.mjs} +50 -48
- package/{esm2015/lib/utility/index.js → esm2020/lib/utility/index.mjs} +4 -4
- package/esm2020/lib/utility/num-items-selector.component.mjs +31 -0
- package/esm2020/lib/utility/number-selector.component.mjs +42 -0
- package/esm2020/lib/utility/utility.module.mjs +28 -0
- package/esm2020/ngx-techlify-core.mjs +5 -0
- package/esm2020/public-api.mjs +97 -0
- package/fesm2015/ngx-techlify-core.mjs +7890 -0
- package/fesm2015/ngx-techlify-core.mjs.map +1 -0
- package/fesm2020/ngx-techlify-core.mjs +7795 -0
- package/fesm2020/ngx-techlify-core.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/action-popup/action-popup.component.d.ts +18 -14
- package/lib/action-popup/action-popup.component.d.ts.map +1 -0
- package/lib/action-popup/action-popup.model.d.ts +6 -5
- package/lib/action-popup/action-popup.model.d.ts.map +1 -0
- package/lib/action-popup/action-popup.module.d.ts +11 -2
- package/lib/action-popup/action-popup.module.d.ts.map +1 -0
- package/lib/action-popup/index.d.ts +3 -2
- package/lib/action-popup/index.d.ts.map +1 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +16 -12
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts.map +1 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +14 -2
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +36 -32
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +16 -2
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +23 -19
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts.map +1 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +14 -2
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +21 -17
- package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +12 -2
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +19 -15
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts.map +1 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +12 -2
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts.map +1 -0
- package/lib/audit-log/audit-log.module.d.ts +11 -2
- package/lib/audit-log/audit-log.module.d.ts.map +1 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +8 -2
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts.map +1 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +15 -11
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts.map +1 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +12 -2
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts.map +1 -0
- package/lib/base-model/index.d.ts +4 -3
- package/lib/base-model/index.d.ts.map +1 -0
- package/lib/base-model/techlify-form-component.class.d.ts +44 -43
- package/lib/base-model/techlify-form-component.class.d.ts.map +1 -0
- package/lib/base-model/techlify-listing-component.class.d.ts +48 -47
- package/lib/base-model/techlify-listing-component.class.d.ts.map +1 -0
- package/lib/base-model/techlify-service.class.d.ts +53 -52
- package/lib/base-model/techlify-service.class.d.ts.map +1 -0
- package/lib/core/alert.service.d.ts +16 -12
- package/lib/core/alert.service.d.ts.map +1 -0
- package/lib/core/api-prefix.interceptor.d.ts +15 -11
- package/lib/core/api-prefix.interceptor.d.ts.map +1 -0
- package/lib/core/authentication.guard.d.ts +14 -10
- package/lib/core/authentication.guard.d.ts.map +1 -0
- package/lib/core/authentication.service.d.ts +27 -23
- package/lib/core/authentication.service.d.ts.map +1 -0
- package/lib/core/cache.interceptor.d.ts +25 -21
- package/lib/core/cache.interceptor.d.ts.map +1 -0
- package/lib/core/config.service.d.ts +23 -19
- package/lib/core/config.service.d.ts.map +1 -0
- package/lib/core/core.module.d.ts +12 -3
- package/lib/core/core.module.d.ts.map +1 -0
- package/lib/core/credentials.service.d.ts +40 -36
- package/lib/core/credentials.service.d.ts.map +1 -0
- package/lib/core/dataManager.service.d.ts +74 -70
- package/lib/core/dataManager.service.d.ts.map +1 -0
- package/lib/core/error-handler.interceptor.d.ts +18 -14
- package/lib/core/error-handler.interceptor.d.ts.map +1 -0
- package/lib/core/error-handler.service.d.ts +18 -14
- package/lib/core/error-handler.service.d.ts.map +1 -0
- package/lib/core/filter.service.d.ts +12 -0
- package/lib/core/filter.service.d.ts.map +1 -0
- package/lib/core/form-validator.service.d.ts +12 -8
- package/lib/core/form-validator.service.d.ts.map +1 -0
- package/lib/core/header.interceptor.d.ts +12 -8
- package/lib/core/header.interceptor.d.ts.map +1 -0
- package/lib/core/http-cache.service.d.ts +58 -54
- package/lib/core/http-cache.service.d.ts.map +1 -0
- package/lib/core/http.service.d.ts +60 -56
- package/lib/core/http.service.d.ts.map +1 -0
- package/lib/core/index.d.ts +22 -20
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/logger.service.d.ts +86 -85
- package/lib/core/logger.service.d.ts.map +1 -0
- package/lib/core/route-reusable-strategy.d.ts +17 -13
- package/lib/core/route-reusable-strategy.d.ts.map +1 -0
- package/lib/core/snack/snack.component.d.ts +14 -8
- package/lib/core/snack/snack.component.d.ts.map +1 -0
- package/lib/core/snack/snack.module.d.ts +11 -2
- package/lib/core/snack/snack.module.d.ts.map +1 -0
- package/lib/core/storage.service.d.ts +19 -15
- package/lib/core/storage.service.d.ts.map +1 -0
- package/lib/core/techlify-config.model.d.ts +19 -18
- package/lib/core/techlify-config.model.d.ts.map +1 -0
- package/lib/core/token.interceptor.d.ts +15 -11
- package/lib/core/token.interceptor.d.ts.map +1 -0
- package/lib/data-table/data-table.component.d.ts +64 -60
- package/lib/data-table/data-table.component.d.ts.map +1 -0
- package/lib/data-table/data-table.model.d.ts +47 -46
- package/lib/data-table/data-table.model.d.ts.map +1 -0
- package/lib/data-table/data-table.module.d.ts +12 -2
- package/lib/data-table/data-table.module.d.ts.map +1 -0
- package/lib/data-table/index.d.ts +3 -2
- package/lib/data-table/index.d.ts.map +1 -0
- package/lib/date-validator.d.ts +2 -1
- package/lib/date-validator.d.ts.map +1 -0
- package/lib/document-viewer/document-viewer.component.d.ts +20 -16
- package/lib/document-viewer/document-viewer.component.d.ts.map +1 -0
- package/lib/document-viewer/document-viewer.module.d.ts +12 -2
- package/lib/document-viewer/document-viewer.module.d.ts.map +1 -0
- package/lib/document-viewer/index.d.ts +3 -2
- package/lib/document-viewer/index.d.ts.map +1 -0
- package/lib/document-viewer/viewer-config.model.d.ts +6 -5
- package/lib/document-viewer/viewer-config.model.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +13 -7
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +21 -17
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +13 -2
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-for-user/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-for-user/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +36 -32
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +15 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +15 -9
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +34 -30
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +15 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +9 -2
- package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +36 -32
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +15 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +15 -9
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +36 -32
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +16 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +17 -13
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +14 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +2 -1
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +8 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +9 -2
- package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts.map +1 -0
- package/lib/email-subscription/email-subscription.module.d.ts +9 -2
- package/lib/email-subscription/email-subscription.module.d.ts.map +1 -0
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +42 -38
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts.map +1 -0
- package/lib/entity-files/entity-file.service.d.ts +15 -11
- package/lib/entity-files/entity-file.service.d.ts.map +1 -0
- package/lib/entity-files/entity-files-view-all.component.d.ts +69 -65
- package/lib/entity-files/entity-files-view-all.component.d.ts.map +1 -0
- package/lib/entity-files/entity-files-view-all.module.d.ts +20 -2
- package/lib/entity-files/entity-files-view-all.module.d.ts.map +1 -0
- package/lib/entity-files/index.d.ts +3 -2
- package/lib/entity-files/index.d.ts.map +1 -0
- package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +12 -8
- package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts.map +1 -0
- package/lib/export-excel/export-excel.module.d.ts +10 -2
- package/lib/export-excel/export-excel.module.d.ts.map +1 -0
- package/lib/file-dropper/file-dropper.component.d.ts +37 -33
- package/lib/file-dropper/file-dropper.component.d.ts.map +1 -0
- package/lib/file-dropper/file-dropper.model.d.ts +11 -10
- package/lib/file-dropper/file-dropper.model.d.ts.map +1 -0
- package/lib/file-dropper/file-dropper.module.d.ts +11 -2
- package/lib/file-dropper/file-dropper.module.d.ts.map +1 -0
- package/lib/file-dropper/index.d.ts +3 -2
- package/lib/file-dropper/index.d.ts.map +1 -0
- package/lib/import-csv/data-import/data-import.component.d.ts +10 -6
- package/lib/import-csv/data-import/data-import.component.d.ts.map +1 -0
- package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +16 -12
- package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts.map +1 -0
- package/lib/import-csv/field-mapping/field-mapping.component.d.ts +38 -34
- package/lib/import-csv/field-mapping/field-mapping.component.d.ts.map +1 -0
- package/lib/import-csv/import-csv-config.d.ts +18 -17
- package/lib/import-csv/import-csv-config.d.ts.map +1 -0
- package/lib/import-csv/import-csv.component.d.ts +37 -33
- package/lib/import-csv/import-csv.component.d.ts.map +1 -0
- package/lib/import-csv/import-csv.module.d.ts +21 -2
- package/lib/import-csv/import-csv.module.d.ts.map +1 -0
- package/lib/import-csv/import-history-list/import-history-list.component.d.ts +25 -21
- package/lib/import-csv/import-history-list/import-history-list.component.d.ts.map +1 -0
- package/lib/import-csv/import-success/import-success.component.d.ts +12 -8
- package/lib/import-csv/import-success/import-success.component.d.ts.map +1 -0
- package/lib/loader/index.d.ts +2 -1
- package/lib/loader/index.d.ts.map +1 -0
- package/lib/loader/loader.component.d.ts +12 -8
- package/lib/loader/loader.component.d.ts.map +1 -0
- package/lib/loader/loader.module.d.ts +10 -2
- package/lib/loader/loader.module.d.ts.map +1 -0
- package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +8 -2
- package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts.map +1 -0
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +27 -23
- package/lib/login-history-for-user/login-history-for-user.component.d.ts.map +1 -0
- package/lib/login-history-for-user/login-history-for-user.module.d.ts +15 -2
- package/lib/login-history-for-user/login-history-for-user.module.d.ts.map +1 -0
- package/lib/material.module.d.ts +27 -2
- package/lib/material.module.d.ts.map +1 -0
- package/lib/note/comment-form/comment-form.component.d.ts +26 -22
- package/lib/note/comment-form/comment-form.component.d.ts.map +1 -0
- package/lib/note/index.d.ts +4 -3
- package/lib/note/index.d.ts.map +1 -0
- package/lib/note/note-form/note-form.component.d.ts +31 -27
- package/lib/note/note-form/note-form.component.d.ts.map +1 -0
- package/lib/note/note-list/note-list.component.d.ts +32 -28
- package/lib/note/note-list/note-list.component.d.ts.map +1 -0
- package/lib/note/note.module.d.ts +17 -2
- package/lib/note/note.module.d.ts.map +1 -0
- package/lib/note/note.service.d.ts +13 -9
- package/lib/note/note.service.d.ts.map +1 -0
- package/lib/read-more/read-more.component.d.ts +16 -12
- package/lib/read-more/read-more.component.d.ts.map +1 -0
- package/lib/read-more/read-more.module.d.ts +11 -2
- package/lib/read-more/read-more.module.d.ts.map +1 -0
- package/lib/request-helper/request-helper.service.d.ts +41 -0
- package/lib/request-helper/request-helper.service.d.ts.map +1 -0
- package/lib/searchable-selector/index.d.ts +3 -2
- package/lib/searchable-selector/index.d.ts.map +1 -0
- package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +27 -23
- package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts.map +1 -0
- package/lib/searchable-selector/searchable-selector.component.d.ts +85 -81
- package/lib/searchable-selector/searchable-selector.component.d.ts.map +1 -0
- package/lib/searchable-selector/searchable-selector.module.d.ts +13 -2
- package/lib/searchable-selector/searchable-selector.module.d.ts.map +1 -0
- package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +13 -9
- package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts.map +1 -0
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +21 -17
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts.map +1 -0
- package/lib/techlify-feature/techlify-feature-listing.component.d.ts +41 -37
- package/lib/techlify-feature/techlify-feature-listing.component.d.ts.map +1 -0
- package/lib/techlify-feature/techlify-feature.module.d.ts +17 -2
- package/lib/techlify-feature/techlify-feature.module.d.ts.map +1 -0
- package/lib/techlify-feature/techlify-feature.routing.d.ts +3 -2
- package/lib/techlify-feature/techlify-feature.routing.d.ts.map +1 -0
- package/lib/techlify-feature/techlify-feature.service.d.ts +12 -8
- package/lib/techlify-feature/techlify-feature.service.d.ts.map +1 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +13 -12
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts.map +1 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +80 -76
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts.map +1 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +13 -2
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts.map +1 -0
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +62 -58
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts.map +1 -0
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +15 -2
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +34 -30
- package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +13 -2
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +8 -2
- package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +35 -31
- package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +16 -2
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update-routing.module.d.ts +8 -2
- package/lib/techlify-update/techlify-update-routing.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update.module.d.ts +17 -2
- package/lib/techlify-update/techlify-update.module.d.ts.map +1 -0
- package/lib/techlify-update/techlify-update.service.d.ts +17 -13
- package/lib/techlify-update/techlify-update.service.d.ts.map +1 -0
- package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +35 -31
- package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts.map +1 -0
- package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +29 -25
- package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts.map +1 -0
- package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +20 -16
- package/lib/techlify-update/update-notifier/update-notifier.component.d.ts.map +1 -0
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +14 -2
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts.map +1 -0
- package/lib/techlify-update/update-view/update-view.component.d.ts +18 -14
- package/lib/techlify-update/update-view/update-view.component.d.ts.map +1 -0
- package/lib/techlify-update/update-view/update-view.module.d.ts +11 -2
- package/lib/techlify-update/update-view/update-view.module.d.ts.map +1 -0
- package/lib/timeline-filter/calculate-timeline.d.ts +7 -6
- package/lib/timeline-filter/calculate-timeline.d.ts.map +1 -0
- package/lib/timeline-filter/index.d.ts +4 -3
- package/lib/timeline-filter/index.d.ts.map +1 -0
- package/lib/timeline-filter/timeline-filter-routing.module.d.ts +8 -2
- package/lib/timeline-filter/timeline-filter-routing.module.d.ts.map +1 -0
- package/lib/timeline-filter/timeline-filter.component.d.ts +66 -61
- package/lib/timeline-filter/timeline-filter.component.d.ts.map +1 -0
- package/lib/timeline-filter/timeline-filter.module.d.ts +19 -2
- package/lib/timeline-filter/timeline-filter.module.d.ts.map +1 -0
- package/lib/timeline-filter/timeline.model.d.ts +18 -17
- package/lib/timeline-filter/timeline.model.d.ts.map +1 -0
- package/lib/utility/date-utils.service.d.ts +25 -21
- package/lib/utility/date-utils.service.d.ts.map +1 -0
- package/lib/utility/index.d.ts +4 -3
- package/lib/utility/index.d.ts.map +1 -0
- package/lib/utility/num-items-selector.component.d.ts +20 -16
- package/lib/utility/num-items-selector.component.d.ts.map +1 -0
- package/lib/utility/number-selector.component.d.ts +24 -20
- package/lib/utility/number-selector.component.d.ts.map +1 -0
- package/lib/utility/utility.module.d.ts +11 -2
- package/lib/utility/utility.module.d.ts.map +1 -0
- package/ngx-techlify-core.d.ts.map +1 -0
- package/package.json +21 -9
- package/public-api.d.ts +94 -92
- package/public-api.d.ts.map +1 -0
- package/src/lib/timeline-filter/README.md +60 -0
- package/bundles/ngx-techlify-core.umd.js +0 -8449
- 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.module.js +0 -26
- 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/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/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/document-viewer/document-viewer.component.js +0 -58
- package/esm2015/lib/document-viewer/document-viewer.module.js +0 -25
- 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-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-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-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-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-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-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 -147
- package/esm2015/lib/entity-files/entity-file.service.js +0 -45
- package/esm2015/lib/entity-files/entity-files-view-all.component.js +0 -304
- package/esm2015/lib/entity-files/entity-files-view-all.module.js +0 -40
- 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.module.js +0 -21
- 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/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 -62
- package/esm2015/lib/note/comment-form/comment-form.component.js +0 -73
- 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/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.service.js +0 -28
- 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/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/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 -7150
- package/fesm2015/ngx-techlify-core.js.map +0 -1
- package/ngx-techlify-core.d.ts +0 -59
- package/ngx-techlify-core.metadata.json +0 -1
package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
var TechlifyTaggerTagFormFieldComponent_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { Component, ViewChild, Input, Inject, Optional, Self } from '@angular/core';
|
|
5
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
6
|
+
import { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
|
|
7
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { debounceTime } from 'rxjs/operators';
|
|
10
|
+
import { TechlifyTaggerTagFormConfigModel } from './techlify-tagger-tag-form-config.model';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
13
|
+
import * as i2 from "../core/http.service";
|
|
14
|
+
import * as i3 from "@angular/forms";
|
|
15
|
+
import * as i4 from "@angular/common";
|
|
16
|
+
import * as i5 from "@angular/material/icon";
|
|
17
|
+
import * as i6 from "@angular/material/core";
|
|
18
|
+
import * as i7 from "@angular/material/chips";
|
|
19
|
+
import * as i8 from "@angular/material/autocomplete";
|
|
20
|
+
import * as i9 from "@angular/material/form-field";
|
|
21
|
+
let TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = class TechlifyTaggerTagFormFieldComponent {
|
|
22
|
+
constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
|
|
23
|
+
this._focusMonitor = _focusMonitor;
|
|
24
|
+
this._elementRef = _elementRef;
|
|
25
|
+
this.httpService = httpService;
|
|
26
|
+
this._formField = _formField;
|
|
27
|
+
this.ngControl = ngControl;
|
|
28
|
+
this.stateChanges = new Subject();
|
|
29
|
+
this.focused = false;
|
|
30
|
+
this.controlType = 'techlify-tagger-form-field';
|
|
31
|
+
this.id = `techlify-tagger-form-field-${TechlifyTaggerTagFormFieldComponent_1.nextId++}`;
|
|
32
|
+
this.onChange = (_) => { };
|
|
33
|
+
this.onTouched = () => { };
|
|
34
|
+
this.tagInputCtrl = new UntypedFormControl();
|
|
35
|
+
/**Pass the configuration for Techlify Tagger */
|
|
36
|
+
this.config = new TechlifyTaggerTagFormConfigModel();
|
|
37
|
+
/**Pass the default list of tags */
|
|
38
|
+
this._allTags = [];
|
|
39
|
+
/**Pass the Categories to filter for a model */
|
|
40
|
+
this.categories = [];
|
|
41
|
+
this._required = false;
|
|
42
|
+
this._disabled = false;
|
|
43
|
+
this._value = [];
|
|
44
|
+
this.tagInputCtrl.valueChanges
|
|
45
|
+
.subscribe(filterValue => {
|
|
46
|
+
this.filterString = filterValue;
|
|
47
|
+
});
|
|
48
|
+
//Set Focus Monitor
|
|
49
|
+
_focusMonitor.monitor(_elementRef, true).subscribe(origin => {
|
|
50
|
+
if (this.focused && !origin) {
|
|
51
|
+
this.onTouched();
|
|
52
|
+
}
|
|
53
|
+
this.focused = !!origin;
|
|
54
|
+
this.stateChanges.next();
|
|
55
|
+
});
|
|
56
|
+
if (this.ngControl != null) {
|
|
57
|
+
this.ngControl.valueAccessor = this;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
get allTags() {
|
|
61
|
+
return this._allTags;
|
|
62
|
+
}
|
|
63
|
+
set allTags(value) {
|
|
64
|
+
this._allTags = value;
|
|
65
|
+
}
|
|
66
|
+
get tags() {
|
|
67
|
+
return this.allTags.filter(x => this.value.some(y => y == x.id));
|
|
68
|
+
}
|
|
69
|
+
//Default Getter and Setters for a Form Field Implementation
|
|
70
|
+
get empty() {
|
|
71
|
+
return this.value.length == 0;
|
|
72
|
+
}
|
|
73
|
+
get shouldLabelFloat() {
|
|
74
|
+
return this.focused || !this.empty || this.tagInputCtrl.value;
|
|
75
|
+
}
|
|
76
|
+
get required() {
|
|
77
|
+
return this._required;
|
|
78
|
+
}
|
|
79
|
+
set required(value) {
|
|
80
|
+
this._required = coerceBooleanProperty(value);
|
|
81
|
+
this.stateChanges.next();
|
|
82
|
+
}
|
|
83
|
+
get disabled() {
|
|
84
|
+
return this._disabled;
|
|
85
|
+
}
|
|
86
|
+
set disabled(value) {
|
|
87
|
+
this._disabled = coerceBooleanProperty(value);
|
|
88
|
+
this._disabled ? this.tagInputCtrl.disable() : this.tagInputCtrl.enable();
|
|
89
|
+
this.stateChanges.next();
|
|
90
|
+
}
|
|
91
|
+
get value() {
|
|
92
|
+
return this._value;
|
|
93
|
+
}
|
|
94
|
+
set value(tagIds) {
|
|
95
|
+
this._value = tagIds || [];
|
|
96
|
+
this.stateChanges.next();
|
|
97
|
+
}
|
|
98
|
+
get errorState() {
|
|
99
|
+
return this.tagInputCtrl.dirty && this.required && (this.value.length == 0);
|
|
100
|
+
}
|
|
101
|
+
get placeholder() {
|
|
102
|
+
return this._placeholder;
|
|
103
|
+
}
|
|
104
|
+
set placeholder(value) {
|
|
105
|
+
this._placeholder = value;
|
|
106
|
+
this.stateChanges.next();
|
|
107
|
+
}
|
|
108
|
+
ngOnInit() {
|
|
109
|
+
}
|
|
110
|
+
ngOnChanges(changes) {
|
|
111
|
+
//API to load all tags for the model type
|
|
112
|
+
if (this.allTags.length == 0) {
|
|
113
|
+
this.httpService
|
|
114
|
+
.cache(!this.config.isCacheTags)
|
|
115
|
+
.get(this.config.apiUrl, {
|
|
116
|
+
params: {
|
|
117
|
+
categories: this.categories.join(','),
|
|
118
|
+
perPage: '1000'
|
|
119
|
+
}
|
|
120
|
+
}).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
|
|
121
|
+
this.allTags = result.data;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//API to load only the selected tags for the model
|
|
125
|
+
if (this.modelId && this.value.length == 0) {
|
|
126
|
+
//Model Id is passed and no tags are present, so we query db for the avilable tags for the model ID.
|
|
127
|
+
this.httpService
|
|
128
|
+
.cache(!this.config.isCacheTags)
|
|
129
|
+
.get(this.config.apiUrl, {
|
|
130
|
+
params: {
|
|
131
|
+
categories: this.categories.join(','),
|
|
132
|
+
model_type: this.modelType,
|
|
133
|
+
model_id: this.modelId,
|
|
134
|
+
perPage: '1000'
|
|
135
|
+
}
|
|
136
|
+
}).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
|
|
137
|
+
this.value = (result?.data || []).map((x) => x.id);
|
|
138
|
+
this._handleInput();
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
init() {
|
|
143
|
+
if (this.modelId && this.allTags.length == 0) {
|
|
144
|
+
//Model Id is passed and no tags are passed, so we query db for the avilable tags for the model ID.
|
|
145
|
+
this.httpService
|
|
146
|
+
.cache(!this.config.isCacheTags)
|
|
147
|
+
.get(this.config.apiUrl, {
|
|
148
|
+
params: {
|
|
149
|
+
categories: this.categories.join(','),
|
|
150
|
+
model_type: this.modelType,
|
|
151
|
+
model_id: this.modelId
|
|
152
|
+
}
|
|
153
|
+
}).pipe(untilDestroyed(this)).subscribe((result) => {
|
|
154
|
+
this.allTags = result.data;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
get filteredTags() {
|
|
159
|
+
return this._filter();
|
|
160
|
+
}
|
|
161
|
+
setDescribedByIds(ids) {
|
|
162
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
163
|
+
}
|
|
164
|
+
onContainerClick() {
|
|
165
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
166
|
+
}
|
|
167
|
+
async add(event) {
|
|
168
|
+
const value = (event.value || '').trim();
|
|
169
|
+
// Add our tag
|
|
170
|
+
// Validate for single mode
|
|
171
|
+
if (!this.config.isSingle || (this.value.length === 0)) {
|
|
172
|
+
if (value && this.config.isCreateable) {
|
|
173
|
+
const tags = this.allTags;
|
|
174
|
+
let tag = tags.find((item) => item.title.toLowerCase() == value.toLowerCase());
|
|
175
|
+
if (!tag) {
|
|
176
|
+
//No tag present in the list
|
|
177
|
+
try {
|
|
178
|
+
const result = await this.httpService.post(this.config.createApiUrl, {
|
|
179
|
+
title: value,
|
|
180
|
+
description: value,
|
|
181
|
+
category_title: (this.categories.length > 0) ? (this.defaultCreateCategory ? this.defaultCreateCategory : this.categories[0]) : ''
|
|
182
|
+
}).toPromise();
|
|
183
|
+
tag = result.item;
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
this.allTags.push(tag);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
//Optionally clean the existing value, to avoid duplicate
|
|
192
|
+
this.remove(tag);
|
|
193
|
+
}
|
|
194
|
+
this.value.push(tag.id);
|
|
195
|
+
this._handleInput();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Clear the input value
|
|
199
|
+
event.chipInput.inputElement.value = '';
|
|
200
|
+
this.tagInputCtrl.setValue(null);
|
|
201
|
+
}
|
|
202
|
+
remove(tag) {
|
|
203
|
+
this.value = this.value.filter(x => x !== tag.id);
|
|
204
|
+
this._handleInput();
|
|
205
|
+
}
|
|
206
|
+
selected(event) {
|
|
207
|
+
// Validate for single mode
|
|
208
|
+
if (!this.config.isSingle || (this.value.length === 0)) {
|
|
209
|
+
//Clean the existing value, to avoid duplicate
|
|
210
|
+
this.remove({ id: event.option.value });
|
|
211
|
+
this.value.push(event.option.value);
|
|
212
|
+
this._handleInput();
|
|
213
|
+
}
|
|
214
|
+
this.tagInput.nativeElement.value = '';
|
|
215
|
+
this.tagInputCtrl.setValue(null);
|
|
216
|
+
}
|
|
217
|
+
_filter() {
|
|
218
|
+
const filterValue = this.filterString ? this.filterString.toString().toLowerCase() : null;
|
|
219
|
+
const availableTags = this.allTags.filter((tag) => !this.value.some((item) => item == tag.id));
|
|
220
|
+
return filterValue ? availableTags.filter((tag) => tag.title.toLowerCase().includes(filterValue)) : availableTags;
|
|
221
|
+
}
|
|
222
|
+
writeValue(tagIds) {
|
|
223
|
+
this.value = tagIds || [];
|
|
224
|
+
}
|
|
225
|
+
registerOnChange(fn) {
|
|
226
|
+
this.onChange = fn;
|
|
227
|
+
}
|
|
228
|
+
registerOnTouched(fn) {
|
|
229
|
+
this.onTouched = fn;
|
|
230
|
+
}
|
|
231
|
+
setDisabledState(isDisabled) {
|
|
232
|
+
this.disabled = isDisabled;
|
|
233
|
+
}
|
|
234
|
+
_handleInput() {
|
|
235
|
+
this.onChange(this.value);
|
|
236
|
+
}
|
|
237
|
+
ngOnDestroy() {
|
|
238
|
+
this.stateChanges.complete();
|
|
239
|
+
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
TechlifyTaggerTagFormFieldComponent.nextId = 0;
|
|
243
|
+
TechlifyTaggerTagFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
244
|
+
TechlifyTaggerTagFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: { config: "config", modelType: "modelType", modelId: "modelId", allTags: "allTags", categories: "categories", defaultCreateCategory: "defaultCreateCategory", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent_1 }], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\r\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\r\n (removed)=\"remove(tag)\">\r\n {{tag.title}}\r\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\r\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\r\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\r\n</mat-chip-list>\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\r\n {{tag.title}}\r\n </mat-option>\r\n</mat-autocomplete>", styles: [".mat-relative-icon{position:relative;top:-3px;right:7px;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
245
|
+
TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = __decorate([
|
|
246
|
+
UntilDestroy()
|
|
247
|
+
], TechlifyTaggerTagFormFieldComponent);
|
|
248
|
+
export { TechlifyTaggerTagFormFieldComponent };
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldComponent, decorators: [{
|
|
250
|
+
type: Component,
|
|
251
|
+
args: [{ selector: 'app-techlify-tagger-tag-form-field', providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent }], template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\r\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\r\n (removed)=\"remove(tag)\">\r\n {{tag.title}}\r\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\r\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\r\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\r\n</mat-chip-list>\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\r\n {{tag.title}}\r\n </mat-option>\r\n</mat-autocomplete>", styles: [".mat-relative-icon{position:relative;top:-3px;right:7px;font-size:20px}\n"] }]
|
|
252
|
+
}], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.HttpService }, { type: i9.MatFormField, decorators: [{
|
|
253
|
+
type: Optional
|
|
254
|
+
}, {
|
|
255
|
+
type: Inject,
|
|
256
|
+
args: [MAT_FORM_FIELD]
|
|
257
|
+
}] }, { type: i3.NgControl, decorators: [{
|
|
258
|
+
type: Optional
|
|
259
|
+
}, {
|
|
260
|
+
type: Self
|
|
261
|
+
}] }]; }, propDecorators: { tagInput: [{
|
|
262
|
+
type: ViewChild,
|
|
263
|
+
args: ['tagInput']
|
|
264
|
+
}], config: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], modelType: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], modelId: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], allTags: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], categories: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], defaultCreateCategory: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], required: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], disabled: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], value: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], placeholder: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}] } });
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQXdCLGtCQUFrQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFHckYsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7OztJQVM5RSxtQ0FBbUMsaURBQW5DLG1DQUFtQztJQXFLOUMsWUFDVSxhQUEyQixFQUMzQixXQUFvQyxFQUNwQyxXQUF3QixFQUNXLFVBQXdCLEVBQ3hDLFNBQW9CO1FB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LEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUVGLENBQUE7QUE3UlEsMENBQU0sR0FBRyxDQUFDLENBQUM7Z0lBRlAsbUNBQW1DLG1HQXlLeEIsY0FBYztvSEF6S3pCLG1DQUFtQyw2VEFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUscUNBQW1DLEVBQUUsQ0FBQyxxSkNsQmpHLDBoQ0FpQm1CO0FER04sbUNBQW1DO0lBUC9DLFlBQVksRUFBRTtHQU9GLG1DQUFtQyxDQStSL0M7U0EvUlksbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0Usb0NBQW9DLGFBR25DLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDOzswQkEySzVGLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLFFBQVE7OzBCQUFJLElBQUk7NENBN0pJLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFHWixNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0YsT0FBTztzQkFEVixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQWdCRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFjRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUNvbmZpZ01vZGVsIH0gZnJvbSAnLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tY29uZmlnLm1vZGVsJztcclxuXHJcbkBVbnRpbERlc3Ryb3koKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50IH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNYXRGb3JtRmllbGRDb250cm9sPGFueT4sIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHJcbiAgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGUgPSAndGVjaGxpZnktdGFnZ2VyLWZvcm0tZmllbGQnO1xyXG4gIGlkID0gYHRlY2hsaWZ5LXRhZ2dlci1mb3JtLWZpZWxkLSR7VGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICB0YWdJbnB1dEN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZmlsdGVyU3RyaW5nOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgLyoqUGFzcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgVGVjaGxpZnkgVGFnZ2VyICovXHJcbiAgQElucHV0KCkgY29uZmlnOiBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db25maWdNb2RlbCA9IG5ldyBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db25maWdNb2RlbCgpO1xyXG4gIC8qKlBhc3MgdGhlIE1vZGVsIFR5cGUgZm9yIFRlY2hsaWZ5IFRhZ2dlciwgUmVxdWlyZWQgKi9cclxuICBASW5wdXQoKSBtb2RlbFR5cGUhOiBzdHJpbmc7XHJcbiAgLyoqUGFzcyB0aGUgTW9kZWwgSUQgZm9yIFRlY2hsaWZ5IFRhZ2dlciAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsSWQ6IHN0cmluZztcclxuXHJcbiAgLyoqUGFzcyB0aGUgZGVmYXVsdCBsaXN0IG9mIHRhZ3MgKi9cclxuICBwcml2YXRlIF9hbGxUYWdzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFsbFRhZ3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWxsVGFncztcclxuICB9XHJcbiAgc2V0IGFsbFRhZ3ModmFsdWUpIHtcclxuICAgIHRoaXMuX2FsbFRhZ3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlBhc3MgdGhlIENhdGVnb3JpZXMgdG8gZmlsdGVyIGZvciBhIG1vZGVsICovXHJcbiAgQElucHV0KCkgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcclxuICAvKipQYXNzIGRlZmF1bHQgY2F0ZWdvcnkgdG8gYmUgdXNlZCBmb3IgYXNzaWduaW5nIHRoZSB0YWdzLCB3aGVuIHdlIGZpbHRlciBieSBtb3JlIHRoYW4gb25lIGNhdGVnb3J5ICovXHJcbiAgQElucHV0KCkgZGVmYXVsdENyZWF0ZUNhdGVnb3J5OiBzdHJpbmc7XHJcblxyXG4gIGdldCB0YWdzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWxsVGFncy5maWx0ZXIoeCA9PiB0aGlzLnZhbHVlLnNvbWUoeSA9PiB5ID09IHguaWQpKTtcclxuICB9XHJcblxyXG4gIC8vRGVmYXVsdCBHZXR0ZXIgYW5kIFNldHRlcnMgZm9yIGEgRm9ybSBGaWVsZCBJbXBsZW1lbnRhdGlvblxyXG4gIGdldCBlbXB0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA9PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5IHx8IHRoaXMudGFnSW5wdXRDdHJsLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMudGFnSW5wdXRDdHJsLmRpc2FibGUoKSA6IHRoaXMudGFnSW5wdXRDdHJsLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueVtdID0gW107XHJcbiAgQElucHV0KClcclxuICBnZXQgdmFsdWUoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodGFnSWRzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB0YWdJZHMgfHwgW107XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhZ0lucHV0Q3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cclxuICAgIC8vQVBJIHRvIGxvYWQgYWxsIHRhZ3MgZm9yIHRoZSBtb2RlbCB0eXBlXHJcbiAgICBpZiAodGhpcy5hbGxUYWdzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxyXG4gICAgICAgIC5nZXQodGhpcy5jb25maWcuYXBpVXJsLCB7XHJcbiAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgcGVyUGFnZTogJzEwMDAnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxyXG4gICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcclxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsVGFncyA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQVBJIHRvIGxvYWQgb25seSB0aGUgc2VsZWN0ZWQgdGFncyBmb3IgdGhlIG1vZGVsXHJcbiAgICBpZiAodGhpcy5tb2RlbElkICYmIHRoaXMudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgLy9Nb2RlbCBJZCBpcyBwYXNzZWQgYW5kIG5vIHRhZ3MgYXJlIHByZXNlbnQsIHNvIHdlIHF1ZXJ5IGRiIGZvciB0aGUgYXZpbGFibGUgdGFncyBmb3IgdGhlIG1vZGVsIElELlxyXG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgICAgLmNhY2hlKCF0aGlzLmNvbmZpZy5pc0NhY2hlVGFncylcclxuICAgICAgICAuZ2V0KHRoaXMuY29uZmlnLmFwaVVybCwge1xyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuY2F0ZWdvcmllcy5qb2luKCcsJyksXHJcbiAgICAgICAgICAgIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlLFxyXG4gICAgICAgICAgICBtb2RlbF9pZDogdGhpcy5tb2RlbElkLFxyXG4gICAgICAgICAgICBwZXJQYWdlOiAnMTAwMCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXHJcbiAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IChyZXN1bHQ/LmRhdGEgfHwgW10pLm1hcCgoeDogYW55KSA9PiB4LmlkKTtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUlucHV0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWxJZCAmJiB0aGlzLmFsbFRhZ3MubGVuZ3RoID09IDApIHtcclxuICAgICAgLy9Nb2RlbCBJZCBpcyBwYXNzZWQgYW5kIG5vIHRhZ3MgYXJlIHBhc3NlZCwgc28gd2UgcXVlcnkgZGIgZm9yIHRoZSBhdmlsYWJsZSB0YWdzIGZvciB0aGUgbW9kZWwgSUQuXHJcbiAgICAgIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxyXG4gICAgICAgIC5nZXQodGhpcy5jb25maWcuYXBpVXJsLCB7XHJcbiAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUsXHJcbiAgICAgICAgICAgIG1vZGVsX2lkOiB0aGlzLm1vZGVsSWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcclxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsVGFncyA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkVGFncygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHB1YmxpYyBfZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xyXG5cclxuICAgIHRoaXMudGFnSW5wdXRDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAuc3Vic2NyaWJlKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlclN0cmluZyA9IGZpbHRlclZhbHVlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAvL1NldCBGb2N1cyBNb25pdG9yXHJcbiAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IoX2VsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKCkge1xyXG4gICAgLy8gSnVzdCBhIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBNYXQgRm9ybSBGaWVsZCBJbnRlcmZhY2VcclxuICB9XHJcblxyXG5cclxuICBhc3luYyBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xyXG4gICAgLy8gQWRkIG91ciB0YWdcclxuICAgIC8vIFZhbGlkYXRlIGZvciBzaW5nbGUgbW9kZVxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pc1NpbmdsZSB8fCAodGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmNvbmZpZy5pc0NyZWF0ZWFibGUpIHtcclxuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5hbGxUYWdzO1xyXG4gICAgICAgIGxldCB0YWcgPSB0YWdzLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS50aXRsZS50b0xvd2VyQ2FzZSgpID09IHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIGlmICghdGFnKSB7XHJcbiAgICAgICAgICAvL05vIHRhZyBwcmVzZW50IGluIHRoZSBsaXN0XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMuaHR0cFNlcnZpY2UucG9zdCh0aGlzLmNvbmZpZy5jcmVhdGVBcGlVcmwsIHtcclxuICAgICAgICAgICAgICB0aXRsZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHZhbHVlLFxyXG4gICAgICAgICAgICAgIGNhdGVnb3J5X3RpdGxlOiAodGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA+IDApID8gKHRoaXMuZGVmYXVsdENyZWF0ZUNhdGVnb3J5ID8gdGhpcy5kZWZhdWx0Q3JlYXRlQ2F0ZWdvcnkgOiB0aGlzLmNhdGVnb3JpZXNbMF0pIDogJydcclxuICAgICAgICAgICAgfSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRhZyA9IHJlc3VsdC5pdGVtO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5hbGxUYWdzLnB1c2godGFnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9PcHRpb25hbGx5IGNsZWFuIHRoZSBleGlzdGluZyB2YWx1ZSwgdG8gYXZvaWQgZHVwbGljYXRlXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZSh0YWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlLnB1c2godGFnLmlkKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIGlucHV0IHZhbHVlXHJcbiAgICBldmVudC5jaGlwSW5wdXQuaW5wdXRFbGVtZW50LnZhbHVlID0gJyc7XHJcblxyXG4gICAgdGhpcy50YWdJbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUodGFnOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcih4ID0+IHggIT09IHRhZy5pZCk7XHJcbiAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIFZhbGlkYXRlIGZvciBzaW5nbGUgbW9kZVxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pc1NpbmdsZSB8fCAodGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgIC8vQ2xlYW4gdGhlIGV4aXN0aW5nIHZhbHVlLCB0byBhdm9pZCBkdXBsaWNhdGVcclxuICAgICAgdGhpcy5yZW1vdmUoeyBpZDogZXZlbnQub3B0aW9uLnZhbHVlIH0pO1xyXG4gICAgICB0aGlzLnZhbHVlLnB1c2goZXZlbnQub3B0aW9uLnZhbHVlKTtcclxuICAgICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFnSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy50YWdJbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXIoKTogYW55W10ge1xyXG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZpbHRlclN0cmluZyA/IHRoaXMuZmlsdGVyU3RyaW5nLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA6IG51bGw7XHJcbiAgICBjb25zdCBhdmFpbGFibGVUYWdzID0gdGhpcy5hbGxUYWdzLmZpbHRlcigodGFnOiBhbnkpID0+ICF0aGlzLnZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSB0YWcuaWQpKTtcclxuICAgIHJldHVybiBmaWx0ZXJWYWx1ZSA/IGF2YWlsYWJsZVRhZ3MuZmlsdGVyKCh0YWc6IGFueSkgPT4gdGFnLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSA6IGF2YWlsYWJsZVRhZ3M7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHRhZ0lkczogYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB0YWdJZHMgfHwgW107XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3QgYXJpYS1sYWJlbD1cIlRhZyBTZWxlY3Rpb25cIj5cclxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NcIiBbc2VsZWN0YWJsZV09XCJjb25maWcuc2VsZWN0YWJsZVwiIFtyZW1vdmFibGVdPVwiY29uZmlnLnJlbW92YWJsZVwiXHJcbiAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKHRhZylcIj5cclxuICAgICAgICB7e3RhZy50aXRsZX19XHJcbiAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlICpuZ0lmPVwiY29uZmlnLnJlbW92YWJsZVwiIGNsYXNzPVwiYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LXJlbGF0aXZlLWljb25cIj5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2hpcD5cclxuICAgIDxpbnB1dCBwbGFjZWhvbGRlcj1cInt7Y29uZmlnLmlzQ3JlYXRlYWJsZT8gY29uZmlnLnBsYWNlaG9sZGVyOicnfX1cIiAjdGFnSW5wdXQgW2Zvcm1Db250cm9sXT1cInRhZ0lucHV0Q3RybFwiXHJcbiAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXHJcbiAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cImNvbmZpZy5zZXBhcmF0b3JLZXlzQ29kZXNcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICAgICN0cmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiIChjbGljayk9XCJ0cmlnZ2VyLm9wZW5QYW5lbCgpXCI+XHJcbjwvbWF0LWNoaXAtbGlzdD5cclxuPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRhZyBvZiBmaWx0ZXJlZFRhZ3NcIiBbdmFsdWVdPVwidGFnLmlkXCI+XHJcbiAgICAgICAge3t0YWcudGl0bGV9fVxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG48L21hdC1hdXRvY29tcGxldGU+Il19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TechlifyTaggerTagFormFieldComponent } from './techlify-tagger-tag-form-field.component';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
+
import { MaterialModule } from '../material.module';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class TechlifyTaggerTagFormFieldModule {
|
|
10
|
+
}
|
|
11
|
+
TechlifyTaggerTagFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
TechlifyTaggerTagFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, declarations: [TechlifyTaggerTagFormFieldComponent], imports: [CommonModule,
|
|
13
|
+
MaterialModule,
|
|
14
|
+
FlexLayoutModule,
|
|
15
|
+
MatAutocompleteModule,
|
|
16
|
+
ReactiveFormsModule], exports: [TechlifyTaggerTagFormFieldComponent] });
|
|
17
|
+
TechlifyTaggerTagFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, imports: [CommonModule,
|
|
18
|
+
MaterialModule,
|
|
19
|
+
FlexLayoutModule,
|
|
20
|
+
MatAutocompleteModule,
|
|
21
|
+
ReactiveFormsModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [
|
|
26
|
+
TechlifyTaggerTagFormFieldComponent
|
|
27
|
+
],
|
|
28
|
+
imports: [
|
|
29
|
+
CommonModule,
|
|
30
|
+
MaterialModule,
|
|
31
|
+
FlexLayoutModule,
|
|
32
|
+
MatAutocompleteModule,
|
|
33
|
+
ReactiveFormsModule
|
|
34
|
+
],
|
|
35
|
+
exports: [TechlifyTaggerTagFormFieldComponent]
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWlCcEQsTUFBTSxPQUFPLGdDQUFnQzs7NkhBQWhDLGdDQUFnQzs4SEFBaEMsZ0NBQWdDLGlCQVh6QyxtQ0FBbUMsYUFHbkMsWUFBWTtRQUNaLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLG1CQUFtQixhQUVYLG1DQUFtQzs4SEFFbEMsZ0NBQWdDLFlBUnpDLFlBQVk7UUFDWixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixtQkFBbUI7MkZBSVYsZ0NBQWdDO2tCQWI1QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQ0FBbUM7cUJBQ3BDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1GaWVsZENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1RlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
var TechlifyTaggerTagSelectorComponent_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { Component, Input, Inject, Optional, Self } from '@angular/core';
|
|
5
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
6
|
+
import { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
|
|
7
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
11
|
+
import * as i2 from "../core/http.service";
|
|
12
|
+
import * as i3 from "@angular/forms";
|
|
13
|
+
import * as i4 from "@angular/common";
|
|
14
|
+
import * as i5 from "@angular/material/button-toggle";
|
|
15
|
+
import * as i6 from "../searchable-selector/searchable-selector.component";
|
|
16
|
+
import * as i7 from "@angular/material/form-field";
|
|
17
|
+
let TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = class TechlifyTaggerTagSelectorComponent {
|
|
18
|
+
constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
|
|
19
|
+
this._focusMonitor = _focusMonitor;
|
|
20
|
+
this._elementRef = _elementRef;
|
|
21
|
+
this.httpService = httpService;
|
|
22
|
+
this._formField = _formField;
|
|
23
|
+
this.ngControl = ngControl;
|
|
24
|
+
/**Pass the Categories to filter for a model */
|
|
25
|
+
this.categories = [];
|
|
26
|
+
this.multiple = false;
|
|
27
|
+
this.enableSearch = true;
|
|
28
|
+
this.tagSelectorCtrl = new UntypedFormControl();
|
|
29
|
+
this.showAllTags = false;
|
|
30
|
+
this.useSelectButtonStyle = false;
|
|
31
|
+
this.tags = [];
|
|
32
|
+
this.stateChanges = new Subject();
|
|
33
|
+
this.focused = false;
|
|
34
|
+
this.controlType = 'techlify-tagger-selector';
|
|
35
|
+
this.id = `techlify-tagger-selector-${TechlifyTaggerTagSelectorComponent_1.nextId++}`;
|
|
36
|
+
this.onChange = (_) => { };
|
|
37
|
+
this.onTouched = () => { };
|
|
38
|
+
this._required = false;
|
|
39
|
+
this._disabled = false;
|
|
40
|
+
//Set Focus Monitor
|
|
41
|
+
_focusMonitor.monitor(_elementRef, true).subscribe(origin => {
|
|
42
|
+
if (this.focused && !origin) {
|
|
43
|
+
this.onTouched();
|
|
44
|
+
}
|
|
45
|
+
this.focused = !!origin;
|
|
46
|
+
this.stateChanges.next();
|
|
47
|
+
});
|
|
48
|
+
if (this.ngControl != null) {
|
|
49
|
+
this.ngControl.valueAccessor = this;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get apiUrl() {
|
|
53
|
+
if (this.showAllTags) {
|
|
54
|
+
return 'api/techlify-tagger-tags';
|
|
55
|
+
}
|
|
56
|
+
else if (this.categories?.length > 0) {
|
|
57
|
+
return 'api/techlify-tagger-tags?categories=' + this.categories.join(',');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//Default Getter and Setters for a Form Field Implementation
|
|
64
|
+
get empty() {
|
|
65
|
+
return this.value.length == 0;
|
|
66
|
+
}
|
|
67
|
+
get shouldLabelFloat() {
|
|
68
|
+
return this.focused || !this.empty;
|
|
69
|
+
}
|
|
70
|
+
get required() {
|
|
71
|
+
return this._required;
|
|
72
|
+
}
|
|
73
|
+
set required(value) {
|
|
74
|
+
this._required = coerceBooleanProperty(value);
|
|
75
|
+
this.stateChanges.next();
|
|
76
|
+
}
|
|
77
|
+
get disabled() {
|
|
78
|
+
return this._disabled;
|
|
79
|
+
}
|
|
80
|
+
set disabled(value) {
|
|
81
|
+
this._disabled = coerceBooleanProperty(value);
|
|
82
|
+
this._disabled ? this.tagSelectorCtrl.disable() : this.tagSelectorCtrl.enable();
|
|
83
|
+
this.stateChanges.next();
|
|
84
|
+
}
|
|
85
|
+
get value() {
|
|
86
|
+
return this._value;
|
|
87
|
+
}
|
|
88
|
+
set value(val) {
|
|
89
|
+
this._value = val;
|
|
90
|
+
this.tagSelectorCtrl.setValue(val);
|
|
91
|
+
this.stateChanges.next();
|
|
92
|
+
}
|
|
93
|
+
get errorState() {
|
|
94
|
+
return this.tagSelectorCtrl.dirty && this.required && (this.value.length == 0);
|
|
95
|
+
}
|
|
96
|
+
get placeholder() {
|
|
97
|
+
return this._placeholder;
|
|
98
|
+
}
|
|
99
|
+
set placeholder(value) {
|
|
100
|
+
this._placeholder = value;
|
|
101
|
+
this.stateChanges.next();
|
|
102
|
+
}
|
|
103
|
+
ngOnInit() {
|
|
104
|
+
if (this.useSelectButtonStyle) {
|
|
105
|
+
this.httpService.get(this.apiUrl)
|
|
106
|
+
.pipe(untilDestroyed(this))
|
|
107
|
+
.subscribe((res) => {
|
|
108
|
+
this.tags = res.data;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
selectionChange(value) {
|
|
113
|
+
this.value = value;
|
|
114
|
+
this._handleInput();
|
|
115
|
+
}
|
|
116
|
+
setDescribedByIds(ids) {
|
|
117
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
118
|
+
}
|
|
119
|
+
onContainerClick() {
|
|
120
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
121
|
+
}
|
|
122
|
+
writeValue(val) {
|
|
123
|
+
this.value = val;
|
|
124
|
+
}
|
|
125
|
+
registerOnChange(fn) {
|
|
126
|
+
this.onChange = fn;
|
|
127
|
+
}
|
|
128
|
+
registerOnTouched(fn) {
|
|
129
|
+
this.onTouched = fn;
|
|
130
|
+
}
|
|
131
|
+
setDisabledState(isDisabled) {
|
|
132
|
+
this.disabled = isDisabled;
|
|
133
|
+
}
|
|
134
|
+
_handleInput() {
|
|
135
|
+
this.onChange(this.value);
|
|
136
|
+
}
|
|
137
|
+
ngOnDestroy() {
|
|
138
|
+
this.stateChanges.complete();
|
|
139
|
+
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
TechlifyTaggerTagSelectorComponent.nextId = 0;
|
|
143
|
+
TechlifyTaggerTagSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
+
TechlifyTaggerTagSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyTaggerTagSelectorComponent, selector: "app-techlify-tagger-tag-selector", inputs: { categories: "categories", multiple: "multiple", enableSearch: "enableSearch", showAllTags: "showAllTags", useSelectButtonStyle: "useSelectButtonStyle", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent_1 }], ngImport: i0, template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\r\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\r\n</app-searchable-selector>\r\n\r\n<mat-button-toggle-group *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\r\n (change)=\"selectionChange($event.value)\">\r\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\r\n</mat-button-toggle-group>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] });
|
|
145
|
+
TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = __decorate([
|
|
146
|
+
UntilDestroy()
|
|
147
|
+
], TechlifyTaggerTagSelectorComponent);
|
|
148
|
+
export { TechlifyTaggerTagSelectorComponent };
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, decorators: [{
|
|
150
|
+
type: Component,
|
|
151
|
+
args: [{ selector: 'app-techlify-tagger-tag-selector', providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\r\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\r\n</app-searchable-selector>\r\n\r\n<mat-button-toggle-group *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\r\n (change)=\"selectionChange($event.value)\">\r\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\r\n</mat-button-toggle-group>" }]
|
|
152
|
+
}], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.HttpService }, { type: i7.MatFormField, decorators: [{
|
|
153
|
+
type: Optional
|
|
154
|
+
}, {
|
|
155
|
+
type: Inject,
|
|
156
|
+
args: [MAT_FORM_FIELD]
|
|
157
|
+
}] }, { type: i3.NgControl, decorators: [{
|
|
158
|
+
type: Optional
|
|
159
|
+
}, {
|
|
160
|
+
type: Self
|
|
161
|
+
}] }]; }, propDecorators: { categories: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], multiple: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], enableSearch: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], showAllTags: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], useSelectButtonStyle: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], required: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], disabled: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], value: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], placeholder: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}] } });
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFzQixLQUFLLEVBQWEsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF3QixrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7SUFXbEIsa0NBQWtDLGdEQUFsQyxrQ0FBa0M7SUF5RzdDLFlBQ1UsYUFBMkIsRUFDM0IsV0FBb0MsRUFDcEMsV0FBd0IsRUFDVyxVQUF3QixFQUN4QyxTQUFvQjtRQUp2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDVyxlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hD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Q2pDLFFBQVE7OzBCQUFJLElBQUk7NENBM0dWLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQW1DRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3ksIEluamVjdCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XHJcblxyXG5AVW50aWxEZXN0cm95KClcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqUGFzcyB0aGUgQ2F0ZWdvcmllcyB0byBmaWx0ZXIgZm9yIGEgbW9kZWwgKi9cclxuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICB0YWdTZWxlY3RvckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgc2hvd0FsbFRhZ3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VTZWxlY3RCdXR0b25TdHlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB0YWdzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZSA9ICd0ZWNobGlmeS10YWdnZXItc2VsZWN0b3InO1xyXG4gIGlkID0gYHRlY2hsaWZ5LXRhZ2dlci1zZWxlY3Rvci0ke1RlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBnZXQgYXBpVXJsKCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0FsbFRhZ3MpIHtcclxuICAgICAgcmV0dXJuICdhcGkvdGVjaGxpZnktdGFnZ2VyLXRhZ3MnXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmNhdGVnb3JpZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuICdhcGkvdGVjaGxpZnktdGFnZ2VyLXRhZ3M/Y2F0ZWdvcmllcz0nICsgdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0RlZmF1bHQgR2V0dGVyIGFuZCBTZXR0ZXJzIGZvciBhIEZvcm0gRmllbGQgSW1wbGVtZW50YXRpb25cclxuICBnZXQgZW1wdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXNhYmxlKCkgOiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5lbmFibGUoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIHRoaXMudGFnU2VsZWN0b3JDdHJsLnNldFZhbHVlKHZhbCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51c2VTZWxlY3RCdXR0b25TdHlsZSkge1xyXG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlLmdldCh0aGlzLmFwaVVybClcclxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWdzID0gcmVzLmRhdGE7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwdWJsaWMgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxyXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHtcclxuXHJcbiAgICAvL1NldCBGb2N1cyBNb25pdG9yXHJcbiAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IoX2VsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKCkge1xyXG4gICAgLy8gSnVzdCBhIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBNYXQgRm9ybSBGaWVsZCBJbnRlcmZhY2VcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgKm5nSWY9XCJhcGlVcmwgJiYgIXVzZVNlbGVjdEJ1dHRvblN0eWxlXCIgW2Zvcm1Db250cm9sXT1cInRhZ1NlbGVjdG9yQ3RybFwiIFthcGlVcmxdPVwiYXBpVXJsXCJcclxuICAgIFtlbmFibGVTZWFyY2hdPVwiZW5hYmxlU2VhcmNoXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxyXG5cclxuPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwICpuZ0lmPVwiYXBpVXJsICYmIHVzZVNlbGVjdEJ1dHRvblN0eWxlXCIgW2Zvcm1Db250cm9sXT1cInRhZ1NlbGVjdG9yQ3RybFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAoY2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCI+XHJcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzXCIgW3ZhbHVlXT1cInRhZy5pZFwiPnt7dGFnLnRpdGxlfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG48L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPiJdfQ==
|