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
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TechlifyTaggerTagSelectorComponent } from './techlify-tagger-tag-selector.component';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
8
|
+
import { MaterialModule } from '../material.module';
|
|
9
|
+
import { SearchableSelectorModule } from '../searchable-selector/searchable-selector.module';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class TechlifyTaggerTagSelectorModule {
|
|
12
|
+
}
|
|
13
|
+
TechlifyTaggerTagSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
TechlifyTaggerTagSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorModule, declarations: [TechlifyTaggerTagSelectorComponent], imports: [CommonModule,
|
|
15
|
+
MaterialModule,
|
|
16
|
+
FlexLayoutModule,
|
|
17
|
+
MatAutocompleteModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
SearchableSelectorModule,
|
|
20
|
+
MatButtonToggleModule], exports: [TechlifyTaggerTagSelectorComponent] });
|
|
21
|
+
TechlifyTaggerTagSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorModule, imports: [CommonModule,
|
|
22
|
+
MaterialModule,
|
|
23
|
+
FlexLayoutModule,
|
|
24
|
+
MatAutocompleteModule,
|
|
25
|
+
ReactiveFormsModule,
|
|
26
|
+
SearchableSelectorModule,
|
|
27
|
+
MatButtonToggleModule] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [
|
|
32
|
+
TechlifyTaggerTagSelectorComponent
|
|
33
|
+
],
|
|
34
|
+
imports: [
|
|
35
|
+
CommonModule,
|
|
36
|
+
MaterialModule,
|
|
37
|
+
FlexLayoutModule,
|
|
38
|
+
MatAutocompleteModule,
|
|
39
|
+
ReactiveFormsModule,
|
|
40
|
+
SearchableSelectorModule,
|
|
41
|
+
MatButtonToggleModule
|
|
42
|
+
],
|
|
43
|
+
exports: [TechlifyTaggerTagSelectorComponent]
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQW1CN0YsTUFBTSxPQUFPLCtCQUErQjs7NEhBQS9CLCtCQUErQjs2SEFBL0IsK0JBQStCLGlCQWJ4QyxrQ0FBa0MsYUFHbEMsWUFBWTtRQUNaLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIscUJBQXFCLGFBRWIsa0NBQWtDOzZIQUVqQywrQkFBK0IsWUFWeEMsWUFBWTtRQUNaLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIscUJBQXFCOzJGQUlaLCtCQUErQjtrQkFmM0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osa0NBQWtDO3FCQUNuQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS10YWdnZXItdGFnLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4uL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1RlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { UntypedFormControl, Validators } from '@angular/forms';
|
|
2
|
+
import { Component, EventEmitter, Inject, Output } from '@angular/core';
|
|
3
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
+
import { Editor } from 'ngx-editor';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "../../core/form-validator.service";
|
|
9
|
+
import * as i4 from "../../core/alert.service";
|
|
10
|
+
import * as i5 from "./../techlify-update.service";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
import * as i7 from "@angular/material/button";
|
|
13
|
+
import * as i8 from "@angular/material/form-field";
|
|
14
|
+
import * as i9 from "@angular/material/icon";
|
|
15
|
+
import * as i10 from "@angular/material/input";
|
|
16
|
+
import * as i11 from "@angular/material/datepicker";
|
|
17
|
+
import * as i12 from "@angular/flex-layout/flex";
|
|
18
|
+
import * as i13 from "ngx-editor";
|
|
19
|
+
const errorMessages = {
|
|
20
|
+
title: {
|
|
21
|
+
required: "Title is required",
|
|
22
|
+
},
|
|
23
|
+
released_on: {
|
|
24
|
+
required: "Released On is required",
|
|
25
|
+
},
|
|
26
|
+
version: {
|
|
27
|
+
required: "Version is required",
|
|
28
|
+
},
|
|
29
|
+
description: {
|
|
30
|
+
required: "Description is required",
|
|
31
|
+
},
|
|
32
|
+
learn_more_link: {
|
|
33
|
+
pattern: "Please enter valid link",
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export class TechlifyUpdateFormComponent {
|
|
37
|
+
constructor(dialogRef, data, fb, formValidatorService, alertService, techlifyUpdateService) {
|
|
38
|
+
this.dialogRef = dialogRef;
|
|
39
|
+
this.data = data;
|
|
40
|
+
this.fb = fb;
|
|
41
|
+
this.formValidatorService = formValidatorService;
|
|
42
|
+
this.alertService = alertService;
|
|
43
|
+
this.techlifyUpdateService = techlifyUpdateService;
|
|
44
|
+
this.onSave = new EventEmitter();
|
|
45
|
+
this.isUpdateMode = false;
|
|
46
|
+
this.toolbar = [
|
|
47
|
+
['bold', 'italic'],
|
|
48
|
+
['bullet_list'],
|
|
49
|
+
];
|
|
50
|
+
this.createForm();
|
|
51
|
+
}
|
|
52
|
+
createForm() {
|
|
53
|
+
this.techlifyUpdateForm = this.fb.group({
|
|
54
|
+
id: new UntypedFormControl(''),
|
|
55
|
+
title: new UntypedFormControl('', Validators.required),
|
|
56
|
+
description: new UntypedFormControl('', Validators.required),
|
|
57
|
+
version: new UntypedFormControl('', Validators.required),
|
|
58
|
+
released_on: new UntypedFormControl('', Validators.required),
|
|
59
|
+
learn_more_link: new UntypedFormControl('', Validators.compose([Validators.pattern('(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?')])),
|
|
60
|
+
});
|
|
61
|
+
if (this.data.techlifyUpdateDetails) {
|
|
62
|
+
this.isUpdateMode = true;
|
|
63
|
+
this.techlifyUpdateForm.patchValue(this.data.techlifyUpdateDetails);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ngOnInit() {
|
|
67
|
+
this.editor = new Editor();
|
|
68
|
+
}
|
|
69
|
+
async submit() {
|
|
70
|
+
if (this.techlifyUpdateForm.valid) {
|
|
71
|
+
let result;
|
|
72
|
+
const model = this.techlifyUpdateForm.value;
|
|
73
|
+
try {
|
|
74
|
+
result = this.isUpdateMode ? await this.techlifyUpdateService.updateTechlifyUpdate(model)
|
|
75
|
+
: await this.techlifyUpdateService.createTechlifyUpdate(model);
|
|
76
|
+
this.alertService.addAlert("Techlify app update saved successfully", "success");
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
this.alertService.addAlert("Unable to process, try later", "warn");
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
if (result) {
|
|
83
|
+
this.dialogRef.close(result);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
resetFieldValue(field) {
|
|
89
|
+
this.techlifyUpdateForm.get(field).setValue('');
|
|
90
|
+
}
|
|
91
|
+
getFieldValue(field) {
|
|
92
|
+
return this.techlifyUpdateForm.get(field).value;
|
|
93
|
+
}
|
|
94
|
+
/** Method to evaluate form fields*/
|
|
95
|
+
isFieldValid(field) {
|
|
96
|
+
return this.formValidatorService.isFieldValid(field, this.techlifyUpdateForm, true);
|
|
97
|
+
}
|
|
98
|
+
/** Method to find error in form fields*/
|
|
99
|
+
getErrorMessage(field) {
|
|
100
|
+
return this.formValidatorService.getErrorMessage(field, this.techlifyUpdateForm, errorMessages);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
TechlifyUpdateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.UntypedFormBuilder }, { token: i3.FormValidatorService }, { token: i4.AlertService }, { token: i5.TechlifyUpdateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
TechlifyUpdateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyUpdateFormComponent, selector: "app-techlify-update-form", outputs: { onSave: "onSave" }, ngImport: i0, template: "<form [formGroup]=\"techlifyUpdateForm\" (ngSubmit)=\"submit()\">\r\n <div fxLayout=\"column\" class=\"mat-typography\">\r\n <div mat-dialog-title class=\"text-center\">\r\n <h2>\r\n App Update Form\r\n </h2>\r\n </div>\r\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Title</mat-label>\r\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" required />\r\n <button mat-button *ngIf=\"getFieldValue('title')\" matSuffix mat-icon-button (click)=\"resetFieldValue('title')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('title')\">\r\n {{getErrorMessage('title')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput [matDatepicker]=\"released_on\" formControlName=\"released_on\" placeholder=\"Released on\" readonly\r\n (click)=\"released_on.open()\" required />\r\n <mat-datepicker-toggle matSuffix [for]=\"released_on\"></mat-datepicker-toggle>\r\n <mat-datepicker #released_on></mat-datepicker>\r\n <button mat-button *ngIf=\"getFieldValue('released_on')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('released_on')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('released_on')\">\r\n {{getErrorMessage('released_on')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Version</mat-label>\r\n <input matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" required />\r\n <button mat-button *ngIf=\"getFieldValue('version')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('version')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('version')\">\r\n {{getErrorMessage('version')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Learn more link</mat-label>\r\n <input matInput formControlName=\"learn_more_link\" placeholder=\"Learn More Link\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"getFieldValue('learn_more_link')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('learn_more_link')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('learn_more_link')\">\r\n {{getErrorMessage('learn_more_link')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div fxFlex=\"100%\">\r\n <div class=\"NgxEditor__Wrapper\">\r\n <ngx-editor-menu [toolbar]=\"toolbar\" [editor]=\"editor\"> </ngx-editor-menu>\r\n <ngx-editor formControlName=\"description\" [editor]=\"editor\" placeholder=\"Description\">\r\n </ngx-editor>\r\n </div>\r\n <mat-error *ngIf=\"isFieldValid('description')\">\r\n {{getErrorMessage('description')}}\r\n </mat-error>\r\n </div>\r\n </div>\r\n <div mat-dialog-actions fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\r\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\r\n Cancel\r\n </button>\r\n <button mat-raised-button type=\"submit\" class=\"btn-primary mt-2\">\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i13.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i13.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }] });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'app-techlify-update-form', template: "<form [formGroup]=\"techlifyUpdateForm\" (ngSubmit)=\"submit()\">\r\n <div fxLayout=\"column\" class=\"mat-typography\">\r\n <div mat-dialog-title class=\"text-center\">\r\n <h2>\r\n App Update Form\r\n </h2>\r\n </div>\r\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Title</mat-label>\r\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" required />\r\n <button mat-button *ngIf=\"getFieldValue('title')\" matSuffix mat-icon-button (click)=\"resetFieldValue('title')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('title')\">\r\n {{getErrorMessage('title')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput [matDatepicker]=\"released_on\" formControlName=\"released_on\" placeholder=\"Released on\" readonly\r\n (click)=\"released_on.open()\" required />\r\n <mat-datepicker-toggle matSuffix [for]=\"released_on\"></mat-datepicker-toggle>\r\n <mat-datepicker #released_on></mat-datepicker>\r\n <button mat-button *ngIf=\"getFieldValue('released_on')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('released_on')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('released_on')\">\r\n {{getErrorMessage('released_on')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Version</mat-label>\r\n <input matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" required />\r\n <button mat-button *ngIf=\"getFieldValue('version')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('version')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('version')\">\r\n {{getErrorMessage('version')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field fxFlex=\"100%\">\r\n <mat-label>Learn more link</mat-label>\r\n <input matInput formControlName=\"learn_more_link\" placeholder=\"Learn More Link\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"getFieldValue('learn_more_link')\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('learn_more_link')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"isFieldValid('learn_more_link')\">\r\n {{getErrorMessage('learn_more_link')}}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div fxFlex=\"100%\">\r\n <div class=\"NgxEditor__Wrapper\">\r\n <ngx-editor-menu [toolbar]=\"toolbar\" [editor]=\"editor\"> </ngx-editor-menu>\r\n <ngx-editor formControlName=\"description\" [editor]=\"editor\" placeholder=\"Description\">\r\n </ngx-editor>\r\n </div>\r\n <mat-error *ngIf=\"isFieldValid('description')\">\r\n {{getErrorMessage('description')}}\r\n </mat-error>\r\n </div>\r\n </div>\r\n <div mat-dialog-actions fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\r\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\r\n Cancel\r\n </button>\r\n <button mat-raised-button type=\"submit\" class=\"btn-primary mt-2\">\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n</form>" }]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
109
|
+
type: Inject,
|
|
110
|
+
args: [MAT_DIALOG_DATA]
|
|
111
|
+
}] }, { type: i2.UntypedFormBuilder }, { type: i3.FormValidatorService }, { type: i4.AlertService }, { type: i5.TechlifyUpdateService }]; }, propDecorators: { onSave: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWZvcm0vdGVjaGxpZnktdXBkYXRlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWZvcm0vdGVjaGxpZnktdXBkYXRlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFN0MsTUFBTSxhQUFhLEdBQVE7SUFDekIsS0FBSyxFQUFFO1FBQ0wsUUFBUSxFQUFFLG1CQUFtQjtLQUM5QjtJQUNELFdBQVcsRUFBRTtRQUNYLFFBQVEsRUFBRSx5QkFBeUI7S0FDcEM7SUFDRCxPQUFPLEVBQUU7UUFDUCxRQUFRLEVBQUUscUJBQXFCO0tBQ2hDO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNELGVBQWUsRUFBRTtRQUNmLE9BQU8sRUFBRSx5QkFBeUI7S0FDbkM7Q0FDRixDQUFBO0FBT0QsTUFBTSxPQUFPLDJCQUEyQjtJQVd0QyxZQUNTLFNBQW9ELEVBQzNCLElBQVMsRUFDakMsRUFBc0IsRUFDdEIs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O0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCx5Q0FBeUM7SUFDekMsZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbEcsQ0FBQzs7d0hBOUVVLDJCQUEyQiw4Q0FhNUIsZUFBZTs0R0FiZCwyQkFBMkIsK0ZDaEN4QyxzaUhBNkVPOzJGRDdDTSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCOzswQkFpQmpDLE1BQU07MkJBQUMsZUFBZTsrS0FYZixNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hbGVydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRlY2hsaWZ5VXBkYXRlU2VydmljZSB9IGZyb20gJy4vLi4vdGVjaGxpZnktdXBkYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0tdmFsaWRhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEVkaXRvciwgVG9vbGJhciB9IGZyb20gJ25neC1lZGl0b3InO1xyXG5cclxuY29uc3QgZXJyb3JNZXNzYWdlczogYW55ID0ge1xyXG4gIHRpdGxlOiB7XHJcbiAgICByZXF1aXJlZDogXCJUaXRsZSBpcyByZXF1aXJlZFwiLFxyXG4gIH0sXHJcbiAgcmVsZWFzZWRfb246IHtcclxuICAgIHJlcXVpcmVkOiBcIlJlbGVhc2VkIE9uIGlzIHJlcXVpcmVkXCIsXHJcbiAgfSxcclxuICB2ZXJzaW9uOiB7XHJcbiAgICByZXF1aXJlZDogXCJWZXJzaW9uIGlzIHJlcXVpcmVkXCIsXHJcbiAgfSxcclxuICBkZXNjcmlwdGlvbjoge1xyXG4gICAgcmVxdWlyZWQ6IFwiRGVzY3JpcHRpb24gaXMgcmVxdWlyZWRcIixcclxuICB9LFxyXG4gIGxlYXJuX21vcmVfbGluazoge1xyXG4gICAgcGF0dGVybjogXCJQbGVhc2UgZW50ZXIgdmFsaWQgbGlua1wiLFxyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktdXBkYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS11cGRhdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdXBkYXRlLWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlVcGRhdGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIHRlY2hsaWZ5VXBkYXRlRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBpc1VwZGF0ZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlZGl0b3I6IEVkaXRvcjtcclxuICB0b29sYmFyOiBUb29sYmFyID0gW1xyXG4gICAgWydib2xkJywgJ2l0YWxpYyddLFxyXG4gICAgWydidWxsZXRfbGlzdCddLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlY2hsaWZ5VXBkYXRlRm9ybUNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgdGVjaGxpZnlVcGRhdGVTZXJ2aWNlOiBUZWNobGlmeVVwZGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy50ZWNobGlmeVVwZGF0ZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICB0aXRsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdmVyc2lvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHJlbGVhc2VkX29uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgbGVhcm5fbW9yZV9saW5rOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucGF0dGVybignKGh0dHBzPzovLyk/KFtcXFxcZGEtei4tXSspXFxcXC4oW2Etei5dezIsNn0pWy9cXFxcdyAuLV0qLz8nKV0pKSxcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZGF0YS50ZWNobGlmeVVwZGF0ZURldGFpbHMpIHtcclxuICAgICAgdGhpcy5pc1VwZGF0ZU1vZGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRlY2hsaWZ5VXBkYXRlRm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YS50ZWNobGlmeVVwZGF0ZURldGFpbHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmVkaXRvciA9IG5ldyBFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLnRlY2hsaWZ5VXBkYXRlRm9ybS52YWxpZCkge1xyXG4gICAgICBsZXQgcmVzdWx0O1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMudGVjaGxpZnlVcGRhdGVGb3JtLnZhbHVlO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICByZXN1bHQgPSB0aGlzLmlzVXBkYXRlTW9kZSA/IGF3YWl0IHRoaXMudGVjaGxpZnlVcGRhdGVTZXJ2aWNlLnVwZGF0ZVRlY2hsaWZ5VXBkYXRlKG1vZGVsKVxyXG4gICAgICAgICAgOiBhd2FpdCB0aGlzLnRlY2hsaWZ5VXBkYXRlU2VydmljZS5jcmVhdGVUZWNobGlmeVVwZGF0ZShtb2RlbCk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXHJcbiAgICAgICAgICBcIlRlY2hsaWZ5IGFwcCB1cGRhdGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICBcInN1Y2Nlc3NcIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXCJVbmFibGUgdG8gcHJvY2VzcywgdHJ5IGxhdGVyXCIsIFwid2FyblwiKTtcclxuICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGVjaGxpZnlVcGRhdGVGb3JtLmdldChmaWVsZCkuc2V0VmFsdWUoJycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZWNobGlmeVVwZGF0ZUZvcm0uZ2V0KGZpZWxkKS52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBNZXRob2QgdG8gZXZhbHVhdGUgZm9ybSBmaWVsZHMqL1xyXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMudGVjaGxpZnlVcGRhdGVGb3JtLCB0cnVlKTtcclxuICB9XHJcbiAgLyoqIE1ldGhvZCB0byBmaW5kIGVycm9yIGluIGZvcm0gZmllbGRzKi9cclxuICBnZXRFcnJvck1lc3NhZ2UoZmllbGQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLCB0aGlzLnRlY2hsaWZ5VXBkYXRlRm9ybSwgZXJyb3JNZXNzYWdlcyk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cInRlY2hsaWZ5VXBkYXRlRm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDI+XHJcbiAgICAgICAgQXBwIFVwZGF0ZSBGb3JtXHJcbiAgICAgIDwvaDI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5UaXRsZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHBsYWNlaG9sZGVyPVwiVGl0bGVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImdldEZpZWxkVmFsdWUoJ3RpdGxlJylcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ3RpdGxlJylcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgndGl0bGUnKVwiPlxyXG4gICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ3RpdGxlJyl9fVxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicmVsZWFzZWRfb25cIiBmb3JtQ29udHJvbE5hbWU9XCJyZWxlYXNlZF9vblwiIHBsYWNlaG9sZGVyPVwiUmVsZWFzZWQgb25cIiByZWFkb25seVxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlbGVhc2VkX29uLm9wZW4oKVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJyZWxlYXNlZF9vblwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcmVsZWFzZWRfb24+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCdyZWxlYXNlZF9vbicpXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZSgncmVsZWFzZWRfb24nKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdyZWxlYXNlZF9vbicpXCI+XHJcbiAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgncmVsZWFzZWRfb24nKX19XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+VmVyc2lvbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJzaW9uXCIgcGxhY2Vob2xkZXI9XCJWZXJzaW9uXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCd2ZXJzaW9uJylcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVzZXRGaWVsZFZhbHVlKCd2ZXJzaW9uJylcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgndmVyc2lvbicpXCI+XHJcbiAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgndmVyc2lvbicpfX1cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5MZWFybiBtb3JlIGxpbms8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGVhcm5fbW9yZV9saW5rXCIgcGxhY2Vob2xkZXI9XCJMZWFybiBNb3JlIExpbmtcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImdldEZpZWxkVmFsdWUoJ2xlYXJuX21vcmVfbGluaycpXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZSgnbGVhcm5fbW9yZV9saW5rJylcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnbGVhcm5fbW9yZV9saW5rJylcIj5cclxuICAgICAgICAgIHt7Z2V0RXJyb3JNZXNzYWdlKCdsZWFybl9tb3JlX2xpbmsnKX19XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiTmd4RWRpdG9yX19XcmFwcGVyXCI+XHJcbiAgICAgICAgICA8bmd4LWVkaXRvci1tZW51IFt0b29sYmFyXT1cInRvb2xiYXJcIiBbZWRpdG9yXT1cImVkaXRvclwiPiA8L25neC1lZGl0b3ItbWVudT5cclxuICAgICAgICAgIDxuZ3gtZWRpdG9yIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgW2VkaXRvcl09XCJlZGl0b3JcIiBwbGFjZWhvbGRlcj1cIkRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICA8L25neC1lZGl0b3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnZGVzY3JpcHRpb24nKVwiPlxyXG4gICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ2Rlc2NyaXB0aW9uJyl9fVxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgZnhGbGV4PVwiMTAwJVwiIGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeExheW91dEdhcD1cIjFyZW1cIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibXQtMlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cclxuICAgICAgICBDYW5jZWxcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuLXByaW1hcnkgbXQtMlwiPlxyXG4gICAgICAgIFNhdmVcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { MaterialModule } from './../../material.module';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { TechlifyUpdateFormComponent } from './techlify-update-form.component';
|
|
7
|
+
import { NgxEditorModule } from 'ngx-editor';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class TechlifyUpdateFormModule {
|
|
10
|
+
}
|
|
11
|
+
TechlifyUpdateFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
TechlifyUpdateFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormModule, declarations: [TechlifyUpdateFormComponent], imports: [CommonModule,
|
|
13
|
+
ReactiveFormsModule,
|
|
14
|
+
MaterialModule,
|
|
15
|
+
FlexLayoutModule,
|
|
16
|
+
NgxEditorModule], exports: [TechlifyUpdateFormComponent] });
|
|
17
|
+
TechlifyUpdateFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormModule, imports: [CommonModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
MaterialModule,
|
|
20
|
+
FlexLayoutModule,
|
|
21
|
+
NgxEditorModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateFormModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [TechlifyUpdateFormComponent],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
MaterialModule,
|
|
30
|
+
FlexLayoutModule,
|
|
31
|
+
NgxEditorModule,
|
|
32
|
+
],
|
|
33
|
+
exports: [
|
|
34
|
+
TechlifyUpdateFormComponent
|
|
35
|
+
]
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWZvcm0vdGVjaGxpZnktdXBkYXRlLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQWU3QyxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBWmxCLDJCQUEyQixhQUV0QyxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsZUFBZSxhQUdmLDJCQUEyQjtzSEFHdEIsd0JBQXdCLFlBVjdCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixlQUFlOzJGQU1WLHdCQUF3QjtrQkFicEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLDJCQUEyQjtxQkFDOUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGVjaGxpZnlVcGRhdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS11cGRhdGUtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ3hFZGl0b3JNb2R1bGUgfSBmcm9tICduZ3gtZWRpdG9yJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtUZWNobGlmeVVwZGF0ZUZvcm1Db21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICAgICAgTmd4RWRpdG9yTW9kdWxlLFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBUZWNobGlmeVVwZGF0ZUZvcm1Db21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5VXBkYXRlRm9ybU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TechlifyUpdateHistoryComponent } from './techlify-update-history.component';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
const routes = [
|
|
7
|
+
{ path: '', redirectTo: 'update-history', pathMatch: 'full' },
|
|
8
|
+
{ path: 'update-history', component: TechlifyUpdateHistoryComponent },
|
|
9
|
+
//fallback
|
|
10
|
+
{
|
|
11
|
+
path: '**',
|
|
12
|
+
redirectTo: 'all',
|
|
13
|
+
pathMatch: 'full'
|
|
14
|
+
}
|
|
15
|
+
];
|
|
16
|
+
export class TechlifyUpdateHistoryRoutingModule {
|
|
17
|
+
}
|
|
18
|
+
TechlifyUpdateHistoryRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
TechlifyUpdateHistoryRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
20
|
+
TechlifyUpdateHistoryRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
imports: [RouterModule.forChild(routes)],
|
|
25
|
+
exports: [RouterModule]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLWhpc3Rvcnktcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXVwZGF0ZS90ZWNobGlmeS11cGRhdGUtaGlzdG9yeS90ZWNobGlmeS11cGRhdGUtaGlzdG9yeS1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXZELE1BQU0sTUFBTSxHQUFXO0lBQ3JCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUM3RCxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsOEJBQThCLEVBQUU7SUFFckUsVUFBVTtJQUNWO1FBQ0UsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsS0FBSztRQUNqQixTQUFTLEVBQUUsTUFBTTtLQUNsQjtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sa0NBQWtDOzsrSEFBbEMsa0NBQWtDO2dJQUFsQyxrQ0FBa0Msd0NBRm5DLFlBQVk7Z0lBRVgsa0NBQWtDLFlBSG5DLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsa0NBQWtDO2tCQUo5QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZWNobGlmeVVwZGF0ZUhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXVwZGF0ZS1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHsgcGF0aDogJycsIHJlZGlyZWN0VG86ICd1cGRhdGUtaGlzdG9yeScsIHBhdGhNYXRjaDogJ2Z1bGwnIH0sXHJcbiAgeyBwYXRoOiAndXBkYXRlLWhpc3RvcnknLCBjb21wb25lbnQ6IFRlY2hsaWZ5VXBkYXRlSGlzdG9yeUNvbXBvbmVudCB9LFxyXG5cclxuICAvL2ZhbGxiYWNrXHJcbiAge1xyXG4gICAgcGF0aDogJyoqJyxcclxuICAgIHJlZGlyZWN0VG86ICdhbGwnLFxyXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcclxuICB9XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5VXBkYXRlSGlzdG9yeVJvdXRpbmdNb2R1bGUgeyB9XHJcbiJdfQ==
|
package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { UntilDestroy } from '@ngneat/until-destroy';
|
|
3
|
+
import { untilDestroyed } from '@ngneat/until-destroy';
|
|
4
|
+
import { UpdateViewComponent } from './../update-view/update-view.component';
|
|
5
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
6
|
+
import { Component } from '@angular/core';
|
|
7
|
+
import { debounceTime } from 'rxjs/operators';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/dialog";
|
|
10
|
+
import * as i2 from "./../techlify-update.service";
|
|
11
|
+
import * as i3 from "@angular/forms";
|
|
12
|
+
import * as i4 from "./../../core/alert.service";
|
|
13
|
+
import * as i5 from "@angular/common";
|
|
14
|
+
import * as i6 from "ngx-infinite-scroll";
|
|
15
|
+
import * as i7 from "@angular/flex-layout/flex";
|
|
16
|
+
import * as i8 from "@angular/material/button";
|
|
17
|
+
import * as i9 from "@angular/material/form-field";
|
|
18
|
+
import * as i10 from "@angular/material/icon";
|
|
19
|
+
import * as i11 from "@angular/material/input";
|
|
20
|
+
import * as i12 from "@angular/material/sort";
|
|
21
|
+
import * as i13 from "@angular/material/table";
|
|
22
|
+
import * as i14 from "../../read-more/read-more.component";
|
|
23
|
+
let TechlifyUpdateHistoryComponent = class TechlifyUpdateHistoryComponent {
|
|
24
|
+
constructor(dialog, techlifyUpdateService, fb, alertService) {
|
|
25
|
+
this.dialog = dialog;
|
|
26
|
+
this.techlifyUpdateService = techlifyUpdateService;
|
|
27
|
+
this.fb = fb;
|
|
28
|
+
this.alertService = alertService;
|
|
29
|
+
this.techlifyUpdates = [];
|
|
30
|
+
this.displayedColumns = [
|
|
31
|
+
'index',
|
|
32
|
+
'title',
|
|
33
|
+
'version',
|
|
34
|
+
'released_on',
|
|
35
|
+
'learn_more_link',
|
|
36
|
+
'description',
|
|
37
|
+
'creator',
|
|
38
|
+
'actions'
|
|
39
|
+
];
|
|
40
|
+
this.page = 1;
|
|
41
|
+
this.perPage = 25;
|
|
42
|
+
this.isWorking = false;
|
|
43
|
+
this.filterFormGroup = this.fb.group({
|
|
44
|
+
search: new UntypedFormControl(''),
|
|
45
|
+
version: new UntypedFormControl(''),
|
|
46
|
+
sort_by: new UntypedFormControl('released_on|DESC'),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
ngOnInit() {
|
|
50
|
+
this.loadData();
|
|
51
|
+
this.listenChanges();
|
|
52
|
+
this.updateCurrentUserUpdates();
|
|
53
|
+
}
|
|
54
|
+
listenChanges() {
|
|
55
|
+
this.filterFormGroup.valueChanges.pipe(debounceTime(500), untilDestroyed(this))
|
|
56
|
+
.subscribe(changes => {
|
|
57
|
+
this.reload();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() { }
|
|
61
|
+
async loadData() {
|
|
62
|
+
try {
|
|
63
|
+
this.isWorking = true;
|
|
64
|
+
var filters = this.filterFormGroup.value;
|
|
65
|
+
filters.perPage = this.perPage;
|
|
66
|
+
filters.page = this.page;
|
|
67
|
+
let result = await this.techlifyUpdateService.getTechlifyUpdates(filters);
|
|
68
|
+
this.lastPage = result.last_page || this.page;
|
|
69
|
+
this.techlifyUpdates = this.techlifyUpdates.concat(result.data);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.alertService.addAlert("Unable to process, try later", "warn");
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
this.isWorking = false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
reload() {
|
|
79
|
+
this.techlifyUpdates = [];
|
|
80
|
+
this.page = 1;
|
|
81
|
+
if (!this.isWorking) {
|
|
82
|
+
this.loadData();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
onScroll() {
|
|
86
|
+
if (!this.isWorking && this.page < this.lastPage) {
|
|
87
|
+
this.page += 1;
|
|
88
|
+
this.loadData();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
resetFieldValue(field) {
|
|
92
|
+
this.filterFormGroup.get(field).setValue("");
|
|
93
|
+
}
|
|
94
|
+
sortColumn(event) {
|
|
95
|
+
var direction = event.direction.toString().toUpperCase();
|
|
96
|
+
this.assignFilter(event.active, direction);
|
|
97
|
+
}
|
|
98
|
+
assignFilter(column, direction) {
|
|
99
|
+
switch (column) {
|
|
100
|
+
case 'title': {
|
|
101
|
+
return this.filterFormGroup.get('sort_by').setValue("title|" + direction);
|
|
102
|
+
}
|
|
103
|
+
case 'released_on': {
|
|
104
|
+
return this.filterFormGroup.get('sort_by').setValue("released_on|" + direction);
|
|
105
|
+
}
|
|
106
|
+
case 'version': {
|
|
107
|
+
return this.filterFormGroup.get('sort_by').setValue("version|" + direction);
|
|
108
|
+
}
|
|
109
|
+
default: {
|
|
110
|
+
return this.filterFormGroup.get('sort_by').setValue("created_at|DESC");
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
;
|
|
114
|
+
}
|
|
115
|
+
openUpdateView(techlifyUpdate) {
|
|
116
|
+
const dialogRef = this.dialog.open(UpdateViewComponent, {
|
|
117
|
+
width: "800px",
|
|
118
|
+
autoFocus: false,
|
|
119
|
+
data: {
|
|
120
|
+
techlifyUpdate: techlifyUpdate,
|
|
121
|
+
isFromHistory: true,
|
|
122
|
+
} // Any data passed here will be injected into the model
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
async updateCurrentUserUpdates() {
|
|
126
|
+
try {
|
|
127
|
+
await this.techlifyUpdateService.updateCurrentUserUpdates();
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
this.alertService.addAlert("Unable to process, try later", "warn");
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
TechlifyUpdateHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryComponent, deps: [{ token: i1.MatDialog }, { token: i2.TechlifyUpdateService }, { token: i3.UntypedFormBuilder }, { token: i4.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
+
TechlifyUpdateHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyUpdateHistoryComponent, selector: "app-techlify-update-history", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\r\n <h3 class=\"primary-color text-center\">\r\n App Updates\r\n </h3>\r\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\r\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\r\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\r\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('search')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\r\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\r\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('version')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </form>\r\n\r\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\r\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\r\n (scrolled)=\"onScroll()\">\r\n\r\n <!-- Index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef> # </th>\r\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\r\n </ng-container>\r\n\r\n <!-- Course Column -->\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\r\n </ng-container>\r\n\r\n <!-- Version Column -->\r\n <ng-container matColumnDef=\"version\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\r\n </ng-container>\r\n\r\n <!-- Released On Column -->\r\n <ng-container matColumnDef=\"released_on\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\r\n </ng-container>\r\n\r\n <!-- Learn More Link Column -->\r\n <ng-container matColumnDef=\"learn_more_link\">\r\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\r\n {{element?.learn_more_link}}\r\n </a>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef> Description </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Creator Column -->\r\n <ng-container matColumnDef=\"creator\">\r\n <th mat-header-cell *matHeaderCellDef> Creator </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{element?.creator?.name}}\r\n <div fxLayout class=\"small\">\r\n {{element?.created_at | date : 'mediumDate'}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Actions Column -->\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef> Actions </th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\r\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\r\n <mat-icon>remove_red_eye</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</section>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
|
|
136
|
+
TechlifyUpdateHistoryComponent = __decorate([
|
|
137
|
+
UntilDestroy()
|
|
138
|
+
], TechlifyUpdateHistoryComponent);
|
|
139
|
+
export { TechlifyUpdateHistoryComponent };
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryComponent, decorators: [{
|
|
141
|
+
type: Component,
|
|
142
|
+
args: [{ selector: 'app-techlify-update-history', template: "<section class=\"p-4\" fxLayout=\"column\">\r\n <h3 class=\"primary-color text-center\">\r\n App Updates\r\n </h3>\r\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\r\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\r\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\r\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('search')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\r\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\r\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\r\n <button mat-button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\r\n (click)=\"resetFieldValue('version')\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </form>\r\n\r\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\r\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\r\n (scrolled)=\"onScroll()\">\r\n\r\n <!-- Index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef> # </th>\r\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\r\n </ng-container>\r\n\r\n <!-- Course Column -->\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\r\n </ng-container>\r\n\r\n <!-- Version Column -->\r\n <ng-container matColumnDef=\"version\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\r\n </ng-container>\r\n\r\n <!-- Released On Column -->\r\n <ng-container matColumnDef=\"released_on\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\r\n </ng-container>\r\n\r\n <!-- Learn More Link Column -->\r\n <ng-container matColumnDef=\"learn_more_link\">\r\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\r\n {{element?.learn_more_link}}\r\n </a>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef> Description </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Creator Column -->\r\n <ng-container matColumnDef=\"creator\">\r\n <th mat-header-cell *matHeaderCellDef> Creator </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{element?.creator?.name}}\r\n <div fxLayout class=\"small\">\r\n {{element?.created_at | date : 'mediumDate'}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Actions Column -->\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef> Actions </th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\r\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\r\n <mat-icon>remove_red_eye</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</section>\r\n" }]
|
|
143
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.TechlifyUpdateService }, { type: i3.UntypedFormBuilder }, { type: i4.AlertService }]; } });
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lBUWpDLDhCQUE4QixTQUE5Qiw4QkFBOEI7SUFrQnpDLFlBQ1UsTUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLEVBQXNCLEVBQ3RCLFlBQTBCO1FBSDFCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXJCcEMsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQWE7WUFDM0IsT0FB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STtZQUNGLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDN0Q7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLDhCQUE4QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztDQUNGLENBQUE7MkhBNUhZLDhCQUE4QjsrR0FBOUIsOEJBQThCLG1FQ2pCM0MsMHpJQThGQTtBRDdFYSw4QkFBOEI7SUFOMUMsWUFBWSxFQUFFO0dBTUYsOEJBQThCLENBNEgxQztTQTVIWSw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnRpbERlc3Ryb3kgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vLi4vLi4vY29yZS9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBkYXRlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vLi4vdXBkYXRlLXZpZXcvdXBkYXRlLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVjaGxpZnlVcGRhdGVTZXJ2aWNlIH0gZnJvbSAnLi8uLi90ZWNobGlmeS11cGRhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AVW50aWxEZXN0cm95KClcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktdXBkYXRlLWhpc3RvcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS11cGRhdGUtaGlzdG9yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlVcGRhdGVIaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0ZWNobGlmeVVwZGF0ZXM6IGFueVtdID0gW107XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXHJcbiAgICAnaW5kZXgnLFxyXG4gICAgJ3RpdGxlJyxcclxuICAgICd2ZXJzaW9uJyxcclxuICAgICdyZWxlYXNlZF9vbicsXHJcbiAgICAnbGVhcm5fbW9yZV9saW5rJyxcclxuICAgICdkZXNjcmlwdGlvbicsXHJcbiAgICAnY3JlYXRvcicsXHJcbiAgICAnYWN0aW9ucydcclxuICBdO1xyXG4gIHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgbGFzdFBhZ2U6IG51bWJlcjtcclxuICBwZXJQYWdlOiBudW1iZXIgPSAyNTtcclxuICBpc1dvcmtpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmaWx0ZXJGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdGVjaGxpZnlVcGRhdGVTZXJ2aWNlOiBUZWNobGlmeVVwZGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzZWFyY2g6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICB2ZXJzaW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgc29ydF9ieTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgncmVsZWFzZWRfb258REVTQycpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZERhdGEoKTtcclxuICAgIHRoaXMubGlzdGVuQ2hhbmdlcygpO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW50VXNlclVwZGF0ZXMoKTtcclxuICB9XHJcblxyXG4gIGxpc3RlbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXHJcbiAgICAgIC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHsgfVxyXG5cclxuICBhc3luYyBsb2FkRGF0YSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcclxuICAgICAgdmFyIGZpbHRlcnM6IGFueSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlO1xyXG4gICAgICBmaWx0ZXJzLnBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XHJcbiAgICAgIGZpbHRlcnMucGFnZSA9IHRoaXMucGFnZTtcclxuICAgICAgbGV0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy50ZWNobGlmeVVwZGF0ZVNlcnZpY2UuZ2V0VGVjaGxpZnlVcGRhdGVzKFxyXG4gICAgICAgIGZpbHRlcnNcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdC5sYXN0X3BhZ2UgfHwgdGhpcy5wYWdlO1xyXG4gICAgICB0aGlzLnRlY2hsaWZ5VXBkYXRlcyA9IHRoaXMudGVjaGxpZnlVcGRhdGVzLmNvbmNhdChyZXN1bHQuZGF0YSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcIlVuYWJsZSB0byBwcm9jZXNzLCB0cnkgbGF0ZXJcIiwgXCJ3YXJuXCIpO1xyXG4gICAgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWxvYWQoKSB7XHJcbiAgICB0aGlzLnRlY2hsaWZ5VXBkYXRlcyA9IFtdO1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcclxuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nICYmIHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcclxuICAgICAgdGhpcy5wYWdlICs9IDE7XHJcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoZmllbGQpLnNldFZhbHVlKFwiXCIpO1xyXG4gIH1cclxuXHJcbiAgc29ydENvbHVtbihldmVudCkge1xyXG4gICAgdmFyIGRpcmVjdGlvbiA9IGV2ZW50LmRpcmVjdGlvbi50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICB0aGlzLmFzc2lnbkZpbHRlcihldmVudC5hY3RpdmUsIGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBhc3NpZ25GaWx0ZXIoY29sdW1uLCBkaXJlY3Rpb24pIHtcclxuICAgIHN3aXRjaCAoY29sdW1uKSB7XHJcbiAgICAgIGNhc2UgJ3RpdGxlJzoge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3NvcnRfYnknKS5zZXRWYWx1ZShcInRpdGxlfFwiICsgZGlyZWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdyZWxlYXNlZF9vbic6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoXCJyZWxlYXNlZF9vbnxcIiArIGRpcmVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAndmVyc2lvbic6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoXCJ2ZXJzaW9ufFwiICsgZGlyZWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnc29ydF9ieScpLnNldFZhbHVlKFwiY3JlYXRlZF9hdHxERVNDXCIpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb3BlblVwZGF0ZVZpZXcodGVjaGxpZnlVcGRhdGU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVcGRhdGVWaWV3Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBcIjgwMHB4XCIsXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0ZWNobGlmeVVwZGF0ZTogdGVjaGxpZnlVcGRhdGUsXHJcbiAgICAgICAgaXNGcm9tSGlzdG9yeTogdHJ1ZSxcclxuICAgICAgfSAvLyBBbnkgZGF0YSBwYXNzZWQgaGVyZSB3aWxsIGJlIGluamVjdGVkIGludG8gdGhlIG1vZGVsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZUN1cnJlbnRVc2VyVXBkYXRlcygpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudGVjaGxpZnlVcGRhdGVTZXJ2aWNlLnVwZGF0ZUN1cnJlbnRVc2VyVXBkYXRlcygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXCJVbmFibGUgdG8gcHJvY2VzcywgdHJ5IGxhdGVyXCIsIFwid2FyblwiKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJwLTRcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gIDxoMyBjbGFzcz1cInByaW1hcnktY29sb3IgdGV4dC1jZW50ZXJcIj5cclxuICAgIEFwcCBVcGRhdGVzXHJcbiAgPC9oMz5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1Hcm91cFwiIGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEdhcD1cIjAuNXJlbVwiIGZ4RmxleD1cIjEwMCVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIwIDEgY2FsYygxMDAlIC0gMC41cmVtKVwiIGZ4RmxleC5ndC1tZD1cIjAgMSBjYWxjKDE1JSAtIDAuNXJlbSlcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgICAgIGZ4RmxleC5ndC1zbT1cIjAgMSBjYWxjKDIwJSAtIDAuNXJlbSlcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJUaXRsZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm1Hcm91cC5nZXQoJ3NlYXJjaCcpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ3NlYXJjaCcpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjAgMSBjYWxjKDEwMCUgLSAwLjVyZW0pXCIgZnhGbGV4Lmd0LW1kPVwiMCAxIGNhbGMoMTUlIC0gMC41cmVtKVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAgICAgZnhGbGV4Lmd0LXNtPVwiMCAxIGNhbGMoMjAlIC0gMC41cmVtKVwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJzaW9uXCIgcGxhY2Vob2xkZXI9XCJWZXJzaW9uXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uICpuZ0lmPVwiZmlsdGVyRm9ybUdyb3VwLmdldCgndmVyc2lvbicpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ3ZlcnNpb24nKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcblxyXG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidGVjaGxpZnlVcGRhdGVzXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IHctMTAwXCIgbWF0U29ydCBtdWx0aVRlbXBsYXRlRGF0YVJvd3NcclxuICAgIChtYXRTb3J0Q2hhbmdlKT1cInNvcnRDb2x1bW4oJGV2ZW50KVwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiXHJcbiAgICAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiPlxyXG5cclxuICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O2xldCBpPWRhdGFJbmRleFwiPiB7eyBpKzEgfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gQ291cnNlIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXIgZGlzYWJsZUNsZWFyPiBUaXRsZSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQ/LnRpdGxlfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gVmVyc2lvbiBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZlcnNpb25cIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXIgZGlzYWJsZUNsZWFyPiBWZXJzaW9uIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8udmVyc2lvbn19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFJlbGVhc2VkIE9uIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVsZWFzZWRfb25cIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXIgZGlzYWJsZUNsZWFyPiBSZWxlYXNlZCBPbiA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQ/LnJlbGVhc2VkX29uIHwgZGF0ZTonbWVkaXVtRGF0ZSd9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBMZWFybiBNb3JlIExpbmsgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsZWFybl9tb3JlX2xpbmtcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTGVhcm4gbW9yZSBsaW5rIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgPGEgW2hyZWZdPVwiZWxlbWVudD8ubGVhcm5fbW9yZV9saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICB7e2VsZW1lbnQ/LmxlYXJuX21vcmVfbGlua319XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEZXNjcmlwdGlvbiBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERlc2NyaXB0aW9uIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgPGFwcC1yZWFkLW1vcmUgW3RleHRdPVwiZWxlbWVudD8uZGVzY3JpcHRpb25cIiBbbWF4TGVuZ3RoXT1cIjUwXCI+PC9hcHAtcmVhZC1tb3JlPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDcmVhdG9yIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY3JlYXRvclwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDcmVhdG9yIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAge3tlbGVtZW50Py5jcmVhdG9yPy5uYW1lfX1cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0IGNsYXNzPVwic21hbGxcIj5cclxuICAgICAgICAgIHt7ZWxlbWVudD8uY3JlYXRlZF9hdCB8IGRhdGUgOiAnbWVkaXVtRGF0ZSd9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgY2xhc3M9XCJzZWNvbmRhcnktY29sb3JcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNlY29uZGFyeS1jb2xvclwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlblVwZGF0ZVZpZXcoZWxlbWVudClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5yZW1vdmVfcmVkX2V5ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxyXG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICA8L3RhYmxlPlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
2
|
+
import { TechlifyUpdateHistoryRoutingModule } from './techlify-update-history-routing.module';
|
|
3
|
+
import { ReadMoreModule } from '../../read-more/read-more.module';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { TechlifyUpdateHistoryComponent } from './techlify-update-history.component';
|
|
7
|
+
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
8
|
+
import { MaterialModule } from '../../material.module';
|
|
9
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
10
|
+
import { ActionPopupModule } from '../../action-popup/action-popup.module';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class TechlifyUpdateHistoryModule {
|
|
13
|
+
}
|
|
14
|
+
TechlifyUpdateHistoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
TechlifyUpdateHistoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryModule, declarations: [TechlifyUpdateHistoryComponent], imports: [CommonModule,
|
|
16
|
+
ReactiveFormsModule,
|
|
17
|
+
InfiniteScrollModule,
|
|
18
|
+
FlexLayoutModule,
|
|
19
|
+
MaterialModule,
|
|
20
|
+
ActionPopupModule,
|
|
21
|
+
ReadMoreModule,
|
|
22
|
+
TechlifyUpdateHistoryRoutingModule] });
|
|
23
|
+
TechlifyUpdateHistoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryModule, imports: [CommonModule,
|
|
24
|
+
ReactiveFormsModule,
|
|
25
|
+
InfiniteScrollModule,
|
|
26
|
+
FlexLayoutModule,
|
|
27
|
+
MaterialModule,
|
|
28
|
+
ActionPopupModule,
|
|
29
|
+
ReadMoreModule,
|
|
30
|
+
TechlifyUpdateHistoryRoutingModule] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateHistoryModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
imports: [
|
|
35
|
+
CommonModule,
|
|
36
|
+
ReactiveFormsModule,
|
|
37
|
+
InfiniteScrollModule,
|
|
38
|
+
FlexLayoutModule,
|
|
39
|
+
MaterialModule,
|
|
40
|
+
ActionPopupModule,
|
|
41
|
+
ReadMoreModule,
|
|
42
|
+
TechlifyUpdateHistoryRoutingModule
|
|
43
|
+
],
|
|
44
|
+
declarations: [TechlifyUpdateHistoryComponent]
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLWhpc3RvcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkvdGVjaGxpZnktdXBkYXRlLWhpc3RvcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBZTNFLE1BQU0sT0FBTywyQkFBMkI7O3dIQUEzQiwyQkFBMkI7eUhBQTNCLDJCQUEyQixpQkFGdkIsOEJBQThCLGFBVDNDLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxrQ0FBa0M7eUhBSXpCLDJCQUEyQixZQVhwQyxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsa0NBQWtDOzJGQUl6QiwyQkFBMkI7a0JBYnZDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2Qsa0NBQWtDO3FCQUNuQztvQkFDRCxZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUZWNobGlmeVVwZGF0ZUhpc3RvcnlSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi90ZWNobGlmeS11cGRhdGUtaGlzdG9yeS1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IFJlYWRNb3JlTW9kdWxlIH0gZnJvbSAnLi4vLi4vcmVhZC1tb3JlL3JlYWQtbW9yZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUZWNobGlmeVVwZGF0ZUhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXVwZGF0ZS1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIEFjdGlvblBvcHVwTW9kdWxlLFxyXG4gICAgUmVhZE1vcmVNb2R1bGUsXHJcbiAgICBUZWNobGlmeVVwZGF0ZUhpc3RvcnlSb3V0aW5nTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtUZWNobGlmeVVwZGF0ZUhpc3RvcnlDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVVwZGF0ZUhpc3RvcnlNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TechlifyUpdatesListComponent } from './techlify-updates-list/techlify-updates-list.component';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
const routes = [
|
|
7
|
+
{ path: '', redirectTo: 'all', pathMatch: 'full' },
|
|
8
|
+
{ path: 'all', component: TechlifyUpdatesListComponent },
|
|
9
|
+
//fallback
|
|
10
|
+
{
|
|
11
|
+
path: '**',
|
|
12
|
+
redirectTo: 'all',
|
|
13
|
+
pathMatch: 'full'
|
|
14
|
+
}
|
|
15
|
+
];
|
|
16
|
+
export class TechlifyUpdateRoutingModule {
|
|
17
|
+
}
|
|
18
|
+
TechlifyUpdateRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
TechlifyUpdateRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
20
|
+
TechlifyUpdateRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyUpdateRoutingModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
imports: [RouterModule.forChild(routes)],
|
|
25
|
+
exports: [RouterModule]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdXBkYXRlLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS11cGRhdGUvdGVjaGxpZnktdXBkYXRlLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFdkQsTUFBTSxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUNsRCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixFQUFFO0lBRXhELFVBQVU7SUFDVjtRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLE1BQU07S0FDbEI7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLDJCQUEyQjs7d0hBQTNCLDJCQUEyQjt5SEFBM0IsMkJBQTJCLHdDQUY1QixZQUFZO3lIQUVYLDJCQUEyQixZQUg1QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLDJCQUEyQjtrQkFKdkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVjaGxpZnlVcGRhdGVzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdGVjaGxpZnktdXBkYXRlcy1saXN0L3RlY2hsaWZ5LXVwZGF0ZXMtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAnYWxsJywgcGF0aE1hdGNoOiAnZnVsbCcgfSxcclxuICB7IHBhdGg6ICdhbGwnLCBjb21wb25lbnQ6IFRlY2hsaWZ5VXBkYXRlc0xpc3RDb21wb25lbnQgfSxcclxuXHJcbiAgLy9mYWxsYmFja1xyXG4gIHtcclxuICAgIHBhdGg6ICcqKicsXHJcbiAgICByZWRpcmVjdFRvOiAnYWxsJyxcclxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXHJcbiAgfVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVVwZGF0ZVJvdXRpbmdNb2R1bGUgeyB9XHJcbiJdfQ==
|