ngx-techlify-core 11.2.4
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 -0
- package/bundles/ngx-techlify-core.umd.js +6602 -0
- package/bundles/ngx-techlify-core.umd.js.map +1 -0
- package/bundles/ngx-techlify-core.umd.min.js +17 -0
- package/bundles/ngx-techlify-core.umd.min.js.map +1 -0
- package/esm2015/lib/action-popup/action-popup.component.js +32 -0
- package/esm2015/lib/action-popup/action-popup.model.js +3 -0
- package/esm2015/lib/action-popup/action-popup.module.js +26 -0
- package/esm2015/lib/action-popup/index.js +3 -0
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.component.js +49 -0
- package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.module.js +25 -0
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list.component.js +132 -0
- package/esm2015/lib/audit-log/audit-log-list/audit-log-list.module.js +29 -0
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.js +67 -0
- package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.js +25 -0
- package/esm2015/lib/audit-log/audit-log-routing.module.js +19 -0
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +62 -0
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.module.js +21 -0
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +59 -0
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.module.js +21 -0
- package/esm2015/lib/audit-log/audit-log.module.js +20 -0
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.js +12 -0
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.js +35 -0
- package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.js +21 -0
- package/esm2015/lib/core/alert.service.js +40 -0
- package/esm2015/lib/core/api-prefix.interceptor.js +28 -0
- package/esm2015/lib/core/authentication.guard.js +39 -0
- package/esm2015/lib/core/authentication.service.js +59 -0
- package/esm2015/lib/core/cache.interceptor.js +60 -0
- package/esm2015/lib/core/config.service.js +47 -0
- package/esm2015/lib/core/core.module.js +42 -0
- package/esm2015/lib/core/credentials.service.js +84 -0
- package/esm2015/lib/core/dataManager.service.js +121 -0
- package/esm2015/lib/core/error-handler.interceptor.js +53 -0
- package/esm2015/lib/core/error-handler.service.js +49 -0
- package/esm2015/lib/core/form-validator.service.js +23 -0
- package/esm2015/lib/core/header.interceptor.js +22 -0
- package/esm2015/lib/core/http-cache.service.js +110 -0
- package/esm2015/lib/core/http.service.js +82 -0
- package/esm2015/lib/core/index.js +21 -0
- package/esm2015/lib/core/logger.service.js +100 -0
- package/esm2015/lib/core/route-reusable-strategy.js +35 -0
- package/esm2015/lib/core/snack/snack.component.js +33 -0
- package/esm2015/lib/core/snack/snack.module.js +25 -0
- package/esm2015/lib/core/storage.service.js +37 -0
- package/esm2015/lib/core/techlify-config.model.js +26 -0
- package/esm2015/lib/core/token.interceptor.js +30 -0
- package/esm2015/lib/data-table/data-table.component.js +190 -0
- package/esm2015/lib/data-table/data-table.model.js +11 -0
- package/esm2015/lib/data-table/data-table.module.js +25 -0
- package/esm2015/lib/data-table/index.js +3 -0
- package/esm2015/lib/date-validator.js +10 -0
- package/esm2015/lib/document-viewer/document-viewer.component.js +58 -0
- package/esm2015/lib/document-viewer/document-viewer.module.js +25 -0
- package/esm2015/lib/document-viewer/index.js +3 -0
- package/esm2015/lib/document-viewer/viewer-config.model.js +3 -0
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +26 -0
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.js +72 -0
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.js +23 -0
- package/esm2015/lib/email-subscription/email-subscription-for-user/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.js +102 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.js +28 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +28 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +153 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.js +27 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type.module.js +15 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.js +99 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.js +27 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +28 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.js +155 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.js +29 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +50 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.js +25 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js +2 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.js +12 -0
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user.module.js +15 -0
- package/esm2015/lib/email-subscription/email-subscription.module.js +15 -0
- package/esm2015/lib/entity-files/entity-file-form/entity-file-form.component.js +141 -0
- package/esm2015/lib/entity-files/entity-file.service.js +38 -0
- package/esm2015/lib/entity-files/entity-files-view-all.component.js +161 -0
- package/esm2015/lib/entity-files/entity-files-view-all.module.js +34 -0
- package/esm2015/lib/entity-files/index.js +3 -0
- package/esm2015/lib/export-excel/export-excel-button/export-excel-button.component.js +32 -0
- package/esm2015/lib/export-excel/export-excel.module.js +17 -0
- package/esm2015/lib/file-dropper/file-dropper.component.js +122 -0
- package/esm2015/lib/file-dropper/file-dropper.model.js +3 -0
- package/esm2015/lib/file-dropper/file-dropper.module.js +21 -0
- package/esm2015/lib/file-dropper/index.js +3 -0
- package/esm2015/lib/import-csv/failed-items/failed-items-routing.module.js +12 -0
- package/esm2015/lib/import-csv/failed-items/failed-items.component.js +23 -0
- package/esm2015/lib/import-csv/failed-items/failed-items.module.js +21 -0
- package/esm2015/lib/import-csv/import-config.js +3 -0
- package/esm2015/lib/import-csv/import-csv-routing.module.js +12 -0
- package/esm2015/lib/import-csv/import-csv.component.js +111 -0
- package/esm2015/lib/import-csv/import-csv.module.js +27 -0
- package/esm2015/lib/import-csv/import-items/import-items-routing.module.js +12 -0
- package/esm2015/lib/import-csv/import-items/import-items.component.js +139 -0
- package/esm2015/lib/import-csv/import-items/import-items.module.js +23 -0
- package/esm2015/lib/loader/index.js +2 -0
- package/esm2015/lib/loader/loader.component.js +22 -0
- package/esm2015/lib/loader/loader.module.js +21 -0
- package/esm2015/lib/login-history-for-user/login-history-for-user-routing.module.js +20 -0
- package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +79 -0
- package/esm2015/lib/login-history-for-user/login-history-for-user.module.js +27 -0
- package/esm2015/lib/material.module.js +58 -0
- package/esm2015/lib/note/index.js +3 -0
- package/esm2015/lib/note/note-form/note-form.component.js +80 -0
- package/esm2015/lib/note/note-list/note-list.component.js +120 -0
- package/esm2015/lib/note/note.module.js +32 -0
- package/esm2015/lib/note/note.service.js +31 -0
- package/esm2015/lib/searchable-selector/index.js +3 -0
- package/esm2015/lib/searchable-selector/mat-select-infinite-scroll.directive.js +81 -0
- package/esm2015/lib/searchable-selector/searchable-selector.component.js +267 -0
- package/esm2015/lib/searchable-selector/searchable-selector.module.js +28 -0
- package/esm2015/lib/techlify-update/read-more/read-more.component.js +43 -0
- package/esm2015/lib/techlify-update/read-more/read-more.module.js +21 -0
- package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.component.js +114 -0
- package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.module.js +28 -0
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.js +22 -0
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.component.js +143 -0
- package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +28 -0
- package/esm2015/lib/techlify-update/techlify-update-routing.module.js +22 -0
- package/esm2015/lib/techlify-update/techlify-update.module.js +30 -0
- package/esm2015/lib/techlify-update/techlify-update.service.js +43 -0
- package/esm2015/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.js +161 -0
- package/esm2015/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.js +82 -0
- package/esm2015/lib/techlify-update/update-notifier/update-notifier.component.js +62 -0
- package/esm2015/lib/techlify-update/update-notifier/update-notifier.module.js +29 -0
- package/esm2015/lib/techlify-update/update-view/update-view.component.js +36 -0
- package/esm2015/lib/techlify-update/update-view/update-view.module.js +24 -0
- package/esm2015/lib/timeline-filter/calculate-timeline.js +90 -0
- package/esm2015/lib/timeline-filter/index.js +4 -0
- package/esm2015/lib/timeline-filter/timeline-filter-routing.module.js +12 -0
- package/esm2015/lib/timeline-filter/timeline-filter.component.js +57 -0
- package/esm2015/lib/timeline-filter/timeline-filter.module.js +23 -0
- package/esm2015/lib/timeline-filter/timeline.model.js +15 -0
- package/esm2015/lib/utility/date-utils.service.js +48 -0
- package/esm2015/lib/utility/index.js +4 -0
- package/esm2015/lib/utility/num-items-selector.component.js +30 -0
- package/esm2015/lib/utility/number-selector.component.js +38 -0
- package/esm2015/lib/utility/utility.module.js +21 -0
- package/esm2015/ngx-techlify-core.js +52 -0
- package/esm2015/public-api.js +91 -0
- package/fesm2015/ngx-techlify-core.js +5575 -0
- package/fesm2015/ngx-techlify-core.js.map +1 -0
- package/lib/action-popup/action-popup.component.d.ts +14 -0
- package/lib/action-popup/action-popup.model.d.ts +5 -0
- package/lib/action-popup/action-popup.module.d.ts +2 -0
- package/lib/action-popup/index.d.ts +2 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +12 -0
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -0
- package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +32 -0
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +2 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +19 -0
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -0
- package/lib/audit-log/audit-log-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +17 -0
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +15 -0
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -0
- package/lib/audit-log/audit-log.module.d.ts +2 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +2 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +11 -0
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +2 -0
- package/lib/core/alert.service.d.ts +12 -0
- package/lib/core/api-prefix.interceptor.d.ts +11 -0
- package/lib/core/authentication.guard.d.ts +10 -0
- package/lib/core/authentication.service.d.ts +23 -0
- package/lib/core/cache.interceptor.d.ts +21 -0
- package/lib/core/config.service.d.ts +19 -0
- package/lib/core/core.module.d.ts +3 -0
- package/lib/core/credentials.service.d.ts +36 -0
- package/lib/core/dataManager.service.d.ts +70 -0
- package/lib/core/error-handler.interceptor.d.ts +14 -0
- package/lib/core/error-handler.service.d.ts +12 -0
- package/lib/core/form-validator.service.d.ts +8 -0
- package/lib/core/header.interceptor.d.ts +8 -0
- package/lib/core/http-cache.service.d.ts +54 -0
- package/lib/core/http.service.d.ts +56 -0
- package/lib/core/index.d.ts +20 -0
- package/lib/core/logger.service.d.ts +85 -0
- package/lib/core/route-reusable-strategy.d.ts +13 -0
- package/lib/core/snack/snack.component.d.ts +8 -0
- package/lib/core/snack/snack.module.d.ts +2 -0
- package/lib/core/storage.service.d.ts +15 -0
- package/lib/core/techlify-config.model.d.ts +17 -0
- package/lib/core/token.interceptor.d.ts +11 -0
- package/lib/data-table/data-table.component.d.ts +60 -0
- package/lib/data-table/data-table.model.d.ts +46 -0
- package/lib/data-table/data-table.module.d.ts +2 -0
- package/lib/data-table/index.d.ts +2 -0
- package/lib/date-validator.d.ts +1 -0
- package/lib/document-viewer/document-viewer.component.d.ts +16 -0
- package/lib/document-viewer/document-viewer.module.d.ts +2 -0
- package/lib/document-viewer/index.d.ts +2 -0
- package/lib/document-viewer/viewer-config.model.d.ts +5 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +7 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +17 -0
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-for-user/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +32 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +9 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +30 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +32 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +9 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +32 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +13 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +1 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +2 -0
- package/lib/email-subscription/email-subscription.module.d.ts +2 -0
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +34 -0
- package/lib/entity-files/entity-file.service.d.ts +10 -0
- package/lib/entity-files/entity-files-view-all.component.d.ts +38 -0
- package/lib/entity-files/entity-files-view-all.module.d.ts +2 -0
- package/lib/entity-files/index.d.ts +2 -0
- package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +8 -0
- package/lib/export-excel/export-excel.module.d.ts +2 -0
- package/lib/file-dropper/file-dropper.component.d.ts +33 -0
- package/lib/file-dropper/file-dropper.model.d.ts +10 -0
- package/lib/file-dropper/file-dropper.module.d.ts +2 -0
- package/lib/file-dropper/index.d.ts +2 -0
- package/lib/import-csv/failed-items/failed-items-routing.module.d.ts +2 -0
- package/lib/import-csv/failed-items/failed-items.component.d.ts +8 -0
- package/lib/import-csv/failed-items/failed-items.module.d.ts +2 -0
- package/lib/import-csv/import-config.d.ts +5 -0
- package/lib/import-csv/import-csv-routing.module.d.ts +2 -0
- package/lib/import-csv/import-csv.component.d.ts +26 -0
- package/lib/import-csv/import-csv.module.d.ts +2 -0
- package/lib/import-csv/import-items/import-items-routing.module.d.ts +2 -0
- package/lib/import-csv/import-items/import-items.component.d.ts +30 -0
- package/lib/import-csv/import-items/import-items.module.d.ts +2 -0
- package/lib/loader/index.d.ts +1 -0
- package/lib/loader/loader.component.d.ts +8 -0
- package/lib/loader/loader.module.d.ts +2 -0
- package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +2 -0
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +21 -0
- package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -0
- package/lib/material.module.d.ts +2 -0
- package/lib/note/index.d.ts +2 -0
- package/lib/note/note-form/note-form.component.d.ts +27 -0
- package/lib/note/note-list/note-list.component.d.ts +25 -0
- package/lib/note/note.module.d.ts +2 -0
- package/lib/note/note.service.d.ts +9 -0
- package/lib/searchable-selector/index.d.ts +2 -0
- package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +23 -0
- package/lib/searchable-selector/searchable-selector.component.d.ts +75 -0
- package/lib/searchable-selector/searchable-selector.module.d.ts +2 -0
- package/lib/techlify-update/read-more/read-more.component.d.ts +12 -0
- package/lib/techlify-update/read-more/read-more.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +30 -0
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +31 -0
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update-routing.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update.module.d.ts +2 -0
- package/lib/techlify-update/techlify-update.service.d.ts +13 -0
- package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +31 -0
- package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +25 -0
- package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +16 -0
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +2 -0
- package/lib/techlify-update/update-view/update-view.component.d.ts +14 -0
- package/lib/techlify-update/update-view/update-view.module.d.ts +2 -0
- package/lib/timeline-filter/calculate-timeline.d.ts +1 -0
- package/lib/timeline-filter/index.d.ts +3 -0
- package/lib/timeline-filter/timeline-filter-routing.module.d.ts +2 -0
- package/lib/timeline-filter/timeline-filter.component.d.ts +14 -0
- package/lib/timeline-filter/timeline-filter.module.d.ts +2 -0
- package/lib/timeline-filter/timeline.model.d.ts +14 -0
- package/lib/utility/date-utils.service.d.ts +21 -0
- package/lib/utility/index.d.ts +3 -0
- package/lib/utility/num-items-selector.component.d.ts +16 -0
- package/lib/utility/number-selector.component.d.ts +20 -0
- package/lib/utility/utility.module.d.ts +2 -0
- package/ngx-techlify-core.d.ts +51 -0
- package/ngx-techlify-core.metadata.json +1 -0
- package/package.json +36 -0
- package/public-api.d.ts +87 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpService } from '../core/http.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../core/http.service";
|
|
5
|
+
export class EntityFileService {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
}
|
|
9
|
+
getEntityFiles(filters) {
|
|
10
|
+
return this.http.get(`api/entity-files`, { params: filters }).toPromise();
|
|
11
|
+
}
|
|
12
|
+
createEntityFile(model) {
|
|
13
|
+
return this.http.post("api/entity-files", model).toPromise();
|
|
14
|
+
}
|
|
15
|
+
updateEntityFile(model) {
|
|
16
|
+
return this.http.put(`api/entity-files/${model.id}`, model).toPromise();
|
|
17
|
+
}
|
|
18
|
+
deleteEntityFile(model) {
|
|
19
|
+
return this.http.delete(`api/entity-files/${model.id}`).toPromise();
|
|
20
|
+
}
|
|
21
|
+
uploadEntityFile(file) {
|
|
22
|
+
const formData = new FormData();
|
|
23
|
+
formData.append("fileData", file, file.name);
|
|
24
|
+
return this.http
|
|
25
|
+
.skipHeader()
|
|
26
|
+
.post("api/entity-files-upload", formData).toPromise();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
EntityFileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntityFileService_Factory() { return new EntityFileService(i0.ɵɵinject(i1.HttpService)); }, token: EntityFileService, providedIn: "root" });
|
|
30
|
+
EntityFileService.decorators = [
|
|
31
|
+
{ type: Injectable, args: [{
|
|
32
|
+
providedIn: 'root'
|
|
33
|
+
},] }
|
|
34
|
+
];
|
|
35
|
+
EntityFileService.ctorParameters = () => [
|
|
36
|
+
{ type: HttpService }
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUtuRCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7SUFBSSxDQUFDO0lBRTFDLGNBQWMsQ0FBQyxPQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBVTtRQUN6QixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLFVBQVUsRUFBRTthQUNaLElBQUksQ0FDSCx5QkFBeUIsRUFDekIsUUFBUSxDQUNULENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7OztZQWhDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUpRLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5RmlsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UpIHsgfVxuXG4gIGdldEVudGl0eUZpbGVzKGZpbHRlcnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvZW50aXR5LWZpbGVzYCwgeyBwYXJhbXM6IGZpbHRlcnMgfSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBjcmVhdGVFbnRpdHlGaWxlKG1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJhcGkvZW50aXR5LWZpbGVzXCIsIG1vZGVsKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZUVudGl0eUZpbGUobW9kZWw6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvZW50aXR5LWZpbGVzLyR7bW9kZWwuaWR9YCwgbW9kZWwpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZGVsZXRlRW50aXR5RmlsZShtb2RlbDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS9lbnRpdHktZmlsZXMvJHttb2RlbC5pZH1gKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwbG9hZEVudGl0eUZpbGUoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZChcImZpbGVEYXRhXCIsIGZpbGUsIGZpbGUubmFtZSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnNraXBIZWFkZXIoKVxuICAgICAgLnBvc3QoXG4gICAgICAgIFwiYXBpL2VudGl0eS1maWxlcy11cGxvYWRcIixcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICApLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { Location } from '@angular/common';
|
|
4
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
5
|
+
import { EntityFileFormComponent } from './entity-file-form/entity-file-form.component';
|
|
6
|
+
import { EntityFileService } from './entity-file.service';
|
|
7
|
+
import { FormControl } from '@angular/forms';
|
|
8
|
+
import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy";
|
|
9
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
10
|
+
import { AlertService } from '../core/alert.service';
|
|
11
|
+
import { ActionPopupComponent } from '../action-popup/action-popup.component';
|
|
12
|
+
let EntityFilesViewAllComponent = class EntityFilesViewAllComponent {
|
|
13
|
+
constructor(entityFileService, location, alertService, dialog) {
|
|
14
|
+
this.entityFileService = entityFileService;
|
|
15
|
+
this.location = location;
|
|
16
|
+
this.alertService = alertService;
|
|
17
|
+
this.dialog = dialog;
|
|
18
|
+
this.viewOnly = false;
|
|
19
|
+
this.filters = {};
|
|
20
|
+
this.entityFiles = [];
|
|
21
|
+
this.displayedColumns = ['index', 'title', 'details', 'file',];
|
|
22
|
+
this.isWorking = false;
|
|
23
|
+
this.search = new FormControl('');
|
|
24
|
+
this.page = 1;
|
|
25
|
+
this.perPage = 25;
|
|
26
|
+
this.lastPage = 0;
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.viewerConfig = {
|
|
30
|
+
imageStyle: {
|
|
31
|
+
height: '200px',
|
|
32
|
+
width: '200px'
|
|
33
|
+
},
|
|
34
|
+
viewerStyle: {
|
|
35
|
+
height: ' 160px',
|
|
36
|
+
width: '200px'
|
|
37
|
+
},
|
|
38
|
+
hideRemove: true
|
|
39
|
+
};
|
|
40
|
+
if (this.hideTitleAndDetails) {
|
|
41
|
+
this.displayedColumns = this.displayedColumns.filter(x => (x !== 'details') && (x !== 'title'));
|
|
42
|
+
}
|
|
43
|
+
this.filters = {
|
|
44
|
+
entity_type: this.entityType,
|
|
45
|
+
entity_id: this.entityId,
|
|
46
|
+
title: ""
|
|
47
|
+
};
|
|
48
|
+
this.search.valueChanges.pipe(debounceTime(500), distinctUntilChanged(), untilDestroyed(this)).subscribe(value => {
|
|
49
|
+
this.filters.title = value;
|
|
50
|
+
this.reload();
|
|
51
|
+
});
|
|
52
|
+
this.fetchEntityFilesDetails();
|
|
53
|
+
if (!this.viewOnly) {
|
|
54
|
+
this.displayedColumns.push('actions');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
fetchEntityFilesDetails() {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
this.filters.page = this.page;
|
|
60
|
+
this.isWorking = true;
|
|
61
|
+
const result = yield this.entityFileService.getEntityFiles(this.filters);
|
|
62
|
+
this.lastPage = result.last_page || this.page;
|
|
63
|
+
this.entityFiles = this.entityFiles.concat(result.data);
|
|
64
|
+
this.isWorking = false;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
addEntityFile() {
|
|
68
|
+
const dialogRef = this.dialog.open(EntityFileFormComponent, {
|
|
69
|
+
width: "700px",
|
|
70
|
+
data: {
|
|
71
|
+
entity: this.filters,
|
|
72
|
+
hideTitleAndDetails: this.hideTitleAndDetails
|
|
73
|
+
},
|
|
74
|
+
autoFocus: false,
|
|
75
|
+
restoreFocus: false
|
|
76
|
+
});
|
|
77
|
+
dialogRef.afterClosed().subscribe((result) => __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
if (result) {
|
|
79
|
+
const files = [...this.entityFiles];
|
|
80
|
+
files.push(result);
|
|
81
|
+
this.entityFiles = files;
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
editEntityFile(file) {
|
|
86
|
+
const dialogRef = this.dialog.open(EntityFileFormComponent, {
|
|
87
|
+
width: "700px",
|
|
88
|
+
autoFocus: false,
|
|
89
|
+
data: {
|
|
90
|
+
file: file,
|
|
91
|
+
hideTitleAndDetails: this.hideTitleAndDetails
|
|
92
|
+
} // Any data passed here will be injected into the model
|
|
93
|
+
});
|
|
94
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
95
|
+
if (result) {
|
|
96
|
+
this.reload();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
deleteEntityFile(file) {
|
|
101
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
102
|
+
width: "400px",
|
|
103
|
+
data: {
|
|
104
|
+
title: "Delete File",
|
|
105
|
+
message: `Are you sure to proceed delete the file ${file.title}?`
|
|
106
|
+
},
|
|
107
|
+
autoFocus: false
|
|
108
|
+
});
|
|
109
|
+
dialogRef.afterClosed().subscribe((result) => __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
if (result) {
|
|
111
|
+
//Action confirmed
|
|
112
|
+
const result = yield this.entityFileService.deleteEntityFile(file);
|
|
113
|
+
this.alertService.addAlert("File successfully deleted", "success");
|
|
114
|
+
this.reload();
|
|
115
|
+
}
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
onScroll() {
|
|
119
|
+
if (this.page < this.lastPage && !this.isWorking) {
|
|
120
|
+
this.page += 1;
|
|
121
|
+
this.fetchEntityFilesDetails();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
reload() {
|
|
125
|
+
this.entityFiles = [];
|
|
126
|
+
this.page = 1;
|
|
127
|
+
if (!this.isWorking) {
|
|
128
|
+
this.fetchEntityFilesDetails();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
ngOnDestroy() { }
|
|
132
|
+
resetFieldValue() {
|
|
133
|
+
this.search.setValue("");
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
EntityFilesViewAllComponent.decorators = [
|
|
137
|
+
{ type: Component, args: [{
|
|
138
|
+
selector: 'app-entity-files-view-all',
|
|
139
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"mat-typography p-4\" *ngIf=\"!displayMode\">\n <div fxLayout=\"column\" fxLayoutGap=\"0.25rem\">\n <h3 class=\"font-weight-bold\" fxLayoutAlign=\"center center\"> Files\n <button type=\"button\" class=\"mx-1\" mat-mini-fab color=\"primary\" (click)=\"addEntityFile()\" *ngIf=\"!viewOnly\">\n <mat-icon>add</mat-icon>\n </button>\n </h3>\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start\" *ngIf=\"!removeSearch\">\n <mat-form-field class=\"mt-1\">\n <input type=\"text\" matInput [formControl]=\"search\" placeholder=\"Title\" name=\"title\"\n autocomplete=\"off\" />\n <button mat-button *ngIf=\"filters.title\" matSuffix mat-icon-button (click)=\"resetFieldValue()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n <table mat-table [dataSource]=\"entityFiles\" class=\"w-100\" matSort multiTemplateDataRows\n infiniteScrollContainer=\"body\" infiniteScroll [infiniteScrollDistance]=\"1.5\" [infiniteScrollThrottle]=\"50\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.title}} </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.details}} </td>\n </ng-container>\n\n <!-- File Column -->\n <ng-container matColumnDef=\"file\">\n <th mat-header-cell *matHeaderCellDef> File </th>\n <td mat-cell *matCellDef=\"let element\">\n <a href=\"{{element.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" style=\"min-width:110px\">\n <button type=\"button\" mat-icon-button (click)=\"editEntityFile(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteEntityFile(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n</div>\n\n<div fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" class=\"mat-typography p-4\" *ngIf=\"displayMode\">\n\n <div *ngFor=\"let efile of entityFiles\">\n <app-document-viewer [file]=\"efile.file\" [fileUrl]=\"efile.url\" [config]=\"this.viewerConfig\"\n [disableEdit]=\"true\">\n </app-document-viewer>\n <a href=\"{{efile.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </div>\n\n</div>",
|
|
140
|
+
styles: [""]
|
|
141
|
+
},] }
|
|
142
|
+
];
|
|
143
|
+
EntityFilesViewAllComponent.ctorParameters = () => [
|
|
144
|
+
{ type: EntityFileService },
|
|
145
|
+
{ type: Location },
|
|
146
|
+
{ type: AlertService },
|
|
147
|
+
{ type: MatDialog }
|
|
148
|
+
];
|
|
149
|
+
EntityFilesViewAllComponent.propDecorators = {
|
|
150
|
+
entityId: [{ type: Input }],
|
|
151
|
+
entityType: [{ type: Input }],
|
|
152
|
+
viewOnly: [{ type: Input }],
|
|
153
|
+
removeSearch: [{ type: Input }],
|
|
154
|
+
hideTitleAndDetails: [{ type: Input }],
|
|
155
|
+
displayMode: [{ type: Input }]
|
|
156
|
+
};
|
|
157
|
+
EntityFilesViewAllComponent = __decorate([
|
|
158
|
+
UntilDestroy()
|
|
159
|
+
], EntityFilesViewAllComponent);
|
|
160
|
+
export { EntityFilesViewAllComponent };
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGVzLXZpZXctYWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlcy12aWV3LWFsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztJQVNqRSwyQkFBMkIsU0FBM0IsMkJBQTJCO0lBa0J0QyxZQUNVLGlCQUFvQyxFQUNyQyxRQUFrQixFQUNqQixZQUEwQixFQUMxQixNQUFpQjtRQUhqQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQW5CbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU1uQyxZ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LDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVudGl0eUZpbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktZmlsZS1mb3JtL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVudGl0eUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblBvcHVwIH0gZnJvbSAnLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQG5nbmVhdC91bnRpbC1kZXN0cm95XCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld2VyQ29uZmlnIH0gZnJvbSAnLi4vZG9jdW1lbnQtdmlld2VyL3ZpZXdlci1jb25maWcubW9kZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1lbnRpdHktZmlsZXMtdmlldy1hbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWZpbGVzLXZpZXctYWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LWZpbGVzLXZpZXctYWxsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlGaWxlc1ZpZXdBbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBlbnRpdHlJZDogbnVtYmVyO1xuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZpZXdPbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlbW92ZVNlYXJjaDogYm9vbGVhbjtcbiAgQElucHV0KCkgaGlkZVRpdGxlQW5kRGV0YWlsczogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzcGxheU1vZGU6IGJvb2xlYW47XG4gIHZpZXdlckNvbmZpZzogVmlld2VyQ29uZmlnO1xuXG4gIGZpbHRlcnM6IGFueSA9IHt9O1xuICBlbnRpdHlGaWxlczogYW55W10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1ucyA9IFsnaW5kZXgnLCAndGl0bGUnLCAnZGV0YWlscycsICdmaWxlJyxdO1xuICBpc1dvcmtpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VhcmNoOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIHBhZ2U6IG51bWJlciA9IDE7XG4gIHBlclBhZ2U6IG51bWJlciA9IDI1O1xuICBsYXN0UGFnZTogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eUZpbGVTZXJ2aWNlOiBFbnRpdHlGaWxlU2VydmljZSxcbiAgICBwdWJsaWMgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuXG4gICAgdGhpcy52aWV3ZXJDb25maWcgPSB7XG4gICAgICBpbWFnZVN0eWxlOiB7XG4gICAgICAgIGhlaWdodDogJzIwMHB4JyxcbiAgICAgICAgd2lkdGg6ICcyMDBweCdcbiAgICAgIH0sXG4gICAgICB2aWV3ZXJTdHlsZToge1xuICAgICAgICBoZWlnaHQ6ICcgMTYwcHgnLFxuICAgICAgICB3aWR0aDogJzIwMHB4J1xuICAgICAgfSxcbiAgICAgIGhpZGVSZW1vdmU6IHRydWVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaGlkZVRpdGxlQW5kRGV0YWlscykge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+ICh4ICE9PSAnZGV0YWlscycpICYmICh4ICE9PSAndGl0bGUnKSk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzID0ge1xuICAgICAgZW50aXR5X3R5cGU6IHRoaXMuZW50aXR5VHlwZSxcbiAgICAgIGVudGl0eV9pZDogdGhpcy5lbnRpdHlJZCxcbiAgICAgIHRpdGxlOiBcIlwiXG4gICAgfTtcbiAgICB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnMudGl0bGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfSlcbiAgICB0aGlzLmZldGNoRW50aXR5RmlsZXNEZXRhaWxzKCk7XG4gICAgaWYgKCF0aGlzLnZpZXdPbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYWN0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZldGNoRW50aXR5RmlsZXNEZXRhaWxzKCkge1xuICAgIHRoaXMuZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMuZW50aXR5RmlsZVNlcnZpY2UuZ2V0RW50aXR5RmlsZXModGhpcy5maWx0ZXJzKTtcbiAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Lmxhc3RfcGFnZSB8fCB0aGlzLnBhZ2U7XG4gICAgdGhpcy5lbnRpdHlGaWxlcyA9IHRoaXMuZW50aXR5RmlsZXMuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICB9XG5cbiAgYWRkRW50aXR5RmlsZSgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEVudGl0eUZpbGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI3MDBweFwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBlbnRpdHk6IHRoaXMuZmlsdGVycyxcbiAgICAgICAgaGlkZVRpdGxlQW5kRGV0YWlsczogdGhpcy5oaWRlVGl0bGVBbmREZXRhaWxzXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShhc3luYyByZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb25zdCBmaWxlcyA9IFsuLi50aGlzLmVudGl0eUZpbGVzXTtcbiAgICAgICAgZmlsZXMucHVzaChyZXN1bHQpO1xuICAgICAgICB0aGlzLmVudGl0eUZpbGVzID0gZmlsZXM7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBlZGl0RW50aXR5RmlsZShmaWxlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEVudGl0eUZpbGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI3MDBweFwiLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgaGlkZVRpdGxlQW5kRGV0YWlsczogdGhpcy5oaWRlVGl0bGVBbmREZXRhaWxzXG4gICAgICB9IC8vIEFueSBkYXRhIHBhc3NlZCBoZXJlIHdpbGwgYmUgaW5qZWN0ZWQgaW50byB0aGUgbW9kZWxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRW50aXR5RmlsZShmaWxlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YTogPEFjdGlvblBvcHVwPntcbiAgICAgICAgdGl0bGU6IFwiRGVsZXRlIEZpbGVcIixcbiAgICAgICAgbWVzc2FnZTogYEFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkIGRlbGV0ZSB0aGUgZmlsZSAke2ZpbGUudGl0bGV9P2BcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy9BY3Rpb24gY29uZmlybWVkXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZW50aXR5RmlsZVNlcnZpY2UuZGVsZXRlRW50aXR5RmlsZShcbiAgICAgICAgICBmaWxlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFxuICAgICAgICAgIFwiRmlsZSBzdWNjZXNzZnVsbHkgZGVsZXRlZFwiLFxuICAgICAgICAgIFwic3VjY2Vzc1wiXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uU2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlICYmICF0aGlzLmlzV29ya2luZykge1xuICAgICAgdGhpcy5wYWdlICs9IDE7XG4gICAgICB0aGlzLmZldGNoRW50aXR5RmlsZXNEZXRhaWxzKCk7XG4gICAgfVxuICB9XG5cbiAgcmVsb2FkKCkge1xuICAgIHRoaXMuZW50aXR5RmlsZXMgPSBbXTtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMuZmV0Y2hFbnRpdHlGaWxlc0RldGFpbHMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHsgfVxuXG4gIHJlc2V0RmllbGRWYWx1ZSgpIHtcbiAgICB0aGlzLnNlYXJjaC5zZXRWYWx1ZShcIlwiKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { EntityFileFormComponent } from './entity-file-form/entity-file-form.component';
|
|
4
|
+
import { EntityFilesViewAllComponent } from './entity-files-view-all.component';
|
|
5
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
6
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
7
|
+
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
8
|
+
import { FileDropperModule } from '../file-dropper/file-dropper.module';
|
|
9
|
+
import { DocumentViewerModule } from '../document-viewer/document-viewer.module';
|
|
10
|
+
import { ActionPopupModule } from '../action-popup/action-popup.module';
|
|
11
|
+
import { MaterialModule } from '../material.module';
|
|
12
|
+
export class EntityFilesViewAllModule {
|
|
13
|
+
}
|
|
14
|
+
EntityFilesViewAllModule.decorators = [
|
|
15
|
+
{ type: NgModule, args: [{
|
|
16
|
+
declarations: [EntityFileFormComponent, EntityFilesViewAllComponent],
|
|
17
|
+
imports: [
|
|
18
|
+
CommonModule,
|
|
19
|
+
FormsModule,
|
|
20
|
+
ReactiveFormsModule,
|
|
21
|
+
FlexLayoutModule,
|
|
22
|
+
FileDropperModule,
|
|
23
|
+
DocumentViewerModule,
|
|
24
|
+
InfiniteScrollModule,
|
|
25
|
+
ActionPopupModule,
|
|
26
|
+
MaterialModule
|
|
27
|
+
],
|
|
28
|
+
exports: [
|
|
29
|
+
EntityFilesViewAllComponent
|
|
30
|
+
],
|
|
31
|
+
entryComponents: [EntityFileFormComponent]
|
|
32
|
+
},] }
|
|
33
|
+
];
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGVzLXZpZXctYWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlcy12aWV3LWFsbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQXFCcEQsTUFBTSxPQUFPLHdCQUF3Qjs7O1lBbEJwQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsMkJBQTJCLENBQUM7Z0JBQ3BFLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtvQkFDakIsb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtvQkFDakIsY0FBYztpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsMkJBQTJCO2lCQUM1QjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRW50aXR5RmlsZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2VudGl0eS1maWxlLWZvcm0vZW50aXR5LWZpbGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5RmlsZXNWaWV3QWxsQ29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktZmlsZXMtdmlldy1hbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBGaWxlRHJvcHBlck1vZHVsZSB9IGZyb20gJy4uL2ZpbGUtZHJvcHBlci9maWxlLWRyb3BwZXIubW9kdWxlJztcbmltcG9ydCB7IERvY3VtZW50Vmlld2VyTW9kdWxlIH0gZnJvbSAnLi4vZG9jdW1lbnQtdmlld2VyL2RvY3VtZW50LXZpZXdlci5tb2R1bGUnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRW50aXR5RmlsZUZvcm1Db21wb25lbnQsIEVudGl0eUZpbGVzVmlld0FsbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEZpbGVEcm9wcGVyTW9kdWxlLFxuICAgIERvY3VtZW50Vmlld2VyTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIEFjdGlvblBvcHVwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBFbnRpdHlGaWxlc1ZpZXdBbGxDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbRW50aXR5RmlsZUZvcm1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUZpbGVzVmlld0FsbE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './entity-files-view-all.component';
|
|
2
|
+
export * from './entity-file-form/entity-file-form.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eS1maWxlcy12aWV3LWFsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdHktZmlsZS1mb3JtL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50JzsiXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as XLSX from 'xlsx';
|
|
3
|
+
export class ExportExcelButtonComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.name = 'Export_Data';
|
|
6
|
+
this.data = [];
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
}
|
|
10
|
+
exportExcel() {
|
|
11
|
+
const fileName = `${this.name}_${new Date().getTime()}.xlsx`;
|
|
12
|
+
const ws = XLSX.utils.json_to_sheet(this.data);
|
|
13
|
+
/* generate workbook and add the worksheet */
|
|
14
|
+
const wb = XLSX.utils.book_new();
|
|
15
|
+
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
|
|
16
|
+
/* save to file */
|
|
17
|
+
XLSX.writeFile(wb, fileName);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ExportExcelButtonComponent.decorators = [
|
|
21
|
+
{ type: Component, args: [{
|
|
22
|
+
selector: 'app-export-excel-button',
|
|
23
|
+
template: "<button mat-raised-button color=\"accent\" (click)=\"exportExcel()\">Export Excel</button>",
|
|
24
|
+
styles: [""]
|
|
25
|
+
},] }
|
|
26
|
+
];
|
|
27
|
+
ExportExcelButtonComponent.ctorParameters = () => [];
|
|
28
|
+
ExportExcelButtonComponent.propDecorators = {
|
|
29
|
+
name: [{ type: Input }],
|
|
30
|
+
data: [{ type: Input }]
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2V4cG9ydC1leGNlbC9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBTzdCLE1BQU0sT0FBTywwQkFBMEI7SUFLckM7UUFIUyxTQUFJLEdBQVcsYUFBYSxDQUFDO1FBQzdCLFNBQUksR0FBVSxFQUFFLENBQUM7SUFFVixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLDZDQUE2QztRQUM3QyxNQUFNLEVBQUUsR0FBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFL0Msa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OztZQXhCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsc0dBQW1EOzthQUVwRDs7OzttQkFHRSxLQUFLO21CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1leHBvcnQtZXhjZWwtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0RXhjZWxCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICdFeHBvcnRfRGF0YSc7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGV4cG9ydEV4Y2VsKCkge1xuICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7dGhpcy5uYW1lfV8ke25ldyBEYXRlKCkuZ2V0VGltZSgpfS54bHN4YDtcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldCh0aGlzLmRhdGEpO1xuICAgIC8qIGdlbmVyYXRlIHdvcmtib29rIGFuZCBhZGQgdGhlIHdvcmtzaGVldCAqL1xuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnU2hlZXQxJyk7XG5cbiAgICAvKiBzYXZlIHRvIGZpbGUgKi9cbiAgICBYTFNYLndyaXRlRmlsZSh3YiwgZmlsZU5hbWUpO1xuICB9XG5cblxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ExportExcelButtonComponent } from './export-excel-button/export-excel-button.component';
|
|
4
|
+
import { MaterialModule } from '../material.module';
|
|
5
|
+
export class ExportExcelModule {
|
|
6
|
+
}
|
|
7
|
+
ExportExcelModule.decorators = [
|
|
8
|
+
{ type: NgModule, args: [{
|
|
9
|
+
declarations: [ExportExcelButtonComponent],
|
|
10
|
+
imports: [
|
|
11
|
+
CommonModule,
|
|
12
|
+
MaterialModule
|
|
13
|
+
],
|
|
14
|
+
exports: [ExportExcelButtonComponent]
|
|
15
|
+
},] }
|
|
16
|
+
];
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZXhwb3J0LWV4Y2VsL2V4cG9ydC1leGNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBWXBELE1BQU0sT0FBTyxpQkFBaUI7OztZQVI3QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQzFDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7YUFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV4cG9ydEV4Y2VsQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0V4cG9ydEV4Y2VsQnV0dG9uQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbRXhwb3J0RXhjZWxCdXR0b25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydEV4Y2VsTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from "@angular/core";
|
|
2
|
+
import { AlertService } from "../core/alert.service";
|
|
3
|
+
export class FileDropperComponent {
|
|
4
|
+
constructor(alertService) {
|
|
5
|
+
this.alertService = alertService;
|
|
6
|
+
this.fileArray = [];
|
|
7
|
+
this.fileChanged = new EventEmitter();
|
|
8
|
+
this.border = "1px dashed #989898";
|
|
9
|
+
}
|
|
10
|
+
/**Life cycle hook method */
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.isSingleMode = !Boolean(this.config.multiple);
|
|
13
|
+
}
|
|
14
|
+
/**Method for dragging event */
|
|
15
|
+
dragEnter(event) {
|
|
16
|
+
event.target.style.background = this.config.dragColor || "#c0c0c0";
|
|
17
|
+
event.target.style.border = "1px dashed black";
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
}
|
|
20
|
+
/**Method for drag over event */
|
|
21
|
+
dragOver(event) {
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
}
|
|
24
|
+
/**Method for drag leave event */
|
|
25
|
+
dragLeave(event) {
|
|
26
|
+
event.target.style.background = "";
|
|
27
|
+
event.target.style.border = this.border;
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
}
|
|
30
|
+
/**Method for drop event */
|
|
31
|
+
dropEvent(event) {
|
|
32
|
+
event.target.style.background = "";
|
|
33
|
+
event.target.style.border = this.border;
|
|
34
|
+
const droppedFiles = event.dataTransfer.files;
|
|
35
|
+
if (droppedFiles.length > 0) {
|
|
36
|
+
const fileArray = Array.from(droppedFiles);
|
|
37
|
+
this.addFiles(fileArray);
|
|
38
|
+
}
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
}
|
|
41
|
+
/**Method to list files selected */
|
|
42
|
+
onFileChange(event) {
|
|
43
|
+
if (event.target.files && event.target.files.length) {
|
|
44
|
+
const fileArray = Array.from(event.target.files);
|
|
45
|
+
this.addFiles(fileArray);
|
|
46
|
+
const fileInput = document.getElementById(this.config.fileId);
|
|
47
|
+
fileInput.value = "";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**Method to add files in the array */
|
|
51
|
+
addFiles(fileArray) {
|
|
52
|
+
if (!this.isSingleMode) {
|
|
53
|
+
fileArray.forEach((file) => {
|
|
54
|
+
this.fileArray = this.fileArray.filter((item) => item.name !== file.name);
|
|
55
|
+
if (this.fileSizeAllowed(file)) {
|
|
56
|
+
this.fileArray.push(file);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
this.fileArray.sort(this.sortFiles);
|
|
60
|
+
this.fileChanged.emit(this.fileArray);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Single Mode
|
|
64
|
+
if (this.fileArray.length === 0) {
|
|
65
|
+
if (this.fileSizeAllowed(fileArray[0])) {
|
|
66
|
+
this.fileArray.push(fileArray[0]);
|
|
67
|
+
this.fileArray.sort(this.sortFiles);
|
|
68
|
+
this.fileChanged.emit(this.fileArray);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**Method to sort the files in asc */
|
|
74
|
+
sortFiles(a, b) {
|
|
75
|
+
const nameA = a.name.toUpperCase();
|
|
76
|
+
const nameB = b.name.toUpperCase();
|
|
77
|
+
if (nameA < nameB) {
|
|
78
|
+
return -1;
|
|
79
|
+
}
|
|
80
|
+
if (nameA > nameB) {
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
/**Method tp validate the file size */
|
|
86
|
+
fileSizeAllowed(file) {
|
|
87
|
+
if (!Boolean(this.config.maxSize)) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
else if (file.size / (1024 * 1024) < this.config.maxSize) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.alertService.addAlert(`The size of the file exceeds the limit ${this.config.maxSize} MB, kindly upload a file with size ${this.config.maxSize} MB or below`, "warn");
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**Method invokes when the drop box is clicked to upload the file */
|
|
99
|
+
clickEvent(event) {
|
|
100
|
+
if (!(this.isSingleMode && this.fileArray.length > 0)) {
|
|
101
|
+
document.getElementById(this.config.fileId).click();
|
|
102
|
+
}
|
|
103
|
+
event.preventDefault();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
FileDropperComponent.decorators = [
|
|
107
|
+
{ type: Component, args: [{
|
|
108
|
+
selector: "app-file-dropper",
|
|
109
|
+
template: "<div\n id=\"{{ config.containerId }}\"\n [ngStyle]=\"config.styles\"\n class=\"file-border\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n (dragover)=\"dragOver($event)\"\n (click)=\"clickEvent($event)\"\n (drop)=\"dropEvent($event)\"\n [ngClass]=\"{ 'disable-div': isSingleMode && fileArray.length > 0 }\"\n>\n <div fxFill fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <div>\n <span>Drag and drop file</span>\n </div>\n\n <div class=\"mt-2\">\n <span>or</span>\n </div>\n\n <div class=\"mt-2\">\n <button mat-raised-button color=\"primary\" type=\"button\">Browse</button>\n </div>\n\n <div class=\"mt-4\">\n <span>Supported files</span>\n </div>\n\n <div *ngIf=\"config.acceptFileText\">\n <span>{{ config.acceptFileText }}</span>\n </div>\n </div>\n</div>\n<input\n type=\"file\"\n id=\"{{ config.fileId }}\"\n [accept]=\"config.acceptFile\"\n (change)=\"onFileChange($event)\"\n [multiple]=\"config.multiple === true\"\n style=\"display:none\"\n/>\n",
|
|
110
|
+
styles: [".disable-div{cursor:not-allowed}.file-border{border:1px dashed #989898}"]
|
|
111
|
+
},] }
|
|
112
|
+
];
|
|
113
|
+
FileDropperComponent.ctorParameters = () => [
|
|
114
|
+
{ type: AlertService }
|
|
115
|
+
];
|
|
116
|
+
FileDropperComponent.propDecorators = {
|
|
117
|
+
fileArray: [{ type: Input }],
|
|
118
|
+
config: [{ type: Input }],
|
|
119
|
+
fileChanged: [{ type: Output }],
|
|
120
|
+
styles: [{ type: Input }]
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZmlsZS1kcm9wcGVyL2ZpbGUtZHJvcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTckQsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVpyQyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBSXJCLGdCQUFXLEdBQVEsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRCxXQUFNLEdBQUcsb0JBQW9CLENBQUM7SUFNb0IsQ0FBQztJQUVuRCw0QkFBNEI7SUFDNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFFbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGtCQUFrQixDQUFDO1FBRS9DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLFNBQVMs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QztJQUN6QixDQUFDOzs7WUFwSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGtqQ0FBNEM7O2FBRTdDOzs7WUFSUSxZQUFZOzs7d0JBVWxCLEtBQUs7cUJBRUwsS0FBSzswQkFFTCxNQUFNO3FCQUlOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gXCIuLi9jb3JlL2FsZXJ0LnNlcnZpY2VcIjtcbmltcG9ydCB7IEZpbGVEcm9wcGVyQ29uZmlnIH0gZnJvbSAnLi9maWxlLWRyb3BwZXIubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZmlsZS1kcm9wcGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS1kcm9wcGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9maWxlLWRyb3BwZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZURyb3BwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWxlQXJyYXk6IGFueVtdID0gW107XG5cbiAgQElucHV0KCkgY29uZmlnOiBGaWxlRHJvcHBlckNvbmZpZztcblxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZWQ6IGFueSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBib3JkZXIgPSBcIjFweCBkYXNoZWQgIzk4OTg5OFwiO1xuXG4gIEBJbnB1dCgpIHN0eWxlczogYW55O1xuXG4gIGlzU2luZ2xlTW9kZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7IH1cblxuICAvKipMaWZlIGN5Y2xlIGhvb2sgbWV0aG9kICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNTaW5nbGVNb2RlID0gIUJvb2xlYW4odGhpcy5jb25maWcubXVsdGlwbGUpO1xuICB9XG5cbiAgLyoqTWV0aG9kIGZvciBkcmFnZ2luZyBldmVudCAqL1xuICBkcmFnRW50ZXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kID0gdGhpcy5jb25maWcuZHJhZ0NvbG9yIHx8IFwiI2MwYzBjMFwiO1xuXG4gICAgZXZlbnQudGFyZ2V0LnN0eWxlLmJvcmRlciA9IFwiMXB4IGRhc2hlZCBibGFja1wiO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBmb3IgZHJhZyBvdmVyIGV2ZW50ICovXG4gIGRyYWdPdmVyKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqTWV0aG9kIGZvciBkcmFnIGxlYXZlIGV2ZW50ICovXG4gIGRyYWdMZWF2ZShldmVudDogYW55KSB7XG4gICAgZXZlbnQudGFyZ2V0LnN0eWxlLmJhY2tncm91bmQgPSBcIlwiO1xuICAgIGV2ZW50LnRhcmdldC5zdHlsZS5ib3JkZXIgPSB0aGlzLmJvcmRlcjtcblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipNZXRob2QgZm9yIGRyb3AgZXZlbnQgKi9cbiAgZHJvcEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC50YXJnZXQuc3R5bGUuYmFja2dyb3VuZCA9IFwiXCI7XG4gICAgZXZlbnQudGFyZ2V0LnN0eWxlLmJvcmRlciA9IHRoaXMuYm9yZGVyO1xuICAgIGNvbnN0IGRyb3BwZWRGaWxlczogRmlsZUxpc3QgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgaWYgKGRyb3BwZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGRyb3BwZWRGaWxlcyk7XG4gICAgICB0aGlzLmFkZEZpbGVzKGZpbGVBcnJheSk7XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipNZXRob2QgdG8gbGlzdCBmaWxlcyBzZWxlY3RlZCAqL1xuICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmlsZUFycmF5ID0gQXJyYXkuZnJvbShldmVudC50YXJnZXQuZmlsZXMpO1xuICAgICAgdGhpcy5hZGRGaWxlcyhmaWxlQXJyYXkpO1xuICAgICAgY29uc3QgZmlsZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuY29uZmlnLmZpbGVJZFxuICAgICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgZmlsZUlucHV0LnZhbHVlID0gXCJcIjtcbiAgICB9XG4gIH1cblxuICAvKipNZXRob2QgdG8gYWRkIGZpbGVzIGluIHRoZSBhcnJheSAqL1xuICBhZGRGaWxlcyhmaWxlQXJyYXk6IGFueSkge1xuICAgIGlmICghdGhpcy5pc1NpbmdsZU1vZGUpIHtcbiAgICAgIGZpbGVBcnJheS5mb3JFYWNoKChmaWxlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5maWxlQXJyYXkgPSB0aGlzLmZpbGVBcnJheS5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5uYW1lICE9PSBmaWxlLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNpemVBbGxvd2VkKGZpbGUpKSB7XG4gICAgICAgICAgdGhpcy5maWxlQXJyYXkucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZmlsZUFycmF5LnNvcnQodGhpcy5zb3J0RmlsZXMpO1xuICAgICAgdGhpcy5maWxlQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZUFycmF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2luZ2xlIE1vZGVcbiAgICAgIGlmICh0aGlzLmZpbGVBcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNpemVBbGxvd2VkKGZpbGVBcnJheVswXSkpIHtcbiAgICAgICAgICB0aGlzLmZpbGVBcnJheS5wdXNoKGZpbGVBcnJheVswXSk7XG4gICAgICAgICAgdGhpcy5maWxlQXJyYXkuc29ydCh0aGlzLnNvcnRGaWxlcyk7XG4gICAgICAgICAgdGhpcy5maWxlQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZUFycmF5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKk1ldGhvZCB0byBzb3J0IHRoZSBmaWxlcyBpbiBhc2MgKi9cbiAgc29ydEZpbGVzKGE6IGFueSwgYjogYW55KSB7XG4gICAgY29uc3QgbmFtZUEgPSBhLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgIGlmIChuYW1lQSA8IG5hbWVCKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIC8qKk1ldGhvZCB0cCB2YWxpZGF0ZSB0aGUgZmlsZSBzaXplICovXG4gIGZpbGVTaXplQWxsb3dlZChmaWxlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5jb25maWcubWF4U2l6ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoZmlsZS5zaXplIC8gKDEwMjQgKiAxMDI0KSA8IHRoaXMuY29uZmlnLm1heFNpemUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICAgYFRoZSBzaXplIG9mIHRoZSBmaWxlIGV4Y2VlZHMgdGhlIGxpbWl0ICR7dGhpcy5jb25maWcubWF4U2l6ZX0gTUIsIGtpbmRseSB1cGxvYWQgYSBmaWxlIHdpdGggc2l6ZSAke3RoaXMuY29uZmlnLm1heFNpemV9IE1CIG9yIGJlbG93YCxcbiAgICAgICAgXCJ3YXJuXCJcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqTWV0aG9kIGludm9rZXMgd2hlbiB0aGUgZHJvcCBib3ggaXMgY2xpY2tlZCB0byB1cGxvYWQgdGhlIGZpbGUgKi9cbiAgY2xpY2tFdmVudChldmVudDogYW55KSB7XG4gICAgaWYgKCEodGhpcy5pc1NpbmdsZU1vZGUgJiYgdGhpcy5maWxlQXJyYXkubGVuZ3RoID4gMCkpIHtcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29uZmlnLmZpbGVJZCkuY2xpY2soKTtcbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class FileDropperConfig {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wcGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9maWxlLWRyb3BwZXIvZmlsZS1kcm9wcGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7Q0FTN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmlsZURyb3BwZXJDb25maWcge1xuICBjb250YWluZXJJZDogc3RyaW5nO1xuICBmaWxlSWQ6IHN0cmluZztcbiAgc3R5bGVzPzogYW55O1xuICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIGRyYWdDb2xvcj86IGJvb2xlYW47XG4gIGFjY2VwdEZpbGU6IHN0cmluZzsgLy8gdXNlICcqJyB0byBhY2NlcHQgYWxsIGZpbGUgdHlwZXMuXG4gIG1heFNpemU/OiBudW1iZXI7IC8vIHNpemUgaW4gTUJcbiAgYWNjZXB0RmlsZVRleHQ/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FileDropperComponent } from './file-dropper.component';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { MaterialModule } from '../material.module';
|
|
6
|
+
export class FileDropperModule {
|
|
7
|
+
}
|
|
8
|
+
FileDropperModule.decorators = [
|
|
9
|
+
{ type: NgModule, args: [{
|
|
10
|
+
imports: [
|
|
11
|
+
CommonModule,
|
|
12
|
+
FlexLayoutModule,
|
|
13
|
+
MaterialModule
|
|
14
|
+
],
|
|
15
|
+
declarations: [
|
|
16
|
+
FileDropperComponent
|
|
17
|
+
],
|
|
18
|
+
exports: [FileDropperComponent]
|
|
19
|
+
},] }
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wcGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZmlsZS1kcm9wcGVyL2ZpbGUtZHJvcHBlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBYXBELE1BQU0sT0FBTyxpQkFBaUI7OztZQVg3QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixjQUFjO2lCQUNqQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1Ysb0JBQW9CO2lCQUN2QjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmlsZURyb3BwZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtZHJvcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcbiAgICAgICAgTWF0ZXJpYWxNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWxlRHJvcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW0ZpbGVEcm9wcGVyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRHJvcHBlck1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './file-dropper.component';
|
|
2
|
+
export * from './file-dropper.model';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2ZpbGUtZHJvcHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWRyb3BwZXIubW9kZWwnOyJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
const routes = [];
|
|
4
|
+
export class FailedItemsRoutingModule {
|
|
5
|
+
}
|
|
6
|
+
FailedItemsRoutingModule.decorators = [
|
|
7
|
+
{ type: NgModule, args: [{
|
|
8
|
+
imports: [RouterModule.forChild(routes)],
|
|
9
|
+
exports: [RouterModule]
|
|
10
|
+
},] }
|
|
11
|
+
];
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLWl0ZW1zLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9pbXBvcnQtY3N2L2ZhaWxlZC1pdGVtcy9mYWlsZWQtaXRlbXMtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0FBTTFCLE1BQU0sT0FBTyx3QkFBd0I7OztZQUpwQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmFpbGVkSXRlbXNSb3V0aW5nTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class FailedItemsComponent {
|
|
3
|
+
constructor() { }
|
|
4
|
+
ngOnInit() {
|
|
5
|
+
}
|
|
6
|
+
isValidDate(d) {
|
|
7
|
+
var date = new Date(d);
|
|
8
|
+
return date instanceof Date && !isNaN(date.getTime());
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
FailedItemsComponent.decorators = [
|
|
12
|
+
{ type: Component, args: [{
|
|
13
|
+
selector: 'app-failed-items',
|
|
14
|
+
template: "<div *ngIf=\"failedItems.length\" class=\"mt-4\">\n <div fxLayout fxLayoutAlign=\"center\">\n <h4>Failed Items</h4>\n </div>\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center\">\n <table class=\"table table-bordered table-striped table-hover table-sm\" fxFlex=\"80%\">\n <thead>\n <tr>\n <th>#</th>\n <th *ngFor=\"let field of selectedFields;\">{{field?.label}}</th>\n <th class=\"text-danger\">Error</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let timesheet of failedItems; let i=index\">\n <tr>\n <td>{{i + 1}}</td>\n <td *ngFor=\"let field of selectedFields;\">\n <ng-container *ngIf=\"(field.propertyType == 'date' || field.propertyType == 'dateTime')\n &&isValidDate(timesheet[field.property]);else elseProperty;\">\n {{ timesheet[field.property] | date:'mediumDate' }}\n </ng-container>\n <ng-template #elseProperty>\n {{ timesheet[field.property] }}\n </ng-template>\n </td>\n <td class=\"text-danger\">\n {{timesheet?.error}}\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n</div>",
|
|
15
|
+
styles: [""]
|
|
16
|
+
},] }
|
|
17
|
+
];
|
|
18
|
+
FailedItemsComponent.ctorParameters = () => [];
|
|
19
|
+
FailedItemsComponent.propDecorators = {
|
|
20
|
+
failedItems: [{ type: Input }],
|
|
21
|
+
selectedFields: [{ type: Input }]
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvaW1wb3J0LWNzdi9mYWlsZWQtaXRlbXMvZmFpbGVkLWl0ZW1zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU96RCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQU07UUFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7OztZQWpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsMmpEQUE0Qzs7YUFFN0M7Ozs7MEJBR0UsS0FBSzs2QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mYWlsZWQtaXRlbXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFpbGVkLWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFpbGVkLWl0ZW1zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFpbGVkSXRlbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGZhaWxlZEl0ZW1zOiBhbnlbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRGaWVsZHM6IGFueVtdO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgaXNWYWxpZERhdGUoZDogYW55KTogYm9vbGVhbiB7XG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShkKTtcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FailedItemsRoutingModule } from './failed-items-routing.module';
|
|
4
|
+
import { FailedItemsComponent } from './failed-items.component';
|
|
5
|
+
import { MaterialModule } from '../../material.module';
|
|
6
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
7
|
+
export class FailedItemsModule {
|
|
8
|
+
}
|
|
9
|
+
FailedItemsModule.decorators = [
|
|
10
|
+
{ type: NgModule, args: [{
|
|
11
|
+
declarations: [FailedItemsComponent],
|
|
12
|
+
imports: [
|
|
13
|
+
CommonModule,
|
|
14
|
+
MaterialModule,
|
|
15
|
+
FlexLayoutModule,
|
|
16
|
+
FailedItemsRoutingModule
|
|
17
|
+
],
|
|
18
|
+
exports: [FailedItemsComponent]
|
|
19
|
+
},] }
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLWl0ZW1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvaW1wb3J0LWNzdi9mYWlsZWQtaXRlbXMvZmFpbGVkLWl0ZW1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFheEQsTUFBTSxPQUFPLGlCQUFpQjs7O1lBVjdCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxnQkFBZ0I7b0JBQ2hCLHdCQUF3QjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRmFpbGVkSXRlbXNSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9mYWlsZWQtaXRlbXMtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmFpbGVkSXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2ZhaWxlZC1pdGVtcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGYWlsZWRJdGVtc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBGYWlsZWRJdGVtc1JvdXRpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0ZhaWxlZEl0ZW1zQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGYWlsZWRJdGVtc01vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class ImportConfig {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvaW1wb3J0LWNzdi9pbXBvcnQtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0NBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEltcG9ydENvbmZpZyB7XG4gICAgcG9zdFVybDogc3RyaW5nO1xuICAgIHByb3BlcnRpZXM6IGFueVtdO1xuICAgIGltcG9ydFR5cGU6IHN0cmluZztcbn0iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
const routes = [];
|
|
4
|
+
export class ImportCsvRoutingModule {
|
|
5
|
+
}
|
|
6
|
+
ImportCsvRoutingModule.decorators = [
|
|
7
|
+
{ type: NgModule, args: [{
|
|
8
|
+
imports: [RouterModule.forChild(routes)],
|
|
9
|
+
exports: [RouterModule]
|
|
10
|
+
},] }
|
|
11
|
+
];
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNzdi1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvaW1wb3J0LWNzdi9pbXBvcnQtY3N2LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztBQU0xQixNQUFNLE9BQU8sc0JBQXNCOzs7WUFKbEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW107XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEltcG9ydENzdlJvdXRpbmdNb2R1bGUgeyB9XG4iXX0=
|