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,58 @@
|
|
|
1
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
2
|
+
/*
|
|
3
|
+
* This module imports and re-exports all Angular Material modules for convenience,
|
|
4
|
+
* so only 1 module import is needed in your feature modules.
|
|
5
|
+
* See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.
|
|
6
|
+
*
|
|
7
|
+
* To optimize your production builds, you should only import the components used in your app.
|
|
8
|
+
*/
|
|
9
|
+
import { NgModule } from "@angular/core";
|
|
10
|
+
import { MatCommonModule, MatLineModule, MatNativeDateModule, MatOptionModule, MatPseudoCheckboxModule, MatRippleModule } from "@angular/material/core";
|
|
11
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
12
|
+
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
13
|
+
import { MatDialogModule } from "@angular/material/dialog";
|
|
14
|
+
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
15
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
16
|
+
import { MatInputModule } from "@angular/material/input";
|
|
17
|
+
import { MatMenuModule } from "@angular/material/menu";
|
|
18
|
+
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
|
19
|
+
import { MatSelectModule } from "@angular/material/select";
|
|
20
|
+
import { MatSortModule } from "@angular/material/sort";
|
|
21
|
+
import { MatTableModule } from "@angular/material/table";
|
|
22
|
+
import { MatCardModule } from "@angular/material/card";
|
|
23
|
+
import { MatDividerModule } from "@angular/material/divider";
|
|
24
|
+
import { MatChipsModule } from "@angular/material/chips";
|
|
25
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
26
|
+
import { MatListModule } from '@angular/material/list';
|
|
27
|
+
export class MaterialModule {
|
|
28
|
+
}
|
|
29
|
+
MaterialModule.decorators = [
|
|
30
|
+
{ type: NgModule, args: [{
|
|
31
|
+
exports: [
|
|
32
|
+
MatButtonModule,
|
|
33
|
+
MatCheckboxModule,
|
|
34
|
+
MatCommonModule,
|
|
35
|
+
MatDialogModule,
|
|
36
|
+
MatFormFieldModule,
|
|
37
|
+
MatIconModule,
|
|
38
|
+
MatInputModule,
|
|
39
|
+
MatLineModule,
|
|
40
|
+
MatMenuModule,
|
|
41
|
+
MatNativeDateModule,
|
|
42
|
+
MatOptionModule,
|
|
43
|
+
MatProgressSpinnerModule,
|
|
44
|
+
MatPseudoCheckboxModule,
|
|
45
|
+
MatRippleModule,
|
|
46
|
+
MatSelectModule,
|
|
47
|
+
MatSortModule,
|
|
48
|
+
MatTableModule,
|
|
49
|
+
MatCardModule,
|
|
50
|
+
MatDividerModule,
|
|
51
|
+
MatChipsModule,
|
|
52
|
+
MatDatepickerModule,
|
|
53
|
+
MatListModule,
|
|
54
|
+
MatTooltipModule
|
|
55
|
+
]
|
|
56
|
+
},] }
|
|
57
|
+
];
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9tYXRlcmlhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0Q7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixlQUFlLEVBQ2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQThCdEQsTUFBTSxPQUFPLGNBQWM7OztZQTNCMUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsZUFBZTtvQkFDZixlQUFlO29CQUNmLGtCQUFrQjtvQkFDbEIsYUFBYTtvQkFDYixjQUFjO29CQUNkLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2Ysd0JBQXdCO29CQUN4Qix1QkFBdUI7b0JBQ3ZCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixhQUFhO29CQUNiLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsbUJBQW1CO29CQUNuQixhQUFhO29CQUNiLGdCQUFnQjtpQkFDakI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbi8qXG4gKiBUaGlzIG1vZHVsZSBpbXBvcnRzIGFuZCByZS1leHBvcnRzIGFsbCBBbmd1bGFyIE1hdGVyaWFsIG1vZHVsZXMgZm9yIGNvbnZlbmllbmNlLFxuICogc28gb25seSAxIG1vZHVsZSBpbXBvcnQgaXMgbmVlZGVkIGluIHlvdXIgZmVhdHVyZSBtb2R1bGVzLlxuICogU2VlIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQjc3RlcC0zLWltcG9ydC10aGUtY29tcG9uZW50LW1vZHVsZXMuXG4gKlxuICogVG8gb3B0aW1pemUgeW91ciBwcm9kdWN0aW9uIGJ1aWxkcywgeW91IHNob3VsZCBvbmx5IGltcG9ydCB0aGUgY29tcG9uZW50cyB1c2VkIGluIHlvdXIgYXBwLlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIE1hdENvbW1vbk1vZHVsZSxcbiAgTWF0TGluZU1vZHVsZSxcbiAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgTWF0T3B0aW9uTW9kdWxlLFxuICBNYXRQc2V1ZG9DaGVja2JveE1vZHVsZSxcbiAgTWF0UmlwcGxlTW9kdWxlXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXJcIjtcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyXCI7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnXG5cblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdExpbmVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0UHNldWRvQ2hlY2tib3hNb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './note-list/note-list.component';
|
|
2
|
+
export * from './note-form/note-form.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JzsiXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, Inject } from "@angular/core";
|
|
3
|
+
import { FormBuilder, Validators } from "@angular/forms";
|
|
4
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
5
|
+
import { NoteService } from "../note.service";
|
|
6
|
+
import { FormValidatorService } from '../../core/form-validator.service';
|
|
7
|
+
import { AlertService } from "../../core/alert.service";
|
|
8
|
+
const errorMessages = {
|
|
9
|
+
note: {
|
|
10
|
+
required: "Note is required"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export class NoteFormComponent {
|
|
14
|
+
constructor(dialogRef, data, fb, formValidatorService, alertService, noteService) {
|
|
15
|
+
this.dialogRef = dialogRef;
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.fb = fb;
|
|
18
|
+
this.formValidatorService = formValidatorService;
|
|
19
|
+
this.alertService = alertService;
|
|
20
|
+
this.noteService = noteService;
|
|
21
|
+
this.createForm();
|
|
22
|
+
}
|
|
23
|
+
/** Method to create a form **/
|
|
24
|
+
createForm() {
|
|
25
|
+
//TODO: Finialize and add more validations.
|
|
26
|
+
this.noteFormGroup = this.fb.group({
|
|
27
|
+
id: [""],
|
|
28
|
+
note: ["", Validators.compose([Validators.required])],
|
|
29
|
+
model_type: [""],
|
|
30
|
+
related_model_id: [""],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
if (this.data.update) {
|
|
35
|
+
this.updateMode = true;
|
|
36
|
+
}
|
|
37
|
+
this.noteFormGroup.patchValue(this.data.note);
|
|
38
|
+
}
|
|
39
|
+
//Method to trigger login
|
|
40
|
+
submit() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
this.noteFormFirstAttempt = true;
|
|
43
|
+
if (this.noteFormGroup.valid) {
|
|
44
|
+
const model = this.noteFormGroup.value;
|
|
45
|
+
const result = this.updateMode
|
|
46
|
+
? yield this.noteService.editNote(model)
|
|
47
|
+
: yield this.noteService.addNote(model);
|
|
48
|
+
this.alertService.addAlert("Note saved successfully", "success");
|
|
49
|
+
this.dialogRef.close(result);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
cancel() {
|
|
54
|
+
this.dialogRef.close();
|
|
55
|
+
}
|
|
56
|
+
/**Method to evaluate form fields*/
|
|
57
|
+
isFieldValid(field) {
|
|
58
|
+
return this.formValidatorService.isFieldValid(field, this.noteFormGroup, this.noteFormFirstAttempt);
|
|
59
|
+
}
|
|
60
|
+
/**Method to find error in form fields*/
|
|
61
|
+
getErrorMessage(field) {
|
|
62
|
+
return this.formValidatorService.getErrorMessage(field, this.noteFormGroup, errorMessages);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
NoteFormComponent.decorators = [
|
|
66
|
+
{ type: Component, args: [{
|
|
67
|
+
selector: 'app-note-form',
|
|
68
|
+
template: "<form [formGroup]=\"noteFormGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Note</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\">\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput formControlName=\"note\" placeholder=\"Note\" autocomplete=\"off\" required></textarea>\n <mat-error *ngIf=\"isFieldValid('note')\">{{\n getErrorMessage(\"note\")\n }}</mat-error>\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n </div>\n</form>",
|
|
69
|
+
styles: [""]
|
|
70
|
+
},] }
|
|
71
|
+
];
|
|
72
|
+
NoteFormComponent.ctorParameters = () => [
|
|
73
|
+
{ type: MatDialogRef },
|
|
74
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
|
75
|
+
{ type: FormBuilder },
|
|
76
|
+
{ type: FormValidatorService },
|
|
77
|
+
{ type: AlertService },
|
|
78
|
+
{ type: NoteService }
|
|
79
|
+
];
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsTUFBTSxhQUFhLEdBQVE7SUFDekIsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGtCQUFrQjtLQUM3QjtDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCO0lBTTVCLFlBQ1MsU0FBMEMsRUFDakIsSUFBUyxFQUNqQyxFQUFlLEVBQ2Ysb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLFdBQXdCO1FBTHpCLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCwrQkFBK0I7SUFDdkIsVUFBVTtRQUNoQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JELFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx5QkFBeUI7SUFDbkIsTUFBTTs7WUFDVixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVTtvQkFDNUIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUN4QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQ3hCLHlCQUF5QixFQUN6QixTQUFTLENBQ1YsQ0FBQztnQkFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUM7S0FBQTtJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUMzQyxLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELHdDQUF3QztJQUN4QyxlQUFlLENBQUMsS0FBYTtRQUMzQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQzlDLEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxFQUNsQixhQUFhLENBQ2QsQ0FBQztJQUNKLENBQUM7OztZQTdFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLHdvQ0FBeUM7O2FBRTFDOzs7WUFmUSxZQUFZOzRDQXdCaEIsTUFBTSxTQUFDLGVBQWU7WUF6QlAsV0FBVztZQUd0QixvQkFBb0I7WUFDcEIsWUFBWTtZQUZaLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tIFwiLi4vbm90ZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS12YWxpZGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hbGVydC5zZXJ2aWNlXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgbm90ZToge1xuICAgIHJlcXVpcmVkOiBcIk5vdGUgaXMgcmVxdWlyZWRcIlxuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHVwZGF0ZU1vZGU6IGJvb2xlYW47XG4gIG5vdGVGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgbm90ZUZvcm1GaXJzdEF0dGVtcHQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5vdGVGb3JtQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90ZVNlcnZpY2U6IE5vdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgLyoqIE1ldGhvZCB0byBjcmVhdGUgYSBmb3JtICoqL1xuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgLy9UT0RPOiBGaW5pYWxpemUgYW5kIGFkZCBtb3JlIHZhbGlkYXRpb25zLlxuICAgIHRoaXMubm90ZUZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFtcIlwiXSxcbiAgICAgIG5vdGU6IFtcIlwiLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICBtb2RlbF90eXBlOiBbXCJcIl0sXG4gICAgICByZWxhdGVkX21vZGVsX2lkOiBbXCJcIl0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhLnVwZGF0ZSkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5ub3RlRm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy5kYXRhLm5vdGUpO1xuICB9XG5cbiAgLy9NZXRob2QgdG8gdHJpZ2dlciBsb2dpblxuICBhc3luYyBzdWJtaXQoKSB7XG4gICAgdGhpcy5ub3RlRm9ybUZpcnN0QXR0ZW1wdCA9IHRydWU7XG4gICAgaWYgKHRoaXMubm90ZUZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLm5vdGVGb3JtR3JvdXAudmFsdWU7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnVwZGF0ZU1vZGVcbiAgICAgICAgPyBhd2FpdCB0aGlzLm5vdGVTZXJ2aWNlLmVkaXROb3RlKG1vZGVsKVxuICAgICAgICA6IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuYWRkTm90ZShtb2RlbCk7XG5cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFxuICAgICAgICBcIk5vdGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5XCIsXG4gICAgICAgIFwic3VjY2Vzc1wiXG4gICAgICApO1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCB0byBldmFsdWF0ZSBmb3JtIGZpZWxkcyovXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKFxuICAgICAgZmllbGQsXG4gICAgICB0aGlzLm5vdGVGb3JtR3JvdXAsXG4gICAgICB0aGlzLm5vdGVGb3JtRmlyc3RBdHRlbXB0XG4gICAgKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCB0byBmaW5kIGVycm9yIGluIGZvcm0gZmllbGRzKi9cbiAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXG4gICAgICBmaWVsZCxcbiAgICAgIHRoaXMubm90ZUZvcm1Hcm91cCxcbiAgICAgIGVycm9yTWVzc2FnZXNcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { NoteService } from '../note.service';
|
|
4
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
5
|
+
import { NoteFormComponent } from '../note-form/note-form.component';
|
|
6
|
+
import { ActionPopupComponent } from '../../action-popup/action-popup.component';
|
|
7
|
+
import { AlertService } from '../../core/alert.service';
|
|
8
|
+
export class NoteListComponent {
|
|
9
|
+
constructor(noteService, alertService, dialog) {
|
|
10
|
+
this.noteService = noteService;
|
|
11
|
+
this.alertService = alertService;
|
|
12
|
+
this.dialog = dialog;
|
|
13
|
+
this.readonly = false;
|
|
14
|
+
this.notes = [];
|
|
15
|
+
this.displayedColumns = [
|
|
16
|
+
'index',
|
|
17
|
+
'note',
|
|
18
|
+
'actions'
|
|
19
|
+
];
|
|
20
|
+
this.page = 1;
|
|
21
|
+
this.lastPage = 1;
|
|
22
|
+
this.filters = {};
|
|
23
|
+
this.filters.sort_by = "created_at|DESC";
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
if (this.readonly) {
|
|
27
|
+
this.displayedColumns = this.displayedColumns.filter(x => x !== 'actions');
|
|
28
|
+
}
|
|
29
|
+
this.filters.related_model_id = this.relatedModelId;
|
|
30
|
+
this.filters.model_type = this.modelType;
|
|
31
|
+
this.loadData();
|
|
32
|
+
}
|
|
33
|
+
loadData() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const result = yield this.noteService.getNotes(Object.assign(Object.assign({}, this.filters), { page: this.page }));
|
|
36
|
+
this.notes = this.notes.concat(result.data);
|
|
37
|
+
this.page = result.current_page;
|
|
38
|
+
this.lastPage = result.last_page;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
addNote() {
|
|
42
|
+
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
43
|
+
width: "400px",
|
|
44
|
+
data: {
|
|
45
|
+
note: { related_model_id: this.relatedModelId, model_type: this.modelType }
|
|
46
|
+
},
|
|
47
|
+
autoFocus: false
|
|
48
|
+
});
|
|
49
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
50
|
+
if (result) {
|
|
51
|
+
this.resetScroll();
|
|
52
|
+
this.loadData();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
editNote(note) {
|
|
57
|
+
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
58
|
+
width: "400px",
|
|
59
|
+
data: {
|
|
60
|
+
note: note,
|
|
61
|
+
update: true
|
|
62
|
+
},
|
|
63
|
+
autoFocus: false
|
|
64
|
+
});
|
|
65
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
66
|
+
if (result) {
|
|
67
|
+
this.resetScroll();
|
|
68
|
+
this.loadData();
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
deleteNote(note) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
75
|
+
width: "400px",
|
|
76
|
+
data: {
|
|
77
|
+
title: "Delete Note",
|
|
78
|
+
message: `Are you sure to delete the note?`
|
|
79
|
+
},
|
|
80
|
+
autoFocus: false
|
|
81
|
+
});
|
|
82
|
+
dialogRef.afterClosed().subscribe((result) => __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
if (result) {
|
|
84
|
+
//Action confirmed
|
|
85
|
+
const result = yield this.noteService.deleteNote(note);
|
|
86
|
+
this.notes = this.notes.filter((item) => item.id !== note.id);
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
resetScroll() {
|
|
92
|
+
this.page = 1;
|
|
93
|
+
this.lastPage = 1;
|
|
94
|
+
this.notes = [];
|
|
95
|
+
}
|
|
96
|
+
onScroll() {
|
|
97
|
+
if (this.page < this.lastPage) {
|
|
98
|
+
this.page += 1;
|
|
99
|
+
this.loadData();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
NoteListComponent.decorators = [
|
|
104
|
+
{ type: Component, args: [{
|
|
105
|
+
selector: 'app-note-list',
|
|
106
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" class=\"m-4\">\n\n <div fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">Notes</h3>\n <button class=\"d-print-none\" *ngIf=\"!readonly\" mat-raised-button color=\"primary\" type=\"button\"\n (click)=\"addNote()\">+ Add</button>\n </div>\n\n <div class=\"w-00 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"notes\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> Note </th>\n <td mat-cell *matCellDef=\"let note\">\n {{note?.note}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions </th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none\">\n <button type=\"button\" mat-icon-button (click)=\"editNote(note)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteNote(note)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n</div>",
|
|
107
|
+
styles: [".scroll-container{max-height:400px;overflow-y:auto}"]
|
|
108
|
+
},] }
|
|
109
|
+
];
|
|
110
|
+
NoteListComponent.ctorParameters = () => [
|
|
111
|
+
{ type: NoteService },
|
|
112
|
+
{ type: AlertService },
|
|
113
|
+
{ type: MatDialog }
|
|
114
|
+
];
|
|
115
|
+
NoteListComponent.propDecorators = {
|
|
116
|
+
relatedModelId: [{ type: Input }],
|
|
117
|
+
modelType: [{ type: Input }],
|
|
118
|
+
readonly: [{ type: Input }]
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPeEQsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUIsWUFBb0IsV0FBd0IsRUFDbEMsWUFBMEIsRUFDMUIsTUFBaUI7UUFGUCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZmxCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUVsQixxQkFBZ0IsR0FBRztZQUNqQixPQUFPO1lBQ1AsTUFBTTtZQUNOLFNBQVM7U0FDVixDQUFDO1FBRUYsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULGFBQVEsR0FBRyxDQUFDLENBQUM7UUFNWCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZ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QyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUVwRTtZQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQzs7O1lBbEhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsNjlEQUF5Qzs7YUFFMUM7OztZQVhRLFdBQVc7WUFLWCxZQUFZO1lBSlosU0FBUzs7OzZCQWFmLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4uL25vdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTm90ZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cC9hY3Rpb24tcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblBvcHVwIH0gZnJvbSAnLi4vLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FsZXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBub3RlczogYW55W10gPSBbXTtcbiAgZmlsdGVyczogYW55O1xuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ25vdGUnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuXG4gIHBhZ2UgPSAxO1xuICBsYXN0UGFnZSA9IDE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge1xuICAgIHRoaXMuZmlsdGVycyA9IHt9O1xuICAgIHRoaXMuZmlsdGVycy5zb3J0X2J5ID0gXCJjcmVhdGVkX2F0fERFU0NcIjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ2FjdGlvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZ2V0Tm90ZXMoeyAuLi50aGlzLmZpbHRlcnMsIHBhZ2U6IHRoaXMucGFnZSB9KTtcbiAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgIHRoaXMucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdC5sYXN0X3BhZ2U7XG4gIH1cblxuICBhZGROb3RlKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTm90ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5vdGU6IHsgcmVsYXRlZF9tb2RlbF9pZDogdGhpcy5yZWxhdGVkTW9kZWxJZCwgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUgfVxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XG4gICAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGVkaXROb3RlKG5vdGU6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTm90ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5vdGU6IG5vdGUsXG4gICAgICAgIHVwZGF0ZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XG4gICAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU5vdGUobm90ZTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IFwiNDAwcHhcIixcbiAgICAgIGRhdGE6IDxBY3Rpb25Qb3B1cD57XG4gICAgICAgIHRpdGxlOiBcIkRlbGV0ZSBOb3RlXCIsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlIHRoZSBub3RlP2BcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy9BY3Rpb24gY29uZmlybWVkXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5kZWxldGVOb3RlKG5vdGUpO1xuICAgICAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCAhPT0gbm90ZS5pZCk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0U2Nyb2xsKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDE7XG4gICAgdGhpcy5ub3RlcyA9IFtdO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSArPSAxO1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NoteListComponent } from './note-list/note-list.component';
|
|
4
|
+
import { NoteFormComponent } from './note-form/note-form.component';
|
|
5
|
+
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
6
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
7
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
8
|
+
import { ActionPopupModule } from '../action-popup/action-popup.module';
|
|
9
|
+
import { MaterialModule } from '../material.module';
|
|
10
|
+
export class NoteModule {
|
|
11
|
+
}
|
|
12
|
+
NoteModule.decorators = [
|
|
13
|
+
{ type: NgModule, args: [{
|
|
14
|
+
declarations: [
|
|
15
|
+
NoteListComponent,
|
|
16
|
+
NoteFormComponent
|
|
17
|
+
],
|
|
18
|
+
imports: [
|
|
19
|
+
CommonModule,
|
|
20
|
+
ReactiveFormsModule,
|
|
21
|
+
InfiniteScrollModule,
|
|
22
|
+
FlexLayoutModule,
|
|
23
|
+
ActionPopupModule,
|
|
24
|
+
MaterialModule
|
|
25
|
+
],
|
|
26
|
+
exports: [
|
|
27
|
+
NoteListComponent
|
|
28
|
+
],
|
|
29
|
+
entryComponents: [NoteFormComponent]
|
|
30
|
+
},] }
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBb0JwRCxNQUFNLE9BQU8sVUFBVTs7O1lBbEJ0QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGlCQUFpQjtvQkFDakIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5vdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5vdGVMaXN0Q29tcG9uZW50LFxuICAgIE5vdGVGb3JtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEFjdGlvblBvcHVwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOb3RlTGlzdENvbXBvbmVudFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOb3RlRm9ybUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTm90ZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
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 NoteService {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
}
|
|
9
|
+
getNotes(filterModel) {
|
|
10
|
+
return this.http.get('api/notes', { params: filterModel }).toPromise();
|
|
11
|
+
}
|
|
12
|
+
addNote(note) {
|
|
13
|
+
return this.http.post('api/notes', note).toPromise();
|
|
14
|
+
}
|
|
15
|
+
editNote(note) {
|
|
16
|
+
return this.http.put(`api/notes/${note.id}`, note).toPromise();
|
|
17
|
+
}
|
|
18
|
+
deleteNote(note) {
|
|
19
|
+
return this.http.delete(`api/notes/${note.id}`).toPromise();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
NoteService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NoteService_Factory() { return new NoteService(i0.ɵɵinject(i1.HttpService)); }, token: NoteService, providedIn: "root" });
|
|
23
|
+
NoteService.decorators = [
|
|
24
|
+
{ type: Injectable, args: [{
|
|
25
|
+
providedIn: 'root'
|
|
26
|
+
},] }
|
|
27
|
+
];
|
|
28
|
+
NoteService.ctorParameters = () => [
|
|
29
|
+
{ type: HttpService }
|
|
30
|
+
];
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9ub3RlL25vdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBS25ELE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7SUFBSSxDQUFDO0lBRTFDLFFBQVEsQ0FBQyxXQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBUztRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBUztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUQsQ0FBQzs7OztZQXJCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUpRLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm90ZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UpIHsgfVxuXG4gIGdldE5vdGVzKGZpbHRlck1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCgnYXBpL25vdGVzJywgeyBwYXJhbXM6IGZpbHRlck1vZGVsIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYWRkTm90ZShub3RlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2FwaS9ub3RlcycsIG5vdGUpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZWRpdE5vdGUobm90ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYGFwaS9ub3Rlcy8ke25vdGUuaWR9YCwgbm90ZSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBkZWxldGVOb3RlKG5vdGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGBhcGkvbm90ZXMvJHtub3RlLmlkfWApLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './searchable-selector.component';
|
|
2
|
+
export * from './mat-select-infinite-scroll.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3NlYXJjaGFibGUtc2VsZWN0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWFyY2hhYmxlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZSc7Il19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';
|
|
2
|
+
import { MatSelect, SELECT_ITEM_HEIGHT_EM } from '@angular/material/select';
|
|
3
|
+
import { debounceTime, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
5
|
+
export class MatSelectInfiniteScrollDirective {
|
|
6
|
+
constructor(matSelect, ngZone) {
|
|
7
|
+
this.matSelect = matSelect;
|
|
8
|
+
this.ngZone = ngZone;
|
|
9
|
+
this.threshold = '15%';
|
|
10
|
+
this.debounceTime = 150;
|
|
11
|
+
this.infiniteScroll = new EventEmitter();
|
|
12
|
+
this.thrPx = 0;
|
|
13
|
+
this.thrPc = 0;
|
|
14
|
+
this.singleOptionHeight = SELECT_ITEM_HEIGHT_EM;
|
|
15
|
+
this.destroyed$ = new Subject();
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.evaluateThreshold();
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewInit() {
|
|
21
|
+
this.matSelect.openedChange.pipe(takeUntil(this.destroyed$)).subscribe((opened) => {
|
|
22
|
+
if (opened) {
|
|
23
|
+
this.panel = this.matSelect.panel.nativeElement;
|
|
24
|
+
this.singleOptionHeight = this.getSelectItemHeightPx();
|
|
25
|
+
this.registerScrollListener();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
this.destroyed$.next(true);
|
|
31
|
+
this.destroyed$.complete();
|
|
32
|
+
}
|
|
33
|
+
evaluateThreshold() {
|
|
34
|
+
if (this.threshold.lastIndexOf('%') > -1) {
|
|
35
|
+
this.thrPx = 0;
|
|
36
|
+
this.thrPc = (parseFloat(this.threshold) / 100);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.thrPx = parseFloat(this.threshold);
|
|
40
|
+
this.thrPc = 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
registerScrollListener() {
|
|
44
|
+
fromEvent(this.panel, 'scroll').pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime), tap((event) => {
|
|
45
|
+
this.handleScrollEvent(event);
|
|
46
|
+
})).subscribe();
|
|
47
|
+
}
|
|
48
|
+
handleScrollEvent(event) {
|
|
49
|
+
this.ngZone.runOutsideAngular(() => {
|
|
50
|
+
if (this.complete) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const countOfRenderedOptions = this.matSelect.options.length;
|
|
54
|
+
const infiniteScrollDistance = this.singleOptionHeight * countOfRenderedOptions;
|
|
55
|
+
const threshold = this.thrPc !== 0 ? (infiniteScrollDistance * this.thrPc) : this.thrPx;
|
|
56
|
+
const scrolledDistance = this.panel.clientHeight + event.target.scrollTop;
|
|
57
|
+
if ((scrolledDistance + threshold) >= infiniteScrollDistance) {
|
|
58
|
+
this.ngZone.run(() => this.infiniteScroll.emit());
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
getSelectItemHeightPx() {
|
|
63
|
+
return parseFloat(getComputedStyle(this.panel).fontSize) * SELECT_ITEM_HEIGHT_EM;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
MatSelectInfiniteScrollDirective.decorators = [
|
|
67
|
+
{ type: Directive, args: [{
|
|
68
|
+
selector: '[msInfiniteScroll]'
|
|
69
|
+
},] }
|
|
70
|
+
];
|
|
71
|
+
MatSelectInfiniteScrollDirective.ctorParameters = () => [
|
|
72
|
+
{ type: MatSelect },
|
|
73
|
+
{ type: NgZone }
|
|
74
|
+
];
|
|
75
|
+
MatSelectInfiniteScrollDirective.propDecorators = {
|
|
76
|
+
threshold: [{ type: Input }],
|
|
77
|
+
debounceTime: [{ type: Input }],
|
|
78
|
+
complete: [{ type: Input }],
|
|
79
|
+
infiniteScroll: [{ type: Output }]
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zZWFyY2hhYmxlLXNlbGVjdG9yL21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsxQyxNQUFNLE9BQU8sZ0NBQWdDO0lBYzNDLFlBQW9CLFNBQW9CLEVBQVUsTUFBYztRQUE1QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVp2RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBRWxCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBRTNDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRzVDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENB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TUFBTTs7O3dCQVUzRCxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSzs2QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdCwgU0VMRUNUX0lURU1fSEVJR0hUX0VNIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21zSW5maW5pdGVTY3JvbGxdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSB0aHJlc2hvbGQgPSAnMTUlJztcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lID0gMTUwO1xuICBASW5wdXQoKSBjb21wbGV0ZTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGluZmluaXRlU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGFuZWw6IEVsZW1lbnQ7XG4gIHByaXZhdGUgdGhyUHggPSAwO1xuICBwcml2YXRlIHRoclBjID0gMDtcbiAgcHJpdmF0ZSBzaW5nbGVPcHRpb25IZWlnaHQgPSBTRUxFQ1RfSVRFTV9IRUlHSFRfRU07XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdFNlbGVjdDogTWF0U2VsZWN0LCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmV2YWx1YXRlVGhyZXNob2xkKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICkuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcbiAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgdGhpcy5wYW5lbCA9IHRoaXMubWF0U2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuc2luZ2xlT3B0aW9uSGVpZ2h0ID0gdGhpcy5nZXRTZWxlY3RJdGVtSGVpZ2h0UHgoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbExpc3RlbmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGV2YWx1YXRlVGhyZXNob2xkKCkge1xuICAgIGlmICh0aGlzLnRocmVzaG9sZC5sYXN0SW5kZXhPZignJScpID4gLTEpIHtcbiAgICAgIHRoaXMudGhyUHggPSAwO1xuICAgICAgdGhpcy50aHJQYyA9IChwYXJzZUZsb2F0KHRoaXMudGhyZXNob2xkKSAvIDEwMCk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aHJQeCA9IHBhcnNlRmxvYXQodGhpcy50aHJlc2hvbGQpO1xuICAgICAgdGhpcy50aHJQYyA9IDA7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICBmcm9tRXZlbnQodGhpcy5wYW5lbCwgJ3Njcm9sbCcpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsRXZlbnQoZXZlbnQpO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgaGFuZGxlU2Nyb2xsRXZlbnQoZXZlbnQpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb21wbGV0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb3VudE9mUmVuZGVyZWRPcHRpb25zID0gdGhpcy5tYXRTZWxlY3Qub3B0aW9ucy5sZW5ndGg7XG4gICAgICBjb25zdCBpbmZpbml0ZVNjcm9sbERpc3RhbmNlID0gdGhpcy5zaW5nbGVPcHRpb25IZWlnaHQgKiBjb3VudE9mUmVuZGVyZWRPcHRpb25zO1xuICAgICAgY29uc3QgdGhyZXNob2xkID0gdGhpcy50aHJQYyAhPT0gMCA/IChpbmZpbml0ZVNjcm9sbERpc3RhbmNlICogdGhpcy50aHJQYykgOiB0aGlzLnRoclB4O1xuXG4gICAgICBjb25zdCBzY3JvbGxlZERpc3RhbmNlID0gdGhpcy5wYW5lbC5jbGllbnRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuXG4gICAgICBpZiAoKHNjcm9sbGVkRGlzdGFuY2UgKyB0aHJlc2hvbGQpID49IGluZmluaXRlU2Nyb2xsRGlzdGFuY2UpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaW5maW5pdGVTY3JvbGwuZW1pdCgpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFNlbGVjdEl0ZW1IZWlnaHRQeCgpOiBudW1iZXIge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy5wYW5lbCkuZm9udFNpemUpICogU0VMRUNUX0lURU1fSEVJR0hUX0VNO1xuICB9XG5cbn0iXX0=
|