@sd-angular/core 1.3.0 → 1.3.1
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/api/package.json +1 -12
- package/api/sd-angular-core-api.d.ts +0 -2
- package/autocomplete/package.json +1 -12
- package/autocomplete/sd-angular-core-autocomplete.d.ts +0 -2
- package/badge/package.json +1 -12
- package/badge/sd-angular-core-badge.d.ts +0 -2
- package/bundles/sd-angular-core-api.umd.js +1 -2
- package/bundles/sd-angular-core-api.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +1 -2
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-badge.umd.js +1 -2
- package/bundles/sd-angular-core-badge.umd.js.map +1 -1
- package/bundles/sd-angular-core-button.umd.js +1 -2
- package/bundles/sd-angular-core-button.umd.js.map +1 -1
- package/bundles/sd-angular-core-cache.umd.js +1 -2
- package/bundles/sd-angular-core-cache.umd.js.map +1 -1
- package/bundles/sd-angular-core-chart.umd.js +1 -2
- package/bundles/sd-angular-core-chart.umd.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.js +1 -2
- package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.js +1 -2
- package/bundles/sd-angular-core-chip.umd.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.js +1 -2
- package/bundles/sd-angular-core-comment.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.js +1 -2
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-confirm.umd.js +1 -2
- package/bundles/sd-angular-core-confirm.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-month.umd.js +1 -2
- package/bundles/sd-angular-core-date-month.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-range.umd.js +1 -2
- package/bundles/sd-angular-core-date-range.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.js +1 -2
- package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-db.umd.js +1 -2
- package/bundles/sd-angular-core-db.umd.js.map +1 -1
- package/bundles/sd-angular-core-dynamic-report.umd.js +1 -2
- package/bundles/sd-angular-core-dynamic-report.umd.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.js +1 -2
- package/bundles/sd-angular-core-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-excel.umd.js +1 -2
- package/bundles/sd-angular-core-excel.umd.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.js +1 -2
- package/bundles/sd-angular-core-export.umd.js.map +1 -1
- package/bundles/sd-angular-core-filter.umd.js +1 -2
- package/bundles/sd-angular-core-filter.umd.js.map +1 -1
- package/bundles/sd-angular-core-form.umd.js +1 -2
- package/bundles/sd-angular-core-form.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +19 -17
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid.umd.js +1 -2
- package/bundles/sd-angular-core-grid.umd.js.map +1 -1
- package/bundles/sd-angular-core-group.umd.js +1 -2
- package/bundles/sd-angular-core-group.umd.js.map +1 -1
- package/bundles/sd-angular-core-header-title.umd.js +1 -2
- package/bundles/sd-angular-core-header-title.umd.js.map +1 -1
- package/bundles/sd-angular-core-image-preview.umd.js +1 -2
- package/bundles/sd-angular-core-image-preview.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.js +1 -2
- package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.js +1 -2
- package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.js +1 -2
- package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-upload-file.umd.js +1 -2
- package/bundles/sd-angular-core-input-upload-file.umd.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.js +1 -2
- package/bundles/sd-angular-core-input.umd.js.map +1 -1
- package/bundles/sd-angular-core-json-editor.umd.js +1 -2
- package/bundles/sd-angular-core-json-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-konva.umd.js +1 -2
- package/bundles/sd-angular-core-konva.umd.js.map +1 -1
- package/bundles/sd-angular-core-label.umd.js +1 -2
- package/bundles/sd-angular-core-label.umd.js.map +1 -1
- package/bundles/sd-angular-core-loading.umd.js +1 -2
- package/bundles/sd-angular-core-loading.umd.js.map +1 -1
- package/bundles/sd-angular-core-modal-resizable.umd.js +1 -2
- package/bundles/sd-angular-core-modal-resizable.umd.js.map +1 -1
- package/bundles/sd-angular-core-modal.umd.js +1 -2
- package/bundles/sd-angular-core-modal.umd.js.map +1 -1
- package/bundles/sd-angular-core-notify.umd.js +1 -2
- package/bundles/sd-angular-core-notify.umd.js.map +1 -1
- package/bundles/sd-angular-core-popover.umd.js +1 -2
- package/bundles/sd-angular-core-popover.umd.js.map +1 -1
- package/bundles/sd-angular-core-quick-action.umd.js +1 -2
- package/bundles/sd-angular-core-quick-action.umd.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.js +1 -2
- package/bundles/sd-angular-core-radio.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-badge.umd.js +1 -2
- package/bundles/sd-angular-core-select-badge.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js +1 -2
- package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +1 -2
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-service.umd.js +1 -2
- package/bundles/sd-angular-core-service.umd.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.js +1 -2
- package/bundles/sd-angular-core-setting.umd.js.map +1 -1
- package/bundles/sd-angular-core-side-drawer.umd.js +1 -2
- package/bundles/sd-angular-core-side-drawer.umd.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.js +1 -2
- package/bundles/sd-angular-core-switch.umd.js.map +1 -1
- package/bundles/sd-angular-core-tab-router.umd.js +1 -2
- package/bundles/sd-angular-core-tab-router.umd.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.js +1 -2
- package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
- package/bundles/sd-angular-core-time.umd.js +1 -2
- package/bundles/sd-angular-core-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-timeline.umd.js +1 -2
- package/bundles/sd-angular-core-timeline.umd.js.map +1 -1
- package/bundles/sd-angular-core-translate.umd.js +1 -2
- package/bundles/sd-angular-core-translate.umd.js.map +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.js +1 -2
- package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
- package/bundles/sd-angular-core-upload-file.umd.js +1 -2
- package/bundles/sd-angular-core-upload-file.umd.js.map +1 -1
- package/bundles/sd-angular-core-utility.umd.js +1 -2
- package/bundles/sd-angular-core-utility.umd.js.map +1 -1
- package/bundles/sd-angular-core-view.umd.js +1 -2
- package/bundles/sd-angular-core-view.umd.js.map +1 -1
- package/button/package.json +1 -12
- package/button/sd-angular-core-button.d.ts +0 -2
- package/cache/package.json +1 -12
- package/cache/sd-angular-core-cache.d.ts +0 -2
- package/chart/package.json +1 -12
- package/chart/sd-angular-core-chart.d.ts +0 -2
- package/checkbox/package.json +1 -12
- package/checkbox/sd-angular-core-checkbox.d.ts +0 -2
- package/chip/package.json +1 -12
- package/chip/sd-angular-core-chip.d.ts +0 -2
- package/comment/package.json +1 -12
- package/comment/sd-angular-core-comment.d.ts +0 -2
- package/common/package.json +1 -12
- package/common/sd-angular-core-common.d.ts +0 -2
- package/confirm/package.json +1 -12
- package/confirm/sd-angular-core-confirm.d.ts +0 -2
- package/date-month/package.json +1 -12
- package/date-month/sd-angular-core-date-month.d.ts +0 -2
- package/date-range/package.json +1 -12
- package/date-range/sd-angular-core-date-range.d.ts +0 -2
- package/date-time/package.json +1 -12
- package/date-time/sd-angular-core-date-time.d.ts +0 -2
- package/db/package.json +1 -12
- package/db/sd-angular-core-db.d.ts +0 -2
- package/dynamic-report/package.json +1 -12
- package/dynamic-report/sd-angular-core-dynamic-report.d.ts +0 -2
- package/editor/package.json +1 -12
- package/editor/sd-angular-core-editor.d.ts +0 -2
- package/esm2015/api/sd-angular-core-api.js +1 -1
- package/esm2015/autocomplete/sd-angular-core-autocomplete.js +1 -1
- package/esm2015/badge/sd-angular-core-badge.js +1 -1
- package/esm2015/button/sd-angular-core-button.js +1 -1
- package/esm2015/cache/sd-angular-core-cache.js +1 -1
- package/esm2015/chart/sd-angular-core-chart.js +1 -1
- package/esm2015/checkbox/sd-angular-core-checkbox.js +1 -1
- package/esm2015/chip/sd-angular-core-chip.js +1 -1
- package/esm2015/comment/sd-angular-core-comment.js +1 -1
- package/esm2015/common/sd-angular-core-common.js +1 -1
- package/esm2015/confirm/sd-angular-core-confirm.js +1 -1
- package/esm2015/date-month/sd-angular-core-date-month.js +1 -1
- package/esm2015/date-range/sd-angular-core-date-range.js +1 -1
- package/esm2015/date-time/sd-angular-core-date-time.js +1 -1
- package/esm2015/db/sd-angular-core-db.js +1 -1
- package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js +1 -1
- package/esm2015/editor/sd-angular-core-editor.js +1 -1
- package/esm2015/excel/sd-angular-core-excel.js +1 -1
- package/esm2015/export/sd-angular-core-export.js +1 -1
- package/esm2015/filter/sd-angular-core-filter.js +1 -1
- package/esm2015/form/sd-angular-core-form.js +1 -1
- package/esm2015/grid/sd-angular-core-grid.js +1 -1
- package/esm2015/grid-material/sd-angular-core-grid-material.js +1 -1
- package/esm2015/grid-material/src/lib/grid-material.component.js +44 -40
- package/esm2015/group/sd-angular-core-group.js +1 -1
- package/esm2015/header-title/sd-angular-core-header-title.js +1 -1
- package/esm2015/image-preview/sd-angular-core-image-preview.js +1 -1
- package/esm2015/input/sd-angular-core-input.js +1 -1
- package/esm2015/input-currency/sd-angular-core-input-currency.js +1 -1
- package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js +1 -1
- package/esm2015/input-number/sd-angular-core-input-number.js +1 -1
- package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js +1 -1
- package/esm2015/json-editor/sd-angular-core-json-editor.js +1 -1
- package/esm2015/konva/sd-angular-core-konva.js +1 -1
- package/esm2015/label/sd-angular-core-label.js +1 -1
- package/esm2015/loading/sd-angular-core-loading.js +1 -1
- package/esm2015/modal/sd-angular-core-modal.js +1 -1
- package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +1 -1
- package/esm2015/notify/sd-angular-core-notify.js +1 -1
- package/esm2015/popover/sd-angular-core-popover.js +1 -1
- package/esm2015/quick-action/sd-angular-core-quick-action.js +1 -1
- package/esm2015/radio/sd-angular-core-radio.js +1 -1
- package/esm2015/select/sd-angular-core-select.js +1 -1
- package/esm2015/select-badge/sd-angular-core-select-badge.js +1 -1
- package/esm2015/select-editor/sd-angular-core-select-editor.js +1 -1
- package/esm2015/service/sd-angular-core-service.js +1 -1
- package/esm2015/setting/sd-angular-core-setting.js +1 -1
- package/esm2015/side-drawer/sd-angular-core-side-drawer.js +1 -1
- package/esm2015/switch/sd-angular-core-switch.js +1 -1
- package/esm2015/tab-router/sd-angular-core-tab-router.js +1 -1
- package/esm2015/textarea/sd-angular-core-textarea.js +1 -1
- package/esm2015/time/sd-angular-core-time.js +1 -1
- package/esm2015/timeline/sd-angular-core-timeline.js +1 -1
- package/esm2015/translate/sd-angular-core-translate.js +1 -1
- package/esm2015/upload-excel/sd-angular-core-upload-excel.js +1 -1
- package/esm2015/upload-file/sd-angular-core-upload-file.js +1 -1
- package/esm2015/utility/sd-angular-core-utility.js +1 -1
- package/esm2015/view/sd-angular-core-view.js +1 -1
- package/excel/package.json +1 -12
- package/excel/sd-angular-core-excel.d.ts +0 -2
- package/export/package.json +1 -12
- package/export/sd-angular-core-export.d.ts +0 -2
- package/fesm2015/sd-angular-core-api.js +1 -2
- package/fesm2015/sd-angular-core-api.js.map +1 -1
- package/fesm2015/sd-angular-core-autocomplete.js +1 -2
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-badge.js +1 -2
- package/fesm2015/sd-angular-core-badge.js.map +1 -1
- package/fesm2015/sd-angular-core-button.js +1 -2
- package/fesm2015/sd-angular-core-button.js.map +1 -1
- package/fesm2015/sd-angular-core-cache.js +1 -2
- package/fesm2015/sd-angular-core-cache.js.map +1 -1
- package/fesm2015/sd-angular-core-chart.js +1 -2
- package/fesm2015/sd-angular-core-chart.js.map +1 -1
- package/fesm2015/sd-angular-core-checkbox.js +1 -2
- package/fesm2015/sd-angular-core-checkbox.js.map +1 -1
- package/fesm2015/sd-angular-core-chip.js +1 -2
- package/fesm2015/sd-angular-core-chip.js.map +1 -1
- package/fesm2015/sd-angular-core-comment.js +1 -2
- package/fesm2015/sd-angular-core-comment.js.map +1 -1
- package/fesm2015/sd-angular-core-common.js +1 -2
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/fesm2015/sd-angular-core-confirm.js +1 -2
- package/fesm2015/sd-angular-core-confirm.js.map +1 -1
- package/fesm2015/sd-angular-core-date-month.js +1 -2
- package/fesm2015/sd-angular-core-date-month.js.map +1 -1
- package/fesm2015/sd-angular-core-date-range.js +1 -2
- package/fesm2015/sd-angular-core-date-range.js.map +1 -1
- package/fesm2015/sd-angular-core-date-time.js +1 -2
- package/fesm2015/sd-angular-core-date-time.js.map +1 -1
- package/fesm2015/sd-angular-core-db.js +1 -2
- package/fesm2015/sd-angular-core-db.js.map +1 -1
- package/fesm2015/sd-angular-core-dynamic-report.js +1 -2
- package/fesm2015/sd-angular-core-dynamic-report.js.map +1 -1
- package/fesm2015/sd-angular-core-editor.js +1 -2
- package/fesm2015/sd-angular-core-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-excel.js +1 -2
- package/fesm2015/sd-angular-core-excel.js.map +1 -1
- package/fesm2015/sd-angular-core-export.js +1 -2
- package/fesm2015/sd-angular-core-export.js.map +1 -1
- package/fesm2015/sd-angular-core-filter.js +1 -2
- package/fesm2015/sd-angular-core-filter.js.map +1 -1
- package/fesm2015/sd-angular-core-form.js +1 -2
- package/fesm2015/sd-angular-core-form.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +44 -41
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-grid.js +1 -2
- package/fesm2015/sd-angular-core-grid.js.map +1 -1
- package/fesm2015/sd-angular-core-group.js +1 -2
- package/fesm2015/sd-angular-core-group.js.map +1 -1
- package/fesm2015/sd-angular-core-header-title.js +1 -2
- package/fesm2015/sd-angular-core-header-title.js.map +1 -1
- package/fesm2015/sd-angular-core-image-preview.js +1 -2
- package/fesm2015/sd-angular-core-image-preview.js.map +1 -1
- package/fesm2015/sd-angular-core-input-currency.js +1 -2
- package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
- package/fesm2015/sd-angular-core-input-dropdown.js +1 -2
- package/fesm2015/sd-angular-core-input-dropdown.js.map +1 -1
- package/fesm2015/sd-angular-core-input-number.js +1 -2
- package/fesm2015/sd-angular-core-input-number.js.map +1 -1
- package/fesm2015/sd-angular-core-input-upload-file.js +1 -2
- package/fesm2015/sd-angular-core-input-upload-file.js.map +1 -1
- package/fesm2015/sd-angular-core-input.js +1 -2
- package/fesm2015/sd-angular-core-input.js.map +1 -1
- package/fesm2015/sd-angular-core-json-editor.js +1 -2
- package/fesm2015/sd-angular-core-json-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-konva.js +1 -2
- package/fesm2015/sd-angular-core-konva.js.map +1 -1
- package/fesm2015/sd-angular-core-label.js +1 -2
- package/fesm2015/sd-angular-core-label.js.map +1 -1
- package/fesm2015/sd-angular-core-loading.js +1 -2
- package/fesm2015/sd-angular-core-loading.js.map +1 -1
- package/fesm2015/sd-angular-core-modal-resizable.js +1 -2
- package/fesm2015/sd-angular-core-modal-resizable.js.map +1 -1
- package/fesm2015/sd-angular-core-modal.js +1 -2
- package/fesm2015/sd-angular-core-modal.js.map +1 -1
- package/fesm2015/sd-angular-core-notify.js +1 -2
- package/fesm2015/sd-angular-core-notify.js.map +1 -1
- package/fesm2015/sd-angular-core-popover.js +1 -2
- package/fesm2015/sd-angular-core-popover.js.map +1 -1
- package/fesm2015/sd-angular-core-quick-action.js +1 -2
- package/fesm2015/sd-angular-core-quick-action.js.map +1 -1
- package/fesm2015/sd-angular-core-radio.js +1 -2
- package/fesm2015/sd-angular-core-radio.js.map +1 -1
- package/fesm2015/sd-angular-core-select-badge.js +1 -2
- package/fesm2015/sd-angular-core-select-badge.js.map +1 -1
- package/fesm2015/sd-angular-core-select-editor.js +1 -2
- package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +1 -2
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core-service.js +1 -2
- package/fesm2015/sd-angular-core-service.js.map +1 -1
- package/fesm2015/sd-angular-core-setting.js +1 -2
- package/fesm2015/sd-angular-core-setting.js.map +1 -1
- package/fesm2015/sd-angular-core-side-drawer.js +1 -2
- package/fesm2015/sd-angular-core-side-drawer.js.map +1 -1
- package/fesm2015/sd-angular-core-switch.js +1 -2
- package/fesm2015/sd-angular-core-switch.js.map +1 -1
- package/fesm2015/sd-angular-core-tab-router.js +1 -2
- package/fesm2015/sd-angular-core-tab-router.js.map +1 -1
- package/fesm2015/sd-angular-core-textarea.js +1 -2
- package/fesm2015/sd-angular-core-textarea.js.map +1 -1
- package/fesm2015/sd-angular-core-time.js +1 -2
- package/fesm2015/sd-angular-core-time.js.map +1 -1
- package/fesm2015/sd-angular-core-timeline.js +1 -2
- package/fesm2015/sd-angular-core-timeline.js.map +1 -1
- package/fesm2015/sd-angular-core-translate.js +1 -2
- package/fesm2015/sd-angular-core-translate.js.map +1 -1
- package/fesm2015/sd-angular-core-upload-excel.js +1 -2
- package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
- package/fesm2015/sd-angular-core-upload-file.js +1 -2
- package/fesm2015/sd-angular-core-upload-file.js.map +1 -1
- package/fesm2015/sd-angular-core-utility.js +1 -2
- package/fesm2015/sd-angular-core-utility.js.map +1 -1
- package/fesm2015/sd-angular-core-view.js +1 -2
- package/fesm2015/sd-angular-core-view.js.map +1 -1
- package/filter/package.json +1 -12
- package/filter/sd-angular-core-filter.d.ts +0 -2
- package/form/package.json +1 -12
- package/form/sd-angular-core-form.d.ts +0 -2
- package/grid/package.json +1 -12
- package/grid/sd-angular-core-grid.d.ts +0 -2
- package/grid-material/package.json +1 -12
- package/grid-material/sd-angular-core-grid-material.d.ts +0 -2
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/group/package.json +1 -12
- package/group/sd-angular-core-group.d.ts +0 -2
- package/header-title/package.json +1 -12
- package/header-title/sd-angular-core-header-title.d.ts +0 -2
- package/image-preview/package.json +1 -12
- package/image-preview/sd-angular-core-image-preview.d.ts +0 -2
- package/input/package.json +1 -12
- package/input/sd-angular-core-input.d.ts +0 -2
- package/input-currency/package.json +1 -12
- package/input-currency/sd-angular-core-input-currency.d.ts +0 -2
- package/input-dropdown/package.json +1 -12
- package/input-dropdown/sd-angular-core-input-dropdown.d.ts +0 -2
- package/input-number/package.json +1 -12
- package/input-number/sd-angular-core-input-number.d.ts +0 -2
- package/input-upload-file/package.json +1 -12
- package/input-upload-file/sd-angular-core-input-upload-file.d.ts +0 -2
- package/json-editor/package.json +1 -12
- package/json-editor/sd-angular-core-json-editor.d.ts +0 -2
- package/konva/package.json +1 -12
- package/konva/sd-angular-core-konva.d.ts +0 -2
- package/label/package.json +1 -12
- package/label/sd-angular-core-label.d.ts +0 -2
- package/loading/package.json +1 -12
- package/loading/sd-angular-core-loading.d.ts +0 -2
- package/modal/package.json +1 -12
- package/modal/sd-angular-core-modal.d.ts +0 -2
- package/modal-resizable/package.json +1 -12
- package/modal-resizable/sd-angular-core-modal-resizable.d.ts +0 -2
- package/notify/package.json +1 -12
- package/notify/sd-angular-core-notify.d.ts +0 -2
- package/package.json +1 -1
- package/popover/package.json +1 -12
- package/popover/sd-angular-core-popover.d.ts +0 -2
- package/quick-action/package.json +1 -12
- package/quick-action/sd-angular-core-quick-action.d.ts +0 -2
- package/radio/package.json +1 -12
- package/radio/sd-angular-core-radio.d.ts +0 -2
- package/sd-angular-core-1.3.1.tgz +0 -0
- package/select/package.json +1 -12
- package/select/sd-angular-core-select.d.ts +0 -2
- package/select-badge/package.json +1 -12
- package/select-badge/sd-angular-core-select-badge.d.ts +0 -2
- package/select-editor/package.json +1 -12
- package/select-editor/sd-angular-core-select-editor.d.ts +0 -2
- package/service/package.json +1 -12
- package/service/sd-angular-core-service.d.ts +0 -2
- package/setting/package.json +1 -12
- package/setting/sd-angular-core-setting.d.ts +0 -2
- package/side-drawer/package.json +1 -12
- package/side-drawer/sd-angular-core-side-drawer.d.ts +0 -2
- package/switch/package.json +1 -12
- package/switch/sd-angular-core-switch.d.ts +0 -2
- package/tab-router/package.json +1 -12
- package/tab-router/sd-angular-core-tab-router.d.ts +0 -2
- package/textarea/package.json +1 -12
- package/textarea/sd-angular-core-textarea.d.ts +0 -2
- package/time/package.json +1 -12
- package/time/sd-angular-core-time.d.ts +0 -2
- package/timeline/package.json +1 -12
- package/timeline/sd-angular-core-timeline.d.ts +0 -2
- package/translate/package.json +1 -12
- package/translate/sd-angular-core-translate.d.ts +0 -2
- package/upload-excel/package.json +1 -12
- package/upload-excel/sd-angular-core-upload-excel.d.ts +0 -2
- package/upload-file/package.json +1 -12
- package/upload-file/sd-angular-core-upload-file.d.ts +0 -2
- package/utility/package.json +1 -12
- package/utility/sd-angular-core-utility.d.ts +0 -2
- package/view/package.json +1 -12
- package/view/sd-angular-core-view.d.ts +0 -2
- package/api/sd-angular-core-api.d.ts.__ivy_ngcc_bak +0 -4
- package/api/sd-angular-core-api.d.ts.map +0 -1
- package/autocomplete/sd-angular-core-autocomplete.d.ts.__ivy_ngcc_bak +0 -4
- package/autocomplete/sd-angular-core-autocomplete.d.ts.map +0 -1
- package/badge/sd-angular-core-badge.d.ts.__ivy_ngcc_bak +0 -4
- package/badge/sd-angular-core-badge.d.ts.map +0 -1
- package/bundles/sd-angular-core-api.umd.js.__ivy_ngcc_bak +0 -876
- package/bundles/sd-angular-core-api.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-autocomplete.umd.js.__ivy_ngcc_bak +0 -791
- package/bundles/sd-angular-core-autocomplete.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-badge.umd.js.__ivy_ngcc_bak +0 -89
- package/bundles/sd-angular-core-badge.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-button.umd.js.__ivy_ngcc_bak +0 -447
- package/bundles/sd-angular-core-button.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-cache.umd.js.__ivy_ngcc_bak +0 -623
- package/bundles/sd-angular-core-cache.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-chart.umd.js.__ivy_ngcc_bak +0 -1106
- package/bundles/sd-angular-core-chart.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-checkbox.umd.js.__ivy_ngcc_bak +0 -461
- package/bundles/sd-angular-core-checkbox.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-chip.umd.js.__ivy_ngcc_bak +0 -1051
- package/bundles/sd-angular-core-chip.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-comment.umd.js.__ivy_ngcc_bak +0 -456
- package/bundles/sd-angular-core-comment.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-common.umd.js.__ivy_ngcc_bak +0 -962
- package/bundles/sd-angular-core-common.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-confirm.umd.js.__ivy_ngcc_bak +0 -159
- package/bundles/sd-angular-core-confirm.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-date-month.umd.js.__ivy_ngcc_bak +0 -650
- package/bundles/sd-angular-core-date-month.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-date-range.umd.js.__ivy_ngcc_bak +0 -660
- package/bundles/sd-angular-core-date-range.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-date-time.umd.js.__ivy_ngcc_bak +0 -734
- package/bundles/sd-angular-core-date-time.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-db.umd.js.__ivy_ngcc_bak +0 -475
- package/bundles/sd-angular-core-db.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-dynamic-report.umd.js.__ivy_ngcc_bak +0 -96
- package/bundles/sd-angular-core-dynamic-report.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-editor.umd.js.__ivy_ngcc_bak +0 -943
- package/bundles/sd-angular-core-editor.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-excel.umd.js.__ivy_ngcc_bak +0 -500
- package/bundles/sd-angular-core-excel.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-export.umd.js.__ivy_ngcc_bak +0 -712
- package/bundles/sd-angular-core-export.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-filter.umd.js.__ivy_ngcc_bak +0 -703
- package/bundles/sd-angular-core-filter.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-form.umd.js.__ivy_ngcc_bak +0 -88
- package/bundles/sd-angular-core-form.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-grid-material.umd.js.__ivy_ngcc_bak +0 -5029
- package/bundles/sd-angular-core-grid-material.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-grid.umd.js.__ivy_ngcc_bak +0 -5125
- package/bundles/sd-angular-core-grid.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-group.umd.js.__ivy_ngcc_bak +0 -93
- package/bundles/sd-angular-core-group.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-header-title.umd.js.__ivy_ngcc_bak +0 -56
- package/bundles/sd-angular-core-header-title.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-image-preview.umd.js.__ivy_ngcc_bak +0 -121
- package/bundles/sd-angular-core-image-preview.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-input-currency.umd.js.__ivy_ngcc_bak +0 -737
- package/bundles/sd-angular-core-input-currency.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-input-dropdown.umd.js.__ivy_ngcc_bak +0 -634
- package/bundles/sd-angular-core-input-dropdown.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-input-number.umd.js.__ivy_ngcc_bak +0 -792
- package/bundles/sd-angular-core-input-number.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-input-upload-file.umd.js.__ivy_ngcc_bak +0 -648
- package/bundles/sd-angular-core-input-upload-file.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-input.umd.js.__ivy_ngcc_bak +0 -798
- package/bundles/sd-angular-core-input.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-json-editor.umd.js.__ivy_ngcc_bak +0 -523
- package/bundles/sd-angular-core-json-editor.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-konva.umd.js.__ivy_ngcc_bak +0 -605
- package/bundles/sd-angular-core-konva.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-label.umd.js.__ivy_ngcc_bak +0 -60
- package/bundles/sd-angular-core-label.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-loading.umd.js.__ivy_ngcc_bak +0 -413
- package/bundles/sd-angular-core-loading.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-modal-resizable.umd.js.__ivy_ngcc_bak +0 -487
- package/bundles/sd-angular-core-modal-resizable.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-modal.umd.js.__ivy_ngcc_bak +0 -307
- package/bundles/sd-angular-core-modal.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-notify.umd.js.__ivy_ngcc_bak +0 -719
- package/bundles/sd-angular-core-notify.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-popover.umd.js.__ivy_ngcc_bak +0 -752
- package/bundles/sd-angular-core-popover.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-quick-action.umd.js.__ivy_ngcc_bak +0 -66
- package/bundles/sd-angular-core-quick-action.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-radio.umd.js.__ivy_ngcc_bak +0 -535
- package/bundles/sd-angular-core-radio.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-select-badge.umd.js.__ivy_ngcc_bak +0 -486
- package/bundles/sd-angular-core-select-badge.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-select-editor.umd.js.__ivy_ngcc_bak +0 -431
- package/bundles/sd-angular-core-select-editor.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-select.umd.js.__ivy_ngcc_bak +0 -921
- package/bundles/sd-angular-core-select.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-service.umd.js.__ivy_ngcc_bak +0 -42
- package/bundles/sd-angular-core-service.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-setting.umd.js.__ivy_ngcc_bak +0 -664
- package/bundles/sd-angular-core-setting.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-side-drawer.umd.js.__ivy_ngcc_bak +0 -438
- package/bundles/sd-angular-core-side-drawer.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-switch.umd.js.__ivy_ngcc_bak +0 -454
- package/bundles/sd-angular-core-switch.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-tab-router.umd.js.__ivy_ngcc_bak +0 -941
- package/bundles/sd-angular-core-tab-router.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-textarea.umd.js.__ivy_ngcc_bak +0 -642
- package/bundles/sd-angular-core-textarea.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-time.umd.js.__ivy_ngcc_bak +0 -497
- package/bundles/sd-angular-core-time.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-timeline.umd.js.__ivy_ngcc_bak +0 -102
- package/bundles/sd-angular-core-timeline.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-translate.umd.js.__ivy_ngcc_bak +0 -119
- package/bundles/sd-angular-core-translate.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-upload-excel.umd.js.__ivy_ngcc_bak +0 -1114
- package/bundles/sd-angular-core-upload-excel.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-upload-file.umd.js.__ivy_ngcc_bak +0 -880
- package/bundles/sd-angular-core-upload-file.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-utility.umd.js.__ivy_ngcc_bak +0 -739
- package/bundles/sd-angular-core-utility.umd.js.map.__ivy_ngcc_bak +0 -1
- package/bundles/sd-angular-core-view.umd.js.__ivy_ngcc_bak +0 -32
- package/bundles/sd-angular-core-view.umd.js.map.__ivy_ngcc_bak +0 -1
- package/button/sd-angular-core-button.d.ts.__ivy_ngcc_bak +0 -4
- package/button/sd-angular-core-button.d.ts.map +0 -1
- package/cache/sd-angular-core-cache.d.ts.__ivy_ngcc_bak +0 -4
- package/cache/sd-angular-core-cache.d.ts.map +0 -1
- package/chart/sd-angular-core-chart.d.ts.__ivy_ngcc_bak +0 -4
- package/chart/sd-angular-core-chart.d.ts.map +0 -1
- package/checkbox/sd-angular-core-checkbox.d.ts.__ivy_ngcc_bak +0 -5
- package/checkbox/sd-angular-core-checkbox.d.ts.map +0 -1
- package/chip/sd-angular-core-chip.d.ts.__ivy_ngcc_bak +0 -5
- package/chip/sd-angular-core-chip.d.ts.map +0 -1
- package/comment/sd-angular-core-comment.d.ts.__ivy_ngcc_bak +0 -4
- package/comment/sd-angular-core-comment.d.ts.map +0 -1
- package/common/sd-angular-core-common.d.ts.__ivy_ngcc_bak +0 -4
- package/common/sd-angular-core-common.d.ts.map +0 -1
- package/confirm/sd-angular-core-confirm.d.ts.__ivy_ngcc_bak +0 -4
- package/confirm/sd-angular-core-confirm.d.ts.map +0 -1
- package/date-month/sd-angular-core-date-month.d.ts.__ivy_ngcc_bak +0 -5
- package/date-month/sd-angular-core-date-month.d.ts.map +0 -1
- package/date-range/sd-angular-core-date-range.d.ts.__ivy_ngcc_bak +0 -4
- package/date-range/sd-angular-core-date-range.d.ts.map +0 -1
- package/date-time/sd-angular-core-date-time.d.ts.__ivy_ngcc_bak +0 -4
- package/date-time/sd-angular-core-date-time.d.ts.map +0 -1
- package/db/sd-angular-core-db.d.ts.__ivy_ngcc_bak +0 -4
- package/db/sd-angular-core-db.d.ts.map +0 -1
- package/dynamic-report/sd-angular-core-dynamic-report.d.ts.__ivy_ngcc_bak +0 -4
- package/dynamic-report/sd-angular-core-dynamic-report.d.ts.map +0 -1
- package/editor/sd-angular-core-editor.d.ts.__ivy_ngcc_bak +0 -4
- package/editor/sd-angular-core-editor.d.ts.map +0 -1
- package/esm2015/api/sd-angular-core-api.js.__ivy_ngcc_bak +0 -5
- package/esm2015/autocomplete/sd-angular-core-autocomplete.js.__ivy_ngcc_bak +0 -5
- package/esm2015/badge/sd-angular-core-badge.js.__ivy_ngcc_bak +0 -5
- package/esm2015/button/sd-angular-core-button.js.__ivy_ngcc_bak +0 -5
- package/esm2015/cache/sd-angular-core-cache.js.__ivy_ngcc_bak +0 -5
- package/esm2015/chart/sd-angular-core-chart.js.__ivy_ngcc_bak +0 -5
- package/esm2015/checkbox/sd-angular-core-checkbox.js.__ivy_ngcc_bak +0 -6
- package/esm2015/chip/sd-angular-core-chip.js.__ivy_ngcc_bak +0 -6
- package/esm2015/comment/sd-angular-core-comment.js.__ivy_ngcc_bak +0 -5
- package/esm2015/common/sd-angular-core-common.js.__ivy_ngcc_bak +0 -5
- package/esm2015/confirm/sd-angular-core-confirm.js.__ivy_ngcc_bak +0 -5
- package/esm2015/date-month/sd-angular-core-date-month.js.__ivy_ngcc_bak +0 -6
- package/esm2015/date-range/sd-angular-core-date-range.js.__ivy_ngcc_bak +0 -5
- package/esm2015/date-time/sd-angular-core-date-time.js.__ivy_ngcc_bak +0 -5
- package/esm2015/db/sd-angular-core-db.js.__ivy_ngcc_bak +0 -5
- package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js.__ivy_ngcc_bak +0 -5
- package/esm2015/editor/sd-angular-core-editor.js.__ivy_ngcc_bak +0 -5
- package/esm2015/excel/sd-angular-core-excel.js.__ivy_ngcc_bak +0 -5
- package/esm2015/export/sd-angular-core-export.js.__ivy_ngcc_bak +0 -5
- package/esm2015/filter/sd-angular-core-filter.js.__ivy_ngcc_bak +0 -8
- package/esm2015/form/sd-angular-core-form.js.__ivy_ngcc_bak +0 -5
- package/esm2015/grid/sd-angular-core-grid.js.__ivy_ngcc_bak +0 -5
- package/esm2015/grid-material/sd-angular-core-grid-material.js.__ivy_ngcc_bak +0 -47
- package/esm2015/group/sd-angular-core-group.js.__ivy_ngcc_bak +0 -6
- package/esm2015/header-title/sd-angular-core-header-title.js.__ivy_ngcc_bak +0 -6
- package/esm2015/image-preview/sd-angular-core-image-preview.js.__ivy_ngcc_bak +0 -7
- package/esm2015/input/sd-angular-core-input.js.__ivy_ngcc_bak +0 -6
- package/esm2015/input-currency/sd-angular-core-input-currency.js.__ivy_ngcc_bak +0 -5
- package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js.__ivy_ngcc_bak +0 -5
- package/esm2015/input-number/sd-angular-core-input-number.js.__ivy_ngcc_bak +0 -5
- package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js.__ivy_ngcc_bak +0 -5
- package/esm2015/json-editor/sd-angular-core-json-editor.js.__ivy_ngcc_bak +0 -5
- package/esm2015/konva/sd-angular-core-konva.js.__ivy_ngcc_bak +0 -5
- package/esm2015/label/sd-angular-core-label.js.__ivy_ngcc_bak +0 -6
- package/esm2015/loading/sd-angular-core-loading.js.__ivy_ngcc_bak +0 -5
- package/esm2015/modal/sd-angular-core-modal.js.__ivy_ngcc_bak +0 -5
- package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js.__ivy_ngcc_bak +0 -5
- package/esm2015/notify/sd-angular-core-notify.js.__ivy_ngcc_bak +0 -5
- package/esm2015/popover/sd-angular-core-popover.js.__ivy_ngcc_bak +0 -5
- package/esm2015/quick-action/sd-angular-core-quick-action.js.__ivy_ngcc_bak +0 -5
- package/esm2015/radio/sd-angular-core-radio.js.__ivy_ngcc_bak +0 -5
- package/esm2015/select/sd-angular-core-select.js.__ivy_ngcc_bak +0 -5
- package/esm2015/select-badge/sd-angular-core-select-badge.js.__ivy_ngcc_bak +0 -5
- package/esm2015/select-editor/sd-angular-core-select-editor.js.__ivy_ngcc_bak +0 -5
- package/esm2015/service/sd-angular-core-service.js.__ivy_ngcc_bak +0 -5
- package/esm2015/setting/sd-angular-core-setting.js.__ivy_ngcc_bak +0 -5
- package/esm2015/side-drawer/sd-angular-core-side-drawer.js.__ivy_ngcc_bak +0 -5
- package/esm2015/switch/sd-angular-core-switch.js.__ivy_ngcc_bak +0 -5
- package/esm2015/tab-router/sd-angular-core-tab-router.js.__ivy_ngcc_bak +0 -7
- package/esm2015/textarea/sd-angular-core-textarea.js.__ivy_ngcc_bak +0 -5
- package/esm2015/time/sd-angular-core-time.js.__ivy_ngcc_bak +0 -6
- package/esm2015/timeline/sd-angular-core-timeline.js.__ivy_ngcc_bak +0 -6
- package/esm2015/translate/sd-angular-core-translate.js.__ivy_ngcc_bak +0 -5
- package/esm2015/upload-excel/sd-angular-core-upload-excel.js.__ivy_ngcc_bak +0 -7
- package/esm2015/upload-file/sd-angular-core-upload-file.js.__ivy_ngcc_bak +0 -5
- package/esm2015/utility/sd-angular-core-utility.js.__ivy_ngcc_bak +0 -5
- package/esm2015/view/sd-angular-core-view.js.__ivy_ngcc_bak +0 -5
- package/excel/sd-angular-core-excel.d.ts.__ivy_ngcc_bak +0 -4
- package/excel/sd-angular-core-excel.d.ts.map +0 -1
- package/export/sd-angular-core-export.d.ts.__ivy_ngcc_bak +0 -4
- package/export/sd-angular-core-export.d.ts.map +0 -1
- package/fesm2015/sd-angular-core-api.js.__ivy_ngcc_bak +0 -496
- package/fesm2015/sd-angular-core-api.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-autocomplete.js.__ivy_ngcc_bak +0 -427
- package/fesm2015/sd-angular-core-autocomplete.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-badge.js.__ivy_ngcc_bak +0 -70
- package/fesm2015/sd-angular-core-badge.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-button.js.__ivy_ngcc_bak +0 -118
- package/fesm2015/sd-angular-core-button.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-cache.js.__ivy_ngcc_bak +0 -259
- package/fesm2015/sd-angular-core-cache.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-chart.js.__ivy_ngcc_bak +0 -727
- package/fesm2015/sd-angular-core-chart.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-checkbox.js.__ivy_ngcc_bak +0 -120
- package/fesm2015/sd-angular-core-checkbox.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-chip.js.__ivy_ngcc_bak +0 -632
- package/fesm2015/sd-angular-core-chip.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-comment.js.__ivy_ngcc_bak +0 -118
- package/fesm2015/sd-angular-core-comment.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-common.js.__ivy_ngcc_bak +0 -562
- package/fesm2015/sd-angular-core-common.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-confirm.js.__ivy_ngcc_bak +0 -154
- package/fesm2015/sd-angular-core-confirm.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-date-month.js.__ivy_ngcc_bak +0 -289
- package/fesm2015/sd-angular-core-date-month.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-date-range.js.__ivy_ngcc_bak +0 -297
- package/fesm2015/sd-angular-core-date-range.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-date-time.js.__ivy_ngcc_bak +0 -367
- package/fesm2015/sd-angular-core-date-time.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-db.js.__ivy_ngcc_bak +0 -102
- package/fesm2015/sd-angular-core-db.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-dynamic-report.js.__ivy_ngcc_bak +0 -82
- package/fesm2015/sd-angular-core-dynamic-report.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-editor.js.__ivy_ngcc_bak +0 -576
- package/fesm2015/sd-angular-core-editor.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-excel.js.__ivy_ngcc_bak +0 -100
- package/fesm2015/sd-angular-core-excel.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-export.js.__ivy_ngcc_bak +0 -272
- package/fesm2015/sd-angular-core-export.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-filter.js.__ivy_ngcc_bak +0 -323
- package/fesm2015/sd-angular-core-filter.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-form.js.__ivy_ngcc_bak +0 -104
- package/fesm2015/sd-angular-core-form.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-grid-material.js.__ivy_ngcc_bak +0 -3740
- package/fesm2015/sd-angular-core-grid-material.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-grid.js.__ivy_ngcc_bak +0 -3935
- package/fesm2015/sd-angular-core-grid.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-group.js.__ivy_ngcc_bak +0 -74
- package/fesm2015/sd-angular-core-group.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-header-title.js.__ivy_ngcc_bak +0 -45
- package/fesm2015/sd-angular-core-header-title.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-image-preview.js.__ivy_ngcc_bak +0 -107
- package/fesm2015/sd-angular-core-image-preview.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-input-currency.js.__ivy_ngcc_bak +0 -330
- package/fesm2015/sd-angular-core-input-currency.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-input-dropdown.js.__ivy_ngcc_bak +0 -268
- package/fesm2015/sd-angular-core-input-dropdown.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-input-number.js.__ivy_ngcc_bak +0 -415
- package/fesm2015/sd-angular-core-input-number.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-input-upload-file.js.__ivy_ngcc_bak +0 -274
- package/fesm2015/sd-angular-core-input-upload-file.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-input.js.__ivy_ngcc_bak +0 -398
- package/fesm2015/sd-angular-core-input.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-json-editor.js.__ivy_ngcc_bak +0 -180
- package/fesm2015/sd-angular-core-json-editor.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-konva.js.__ivy_ngcc_bak +0 -237
- package/fesm2015/sd-angular-core-konva.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-label.js.__ivy_ngcc_bak +0 -49
- package/fesm2015/sd-angular-core-label.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-loading.js.__ivy_ngcc_bak +0 -83
- package/fesm2015/sd-angular-core-loading.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-modal-resizable.js.__ivy_ngcc_bak +0 -161
- package/fesm2015/sd-angular-core-modal-resizable.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-modal.js.__ivy_ngcc_bak +0 -284
- package/fesm2015/sd-angular-core-modal.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-notify.js.__ivy_ngcc_bak +0 -402
- package/fesm2015/sd-angular-core-notify.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-popover.js.__ivy_ngcc_bak +0 -415
- package/fesm2015/sd-angular-core-popover.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-quick-action.js.__ivy_ngcc_bak +0 -53
- package/fesm2015/sd-angular-core-quick-action.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-radio.js.__ivy_ngcc_bak +0 -188
- package/fesm2015/sd-angular-core-radio.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-select-badge.js.__ivy_ngcc_bak +0 -156
- package/fesm2015/sd-angular-core-select-badge.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-select-editor.js.__ivy_ngcc_bak +0 -110
- package/fesm2015/sd-angular-core-select-editor.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-select.js.__ivy_ngcc_bak +0 -487
- package/fesm2015/sd-angular-core-select.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-service.js.__ivy_ngcc_bak +0 -36
- package/fesm2015/sd-angular-core-service.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-setting.js.__ivy_ngcc_bak +0 -290
- package/fesm2015/sd-angular-core-setting.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-side-drawer.js.__ivy_ngcc_bak +0 -115
- package/fesm2015/sd-angular-core-side-drawer.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-switch.js.__ivy_ngcc_bak +0 -116
- package/fesm2015/sd-angular-core-switch.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-tab-router.js.__ivy_ngcc_bak +0 -531
- package/fesm2015/sd-angular-core-tab-router.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-textarea.js.__ivy_ngcc_bak +0 -266
- package/fesm2015/sd-angular-core-textarea.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-time.js.__ivy_ngcc_bak +0 -143
- package/fesm2015/sd-angular-core-time.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-timeline.js.__ivy_ngcc_bak +0 -87
- package/fesm2015/sd-angular-core-timeline.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-translate.js.__ivy_ngcc_bak +0 -101
- package/fesm2015/sd-angular-core-translate.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-upload-excel.js.__ivy_ngcc_bak +0 -638
- package/fesm2015/sd-angular-core-upload-excel.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-upload-file.js.__ivy_ngcc_bak +0 -462
- package/fesm2015/sd-angular-core-upload-file.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-utility.js.__ivy_ngcc_bak +0 -384
- package/fesm2015/sd-angular-core-utility.js.map.__ivy_ngcc_bak +0 -1
- package/fesm2015/sd-angular-core-view.js.__ivy_ngcc_bak +0 -23
- package/fesm2015/sd-angular-core-view.js.map.__ivy_ngcc_bak +0 -1
- package/filter/sd-angular-core-filter.d.ts.__ivy_ngcc_bak +0 -7
- package/filter/sd-angular-core-filter.d.ts.map +0 -1
- package/form/sd-angular-core-form.d.ts.__ivy_ngcc_bak +0 -4
- package/form/sd-angular-core-form.d.ts.map +0 -1
- package/grid/sd-angular-core-grid.d.ts.__ivy_ngcc_bak +0 -4
- package/grid/sd-angular-core-grid.d.ts.map +0 -1
- package/grid-material/sd-angular-core-grid-material.d.ts.__ivy_ngcc_bak +0 -46
- package/grid-material/sd-angular-core-grid-material.d.ts.map +0 -1
- package/group/sd-angular-core-group.d.ts.__ivy_ngcc_bak +0 -5
- package/group/sd-angular-core-group.d.ts.map +0 -1
- package/header-title/sd-angular-core-header-title.d.ts.__ivy_ngcc_bak +0 -5
- package/header-title/sd-angular-core-header-title.d.ts.map +0 -1
- package/image-preview/sd-angular-core-image-preview.d.ts.__ivy_ngcc_bak +0 -6
- package/image-preview/sd-angular-core-image-preview.d.ts.map +0 -1
- package/input/sd-angular-core-input.d.ts.__ivy_ngcc_bak +0 -5
- package/input/sd-angular-core-input.d.ts.map +0 -1
- package/input-currency/sd-angular-core-input-currency.d.ts.__ivy_ngcc_bak +0 -4
- package/input-currency/sd-angular-core-input-currency.d.ts.map +0 -1
- package/input-dropdown/sd-angular-core-input-dropdown.d.ts.__ivy_ngcc_bak +0 -4
- package/input-dropdown/sd-angular-core-input-dropdown.d.ts.map +0 -1
- package/input-number/sd-angular-core-input-number.d.ts.__ivy_ngcc_bak +0 -4
- package/input-number/sd-angular-core-input-number.d.ts.map +0 -1
- package/input-upload-file/sd-angular-core-input-upload-file.d.ts.__ivy_ngcc_bak +0 -4
- package/input-upload-file/sd-angular-core-input-upload-file.d.ts.map +0 -1
- package/json-editor/sd-angular-core-json-editor.d.ts.__ivy_ngcc_bak +0 -4
- package/json-editor/sd-angular-core-json-editor.d.ts.map +0 -1
- package/konva/sd-angular-core-konva.d.ts.__ivy_ngcc_bak +0 -4
- package/konva/sd-angular-core-konva.d.ts.map +0 -1
- package/label/sd-angular-core-label.d.ts.__ivy_ngcc_bak +0 -5
- package/label/sd-angular-core-label.d.ts.map +0 -1
- package/loading/sd-angular-core-loading.d.ts.__ivy_ngcc_bak +0 -4
- package/loading/sd-angular-core-loading.d.ts.map +0 -1
- package/modal/sd-angular-core-modal.d.ts.__ivy_ngcc_bak +0 -4
- package/modal/sd-angular-core-modal.d.ts.map +0 -1
- package/modal-resizable/sd-angular-core-modal-resizable.d.ts.__ivy_ngcc_bak +0 -4
- package/modal-resizable/sd-angular-core-modal-resizable.d.ts.map +0 -1
- package/notify/sd-angular-core-notify.d.ts.__ivy_ngcc_bak +0 -4
- package/notify/sd-angular-core-notify.d.ts.map +0 -1
- package/popover/sd-angular-core-popover.d.ts.__ivy_ngcc_bak +0 -4
- package/popover/sd-angular-core-popover.d.ts.map +0 -1
- package/quick-action/sd-angular-core-quick-action.d.ts.__ivy_ngcc_bak +0 -4
- package/quick-action/sd-angular-core-quick-action.d.ts.map +0 -1
- package/radio/sd-angular-core-radio.d.ts.__ivy_ngcc_bak +0 -4
- package/radio/sd-angular-core-radio.d.ts.map +0 -1
- package/sd-angular-core-1.3.0.tgz +0 -0
- package/select/sd-angular-core-select.d.ts.__ivy_ngcc_bak +0 -4
- package/select/sd-angular-core-select.d.ts.map +0 -1
- package/select-badge/sd-angular-core-select-badge.d.ts.__ivy_ngcc_bak +0 -4
- package/select-badge/sd-angular-core-select-badge.d.ts.map +0 -1
- package/select-editor/sd-angular-core-select-editor.d.ts.__ivy_ngcc_bak +0 -4
- package/select-editor/sd-angular-core-select-editor.d.ts.map +0 -1
- package/service/sd-angular-core-service.d.ts.__ivy_ngcc_bak +0 -4
- package/service/sd-angular-core-service.d.ts.map +0 -1
- package/setting/sd-angular-core-setting.d.ts.__ivy_ngcc_bak +0 -4
- package/setting/sd-angular-core-setting.d.ts.map +0 -1
- package/side-drawer/sd-angular-core-side-drawer.d.ts.__ivy_ngcc_bak +0 -4
- package/side-drawer/sd-angular-core-side-drawer.d.ts.map +0 -1
- package/switch/sd-angular-core-switch.d.ts.__ivy_ngcc_bak +0 -4
- package/switch/sd-angular-core-switch.d.ts.map +0 -1
- package/tab-router/sd-angular-core-tab-router.d.ts.__ivy_ngcc_bak +0 -6
- package/tab-router/sd-angular-core-tab-router.d.ts.map +0 -1
- package/textarea/sd-angular-core-textarea.d.ts.__ivy_ngcc_bak +0 -4
- package/textarea/sd-angular-core-textarea.d.ts.map +0 -1
- package/time/sd-angular-core-time.d.ts.__ivy_ngcc_bak +0 -5
- package/time/sd-angular-core-time.d.ts.map +0 -1
- package/timeline/sd-angular-core-timeline.d.ts.__ivy_ngcc_bak +0 -5
- package/timeline/sd-angular-core-timeline.d.ts.map +0 -1
- package/translate/sd-angular-core-translate.d.ts.__ivy_ngcc_bak +0 -4
- package/translate/sd-angular-core-translate.d.ts.map +0 -1
- package/upload-excel/sd-angular-core-upload-excel.d.ts.__ivy_ngcc_bak +0 -6
- package/upload-excel/sd-angular-core-upload-excel.d.ts.map +0 -1
- package/upload-file/sd-angular-core-upload-file.d.ts.__ivy_ngcc_bak +0 -4
- package/upload-file/sd-angular-core-upload-file.d.ts.map +0 -1
- package/utility/sd-angular-core-utility.d.ts.__ivy_ngcc_bak +0 -4
- package/utility/sd-angular-core-utility.d.ts.map +0 -1
- package/view/sd-angular-core-view.d.ts.__ivy_ngcc_bak +0 -4
- package/view/sd-angular-core-view.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-grid.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/grid/src/lib/grid.model.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-handler.pipe.ts","../../../../projects/sd-core/grid/src/lib/models/grid-configuration.model.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-def.directive.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-footer-def.directive.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-editor-def.directive.ts","../../../../projects/sd-core/grid/src/lib/models/handler-local.ts","../../../../projects/sd-core/grid/src/lib/models/handler-dotnet.ts","../../../../projects/sd-core/grid/src/lib/grid.component.ts","../../../../projects/sd-core/grid/src/lib/pipes/dynamic-items.pipe.ts","../../../../projects/sd-core/grid/src/lib/components/grid-config/grid-config.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-edit/grid-desktop-column-edit.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-view/grid-desktop-column-view.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-mobile-item-view/grid-mobile-item-view.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-sub-information/grid-sub-information.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-children-view/grid-desktop-column-children-view.component.ts","../../../../projects/sd-core/grid/src/lib/pipes/cell-desktop-class-name.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/cell-mobile-class-name.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-command-filter.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-html-template.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-title.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-values.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-disabled.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-filter.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-hidden.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-icon.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-title.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-dynamic-item.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-sub-information-handler.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-validate.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/filter-mobile.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/mobile-command-filter.ts","../../../../projects/sd-core/grid/src/lib/pipes/mobile-view-html-template.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/value-transform.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-popup-visible.pipe.ts","../../../../projects/sd-core/grid/src/lib/directives/sub-information-header-def.directive.ts","../../../../projects/sd-core/grid/src/lib/components/grid-import-excel/grid-import-excel.component.ts","../../../../projects/sd-core/grid/src/lib/grid.module.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-filter/grid-popup-filter.model.ts","../../../../projects/sd-core/grid/sd-angular-core-grid.ts"],"names":["Pipe","InjectionToken","Directive","TemplateRef","Input","Injectable","DatePipe","QueryList","Subscription","$","startWith","merge","Component","ChangeDetectionStrategy","Inject","Optional","ChangeDetectorRef","DeviceDetectorService","SdTranslateService","SdLoadingService","SdApiService","SdExcelService","SdNotifyService","ViewChildren","ViewChild","ContentChildren","MatPaginator","EventEmitter","SdSettingService","Output","hash","ViewEncapsulation","SdUtilityService","DecimalPipe","SdUploadExcel","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatFormFieldModule","MatPaginatorModule","MatTableModule","MatMenuModule","MatIconModule","MatButtonModule","MatTooltipModule","MatProgressSpinnerModule","MatChipsModule","MatRadioModule","MatSlideToggleModule","MatSelectModule","MatCheckboxModule","SdUploadExcelModule","SdFormModule","SdServiceModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { IHandlerServer } from './models/handler';\r\nimport { Observable } from 'rxjs';\r\nimport { SdGridFilterInfo } from './models/filter-info.model';\r\n\r\nexport declare type SdGridOption =\r\n GridLocalOption |\r\n GridDotnetOption |\r\n GridCustomOption;\r\n\r\nexport declare type SdGridCommand = GridCommandNoChildren | GridCommandWithChildren;\r\n\r\nexport declare type SdGridColumn =\r\n GridColumnText |\r\n GridColumnColor |\r\n GridColumnNumber |\r\n GridColumnBool |\r\n GridColumnDate |\r\n GridColumnDateTime |\r\n GridColumnTime |\r\n GridColumnValues |\r\n GridColumnRadio |\r\n GridColumnImage |\r\n GridColumnChildren;\r\n\r\nexport declare type SdGridExternalFilter =\r\n GridExternalFilterText |\r\n GridExternalFilterDate |\r\n GridExternalFilterDateRange |\r\n GridExternalFilterDateRangeFull |\r\n GridExternalFilterNumber |\r\n GridExternalFilterNumberRange |\r\n GridExternalFilterValues |\r\n GridExternalFilterRadio |\r\n GridExternalFilterBool |\r\n GridExternalFilterCustom;\r\n\r\nexport const defaultGridOption: SdGridOption = {\r\n type: undefined,\r\n items: [],\r\n filter: {\r\n type: 'inline',\r\n disabled: false\r\n },\r\n sortable: true,\r\n paginate: {\r\n pageSize: 50,\r\n pageCount: 5\r\n },\r\n commands: [],\r\n columns: []\r\n};\r\n\r\nexport interface SdGridBaseOption {\r\n height?: string;\r\n key?: string;\r\n filter?: GridBaseOptionFilter;\r\n checkable?: boolean;\r\n sortable?: boolean;\r\n numberable?: boolean;\r\n editor?: {\r\n type?: 'focus' | 'inline' | 'popup',\r\n addable?: boolean;\r\n editable?: boolean;\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n limit?: number;\r\n onAdd?: (rowData: any) => void,\r\n onEdit?: (rowData: any) => void,\r\n onSave?: (rowData: any) => void | Promise<void>,\r\n validate?: (rowData: any) => string | Promise<string>\r\n };\r\n paginate?: {\r\n pageSize?: number,\r\n pageCount?: number\r\n };\r\n export?: GridBaseOptionExport;\r\n translate?: boolean;\r\n hideFooter?: boolean;\r\n hideReload?: boolean;\r\n commands?: SdGridCommand[];\r\n columns: SdGridColumn[];\r\n subInformation?: SubOption;\r\n mobileOrTablet?: {\r\n useGridView?: boolean;\r\n htmlTemplate?: (rowData: any, columns?: SdGridColumn[]) => string;\r\n };\r\n // events\r\n onClickRow?: (rowData: any) => void;\r\n onDblClickRow?: (rowData: any) => void;\r\n onCheck?: (items: any[], rowData?: any) => void;\r\n onImportExcel?: (items: any[]) => void;\r\n onReloadCompleted?: (items: any[]) => Promise<void> | void;\r\n}\r\n\r\nexport interface GridBaseOptionExport {\r\n disabled?: boolean;\r\n fileName?: string;\r\n validator?: (fileName: string) => string;\r\n items?: (filterInfo: SdGridFilterInfo) => Promise<any[]>;\r\n mapping?: (items: any[], fileName?: string) => any[] | Promise<any[]>;\r\n columns?: SdGridColumn[];\r\n bigExport?: boolean;\r\n sheets?: {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface GridBaseOptionFilter {\r\n type?: 'inline' | 'popup';\r\n columnInline?: 'outside';\r\n disabled?: boolean;\r\n customFilter?: any | (() => any);\r\n externalFilters?: SdGridExternalFilter[];\r\n quickFilterVisibility?: 'inline' | 'popup' | 'none';\r\n multiple?: boolean;\r\n}\r\n\r\ninterface GridLocalOption extends SdGridBaseOption {\r\n type: 'local';\r\n items: any[] | (() => any[] | Promise<any[]>);\r\n}\r\n\r\ninterface GridDotnetOption extends SdGridBaseOption {\r\n type: 'dotnet';\r\n method?: 'POST' | 'GET';\r\n url: string;\r\n handler?: {\r\n beforeRequest: (filterInfo: SdGridFilterInfo) => Promise<SdGridFilterInfo>;\r\n afterResponse: (items: any[], total: number) => Promise<{ items: any[], total: number }>;\r\n };\r\n}\r\n\r\ninterface GridCustomOption extends SdGridBaseOption {\r\n type: 'custom';\r\n url: string;\r\n method?: 'POST' | 'GET';\r\n handlerCustom?: IHandlerServer;\r\n}\r\n\r\ninterface GridCommandBase {\r\n title?: string | ((rowData?: any) => string);\r\n translate?: boolean;\r\n disabled?: boolean | ((rowData?: any) => boolean);\r\n hidden?: boolean | (() => boolean);\r\n hiddenByItem?: ((rowData: any) => boolean) | ((rowData: any) => Promise<boolean>);\r\n}\r\n\r\nexport interface GridCommandNoChildren extends GridCommandBase {\r\n icon: string | ((rowData?: any) => string);\r\n fontSet?: 'material-icons' |\r\n 'material-icons-outlined' |\r\n 'material-icons-outlined' |\r\n 'material-icons-round' |\r\n 'material-icons-sharp';\r\n color?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning';\r\n click?: (rowData?: any) => void;\r\n}\r\n\r\nexport interface GridCommandWithChildren extends GridCommandBase {\r\n icon?: string | ((rowData?: any) => string);\r\n children?: GridCommandNoChildren[];\r\n}\r\n\r\ninterface GridBaseColumn {\r\n field: string;\r\n title: string;\r\n translate?: boolean;\r\n description?: string;\r\n width?: string;\r\n fixed?: boolean;\r\n format?: string;\r\n hidden?: boolean | (() => boolean);\r\n htmlTemplate?: (value: any, rowData?: any, isMobileOrTablet?: boolean) => string;\r\n transform?: (value: any, rowData?: any) => string;\r\n badge?: ((rowData?: any, value?: any) => 'PRIMARY' | 'SECONDARY' | 'INFO' | 'SUCCESS' | 'WARNING' | 'DANGER' | 'LIGHT' | 'DARK');\r\n click?: (value: any, rowData?: any) => void | Promise<void>;\r\n ignoreImport?: boolean;\r\n sortable?: boolean;\r\n align?: 'left' | 'center' | 'right';\r\n filter?: {\r\n disabled?: boolean;\r\n priority?: 'low';\r\n };\r\n}\r\n\r\nexport interface EditorHandler {\r\n [column: string]: {\r\n visible?: boolean | 'create' | 'update',\r\n items?: any[] | Observable<any[]>\r\n };\r\n}\r\n\r\nexport interface GridItem {\r\n blinker?: any;\r\n originItem?: any;\r\n temporary?: any;\r\n isChecked?: boolean;\r\n editingStatus?: 'create' | 'update';\r\n editorHandler?: EditorHandler & {\r\n disabled?: boolean;\r\n errorMessage?: string;\r\n saving?: boolean;\r\n };\r\n subInformation?: {\r\n isOpened?: boolean;\r\n isLoaded?: boolean;\r\n isLoading?: boolean;\r\n subItems?: any[];\r\n };\r\n [key: string]: any;\r\n}\r\n\r\nexport interface ColumnCommand {\r\n icon: string | ((rowData?: any) => string);\r\n title?: string | ((rowData?: any) => string);\r\n click: (rowData: GridItem) => void | Promise<void>;\r\n hiddenByItem?: ((rowData: any) => boolean) | ((rowData: any) => Promise<boolean>);\r\n}\r\n\r\ninterface GridColumnText extends GridBaseColumn {\r\n type: 'string';\r\n commands?: ColumnCommand[];\r\n editor?: {\r\n autocomplete?: boolean,\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any, value?: any, selected?: any | any[]) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n item?: DynamicEditorItem,\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string\r\n };\r\n}\r\n\r\ninterface GridColumnColor extends GridBaseColumn {\r\n type: 'color';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string\r\n };\r\n}\r\n\r\ninterface GridColumnNumber extends GridBaseColumn {\r\n type: 'number';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: number\r\n };\r\n}\r\n\r\ninterface GridColumnBool extends GridBaseColumn {\r\n type: 'bool';\r\n // properties for bool type\r\n trueValue?: string;\r\n falseValue?: string;\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: boolean\r\n };\r\n}\r\n\r\ninterface GridColumnDate extends GridBaseColumn {\r\n type: 'date';\r\n timeDifferent?: 'second' | 'minute' | 'hour';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnDateTime extends GridBaseColumn {\r\n type: 'datetime';\r\n timeDifferent?: 'second' | 'minute' | 'hour' | 'day' | 'month';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnTime extends GridBaseColumn {\r\n type: 'time';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnValues extends GridBaseColumn {\r\n type: 'values';\r\n values: {\r\n value: string,\r\n text: string,\r\n icon?: string,\r\n color?: string,\r\n backgroundColor?: string\r\n }[];\r\n dictionary?: {\r\n [value: string]: {\r\n text: string,\r\n icon?: string,\r\n color?: string,\r\n backgroundColor?: string\r\n }\r\n };\r\n editor?: {\r\n autocomplete?: boolean,\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any, value?: any, selected?: any | any[]) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n item?: DynamicEditorItem,\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | number\r\n };\r\n}\r\n\r\ninterface GridColumnRadio extends GridBaseColumn {\r\n type: 'radio';\r\n values?: any[];\r\n valueField: string;\r\n displayField: string;\r\n editor?: {\r\n required?: boolean;\r\n values?: {\r\n value: string,\r\n text: string,\r\n }[];\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | number\r\n };\r\n}\r\n\r\ninterface GridColumnImage extends GridBaseColumn {\r\n type: 'image';\r\n display: {\r\n height: number,\r\n width: number\r\n };\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean)\r\n };\r\n}\r\n\r\nexport type GridColumnChild = (Exclude<SdGridColumn, GridColumnChildren>\r\n & { dynamicTitle?: (rowData: any) => string | Promise<string>, colSpan: 1 | 2 });\r\n\r\nexport interface GridColumnChildren extends GridBaseColumn {\r\n type: 'children';\r\n children: GridColumnChild[];\r\n}\r\n\r\ninterface GridBaseExternalFilter {\r\n field: string;\r\n priority?: 'low';\r\n disabled?: boolean;\r\n}\r\n\r\ninterface GridExternalFilterText extends GridBaseExternalFilter {\r\n type: 'string';\r\n title: string;\r\n default?: string;\r\n}\r\n\r\ninterface GridExternalFilterDate extends GridBaseExternalFilter {\r\n type: 'date';\r\n title: string;\r\n default?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterDateRange extends GridBaseExternalFilter {\r\n type: 'daterange';\r\n title: string;\r\n fromTitle: string;\r\n toTitle: string;\r\n enableTime?: boolean;\r\n minDate?: string | Date;\r\n maxDate?: string | Date;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterDateRangeFull extends GridBaseExternalFilter {\r\n type: 'daterangefull';\r\n title: string;\r\n enableTime?: boolean;\r\n minDate?: string | Date;\r\n maxDate?: string | Date;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterNumber extends GridBaseExternalFilter {\r\n type: 'number';\r\n title: string;\r\n default?: number;\r\n}\r\n\r\ninterface GridExternalFilterNumberRange extends GridBaseExternalFilter {\r\n type: 'numberrange';\r\n title: string;\r\n fromTitle: string;\r\n toTitle: string;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterValues extends GridBaseExternalFilter {\r\n type: 'values';\r\n title: string;\r\n values: any[] | ((searchText?: string) => Promise<any[]>);\r\n valueField: string;\r\n displayField: string;\r\n selection?: 'AUTOCOMPLETE' | 'MULTIPLE' | 'MULTIPLEAUTOCOMPLETE';\r\n default?: string;\r\n}\r\n\r\ninterface GridExternalFilterRadio extends GridBaseExternalFilter {\r\n type: 'radio';\r\n title: string;\r\n values: any[];\r\n valueField: string;\r\n displayField: string;\r\n}\r\n\r\ninterface GridExternalFilterBool extends GridBaseExternalFilter {\r\n type: 'bool';\r\n title: string;\r\n trueValue?: string;\r\n falseValue?: string;\r\n}\r\n\r\ninterface GridExternalFilterCustom extends GridBaseExternalFilter {\r\n type: 'custom';\r\n title: string;\r\n onLoad?: (externalFilter: any, valueKey?: string, displayKey?: string) => { valueKey?: string, displayKey?: string };\r\n onClick: (externalFilter: any, valueKey?: string, displayKey?: string) => void;\r\n}\r\n\r\n// subInformation\r\nexport type SubOption = SubInformationDisabledLazyLoading | SubInformationEnabledLazyLoading;\r\ninterface BaseSubInformation {\r\n height?: string;\r\n commands?: SdGridCommand[];\r\n columns: (SdGridColumn & { title: string | ((rowData: any) => string) })[];\r\n}\r\ninterface SubInformationDisabledLazyLoading extends BaseSubInformation {\r\n lazyLoading: false;\r\n field: string;\r\n}\r\ninterface SubInformationEnabledLazyLoading extends BaseSubInformation {\r\n lazyLoading: true;\r\n onLoad: (rowData: any) => Promise<any[]>;\r\n}\r\n\r\nexport interface DynamicEditorItem {\r\n value: string;\r\n display: string;\r\n items: any[] | ((rowData?: any, value?: any) => any[] | Promise<any[]>);\r\n dependOnField?: string;\r\n}\r\n\r\n\r\nexport interface MobileConfiguration {\r\n htmlTemplate: (rowData?: any, columns?: SdGridColumn[]) => string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, SdGridOption, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorHandler'\r\n})\r\nexport class EditorHandlerPipe implements PipeTransform {\r\n transform(value: any, item: GridItem, gridOption: SdGridOption): boolean {\r\n const visible = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n let isDisabled = false;\r\n\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (column.editor) {\r\n isDisabled = typeof (column.editor.disabled) === 'function' ? column.editor.disabled(item) : column.editor.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n if (typeof (gridOption.editor?.disabled) === 'function') {\r\n isDisabled = gridOption.editor.disabled(item);\r\n } else {\r\n isDisabled = gridOption.editor?.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n // Hiển thị editor nếu dòng đó:\r\n // Đang được edit: editingStatus\r\n return item.editingStatus\r\n // Được thiết lập alwayDisplay\r\n || column.editor?.alwayDisplay\r\n // Editable có thuộc tính type inline\r\n || gridOption.editor?.type === 'inline';\r\n };\r\n item.editorHandler = item.editorHandler || {};\r\n for (const column of gridOption.columns) {\r\n item.editorHandler.disabled = false;\r\n item.editorHandler[column.field] = {};\r\n if (typeof (gridOption.editor) === 'object') {\r\n if (typeof (gridOption.editor.disabled) === 'function') {\r\n item.editorHandler.disabled = gridOption.editor.disabled(item);\r\n } else {\r\n item.editorHandler.disabled = gridOption.editor.disabled;\r\n }\r\n } else {\r\n item.editorHandler.disabled = false;\r\n }\r\n\r\n if (item.editorHandler.disabled) {\r\n item.editorHandler[column.field].visible = false;\r\n } else {\r\n item.editorHandler[column.field].visible = visible(column);\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { IHandlerServer } from './handler';\r\n\r\nexport interface IGridConfiguration {\r\n filter?: {\r\n type?: 'inline' | 'popup',\r\n columnInline?: 'outside',\r\n quickFilterVisibility?: 'inline' | 'popup' | 'none'\r\n };\r\n style?: {\r\n bordered?: boolean;\r\n stripped?: boolean;\r\n };\r\n translate?: boolean;\r\n handlerCustom?: IHandlerServer;\r\n}\r\n\r\nexport const GRID_CONFIG = new InjectionToken<IGridConfiguration>('grid.configuration');\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellDef]'\r\n})\r\nexport class SdCellDefDirective {\r\n @Input() sdCellDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellFooterDef]'\r\n})\r\nexport class SdCellFooterDevDirective {\r\n @Input() sdCellFooterDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellEditorDef]'\r\n})\r\nexport class SdCellEditorDefDirective {\r\n @Input() sdCellEditorDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { SdGridFilterInfo } from '../models/filter-info.model';\r\nimport { IHandlerLocal } from './handler';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class HandlerLocal implements IHandlerLocal {\r\n constructor(private datePipe: DatePipe) { }\r\n filter = (localItems: any[], filterInfo: SdGridFilterInfo) => {\r\n const items = localItems.filter(item => {\r\n for (const column of filterInfo.columns) {\r\n const filterValue: string = (filterInfo.rawFilter[column.field] || '').toString().trim().toLowerCase();\r\n const columnValue: string = (item[column.field] || '').toString().trim().toLowerCase();\r\n if (filterValue) {\r\n if (!columnValue) {\r\n return false;\r\n }\r\n if (column.type === 'string') {\r\n if (columnValue.indexOf(filterValue) === -1) {\r\n return false;\r\n }\r\n } else if (column.type === 'values' || column.type === 'radio') {\r\n if (columnValue !== filterValue) {\r\n return false;\r\n }\r\n } else if (column.type === 'number') {\r\n const fValue = +filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '');\r\n const cValue = +columnValue;\r\n if (fValue || fValue === 0) {\r\n if (!cValue && cValue !== 0) {\r\n return false;\r\n }\r\n if (filterValue.indexOf('>=') > -1 && cValue < fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<=') > -1 && cValue > fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<') > -1 && cValue >= fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('>') > -1 && cValue <= fValue) {\r\n return false;\r\n } else if (cValue !== fValue) {\r\n return false;\r\n }\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterValue === '1' && columnValue !== '1' && columnValue !== 'true') {\r\n return false;\r\n } else if (filterValue === '0' && columnValue !== '0' && columnValue !== 'false') {\r\n return false;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n const date = this.datePipe.transform(filterValue, 'yyyy/MM/dd');\r\n const fromDate = new Date(date);\r\n const toDate = new Date(date);\r\n toDate.setDate(toDate.getDate() + 1);\r\n if (new Date(columnValue).getTime() < fromDate.getTime() || new Date(columnValue).getTime() >= toDate.getTime()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n // Sort\r\n if (filterInfo.orderBy && filterInfo.orderDirection) {\r\n const column = filterInfo.columns.find(e => e.field === filterInfo.orderBy);\r\n if (column) {\r\n const { type, field } = column;\r\n items.sort((current, next) => {\r\n if (type === 'number') {\r\n return (current[field] || 0) - (next[field] || 0);\r\n }\r\n if (type === 'date' || type === 'datetime' || type === 'time') {\r\n const d1 = new Date(current[field] || '').getTime();\r\n const d2 = new Date(current[field] || '').getTime();\r\n return d1 - d2;\r\n }\r\n const s1 = (current[field] || '').toString();\r\n const s2 = (next[field] || '').toString();\r\n if (s1 > s2) {\r\n return 1;\r\n }\r\n if (s1 < s2) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n if (filterInfo.orderDirection === 'DESC') {\r\n items.reverse();\r\n }\r\n }\r\n }\r\n return {\r\n items,\r\n total: items.length\r\n };\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { SdGridFilterInfo } from '../models/filter-info.model';\r\nimport { IHandlerServer } from './handler';\r\nimport { SdGridColumn, GridColumnChildren } from '../grid.model';\r\n\r\n@Injectable()\r\nexport class HandlerDotnet implements IHandlerServer {\r\n mapRequest = (filterInfo: SdGridFilterInfo) => {\r\n const result = {\r\n whereClause: '1>0',\r\n pageSize: filterInfo.pageSize,\r\n pageNumber: filterInfo.pageNumber,\r\n orderBy: filterInfo.orderBy,\r\n orderDirection: filterInfo.orderDirection,\r\n filter: {},\r\n externalFilter: {}\r\n };\r\n if (filterInfo.customFilter) {\r\n // Nếu custom filter là string\r\n if (typeof (filterInfo.customFilter) === 'string') {\r\n result.whereClause += ` AND ${filterInfo.customFilter}`;\r\n } else if (typeof (filterInfo.customFilter) === 'function') {\r\n result.whereClause += ` AND ${filterInfo.customFilter()}`;\r\n }\r\n }\r\n const executeColumnNoChildren = (column: Exclude<SdGridColumn, GridColumnChildren>) => {\r\n if (!filterInfo.rawFilter[column.field] && filterInfo.rawFilter[column.field] !== 0) {\r\n return;\r\n }\r\n result.filter[column.field] = filterInfo.rawFilter[column.field];\r\n if (column.type === 'string') {\r\n const filterValue: string = (filterInfo.rawFilter[column.field] ?? '').toString();\r\n if (this.#isGuid(filterValue)) {\r\n result.whereClause += ` AND ${column.field} = GUID(\"${filterInfo.rawFilter[column.field]}\")`;\r\n } else if (filterValue.startsWith('!=')) {\r\n result.whereClause += ` AND ${column.field} != \"${filterValue.substring(2, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('=')) {\r\n result.whereClause += ` AND ${column.field} = \"${filterValue.substring(1, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('%')) {\r\n result.whereClause += ` AND ${column.field}.EndsWith(\"${filterValue.substring(1, filterValue.length)}\")`;\r\n } else if (filterValue.endsWith('%')) {\r\n result.whereClause += ` AND ${column.field}.StartsWith(\"${filterValue.substring(0, filterValue.length - 1)}\")`;\r\n } else {\r\n result.whereClause += ` AND ${column.field}.Contains(\"${filterValue}\")`;\r\n }\r\n } else if (column.type === 'number') {\r\n const value = +(filterInfo.rawFilter[column.field].replace('>=', '').replace('<=', '').replace('>', '').replace('<', '').trim());\r\n if (filterInfo.rawFilter[column.field].indexOf('>=') > -1) {\r\n result.whereClause += ` AND ${column.field} >= ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('<=') > -1) {\r\n result.whereClause += ` AND ${column.field} <= ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('>') > -1) {\r\n result.whereClause += ` AND ${column.field} > ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('<') > -1) {\r\n result.whereClause += ` AND ${column.field} < ${value}`;\r\n } else {\r\n result.whereClause += ` AND ${column.field} = ${value}`;\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterInfo.rawFilter[column.field] === '0' || filterInfo.rawFilter[column.field] === '1') {\r\n result.whereClause += ` AND ${column.field} = ${filterInfo.rawFilter[column.field] === '1' ? 'true' : 'false'}`;\r\n }\r\n } else if (column.type === 'values') {\r\n if (filterInfo.rawFilter[column.field]) {\r\n if (this.#isGuid(filterInfo.rawFilter[column.field])) {\r\n result.whereClause += ` AND ${column.field} = GUID(\"${filterInfo.rawFilter[column.field]}\")`;\r\n } else if (typeof (filterInfo.rawFilter[column.field]) === 'string') {\r\n result.whereClause += ` AND ${column.field} = \"${filterInfo.rawFilter[column.field]}\"`;\r\n } else {\r\n result.whereClause += ` AND ${column.field} = ${filterInfo.rawFilter[column.field]}`;\r\n }\r\n }\r\n } else if (column.type === 'radio') {\r\n if (filterInfo.rawFilter[column.field]) {\r\n result.whereClause += ` AND ${column.field} = \"${filterInfo.rawFilter[column.field]}\"`;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n // \"DateTime(yyyy,mm,dd,HH,mm,ss)\"\r\n // generate fromDate, toDate\r\n let date = new Date(filterInfo.rawFilter[column.field]);\r\n\r\n // From Date\r\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\r\n result.whereClause += ` AND ${column.field} >= DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n\r\n // To Date\r\n date.setDate(date.getDate() + 1);\r\n result.whereClause += ` AND ${column.field} < DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n }\r\n };\r\n const executeColumnChildren = (columnChildren: GridColumnChildren) => {\r\n let flag = false;\r\n for (const column of columnChildren.children) {\r\n if (filterInfo.rawFilter[column.field] || filterInfo.rawFilter[column.field] === 0) {\r\n executeColumnNoChildren(column);\r\n flag = true;\r\n }\r\n }\r\n if (flag) {\r\n return;\r\n }\r\n if (!filterInfo.rawFilter[columnChildren.field]) {\r\n return;\r\n }\r\n result.filter[columnChildren.field] = filterInfo.rawFilter[columnChildren.field];\r\n let whereClause = '';\r\n const filterValue: string = (filterInfo.rawFilter[columnChildren.field] ?? '').toString().trim();\r\n for (const column of columnChildren.children) {\r\n if (column.type === 'string') {\r\n if (this.#isGuid(filterValue)) {\r\n whereClause += ` OR ${column.field} = GUID(\"${filterValue}\")`;\r\n } else if (filterValue.startsWith('!=')) {\r\n whereClause += ` OR ${column.field} != \"${filterValue.substring(2, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('=')) {\r\n whereClause += ` OR ${column.field} = \"${filterValue.substring(1, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('%')) {\r\n whereClause += ` OR ${column.field}.EndsWith(\"${filterValue.substring(1, filterValue.length)}\")`;\r\n } else if (filterValue.endsWith('%')) {\r\n whereClause += ` OR ${column.field}.StartsWith(\"${filterValue.substring(0, filterValue.length - 1)}\")`;\r\n } else {\r\n whereClause += ` OR ${column.field}.Contains(\"${filterValue}\")`;\r\n }\r\n } else if (column.type === 'number') {\r\n const value = +(filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '').trim());\r\n if (!Number.isNaN(value)) {\r\n if (filterValue.indexOf('>=') > -1) {\r\n whereClause += ` OR ${column.field} >= ${value}`;\r\n } else if (filterValue.indexOf('<=') > -1) {\r\n whereClause += ` OR ${column.field} <= ${value}`;\r\n } else if (filterValue.indexOf('>') > -1) {\r\n whereClause += ` OR ${column.field} > ${value}`;\r\n } else if (filterValue.indexOf('<') > -1) {\r\n whereClause += ` OR ${column.field} < ${value}`;\r\n } else {\r\n whereClause += ` OR ${column.field} = ${value}`;\r\n }\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterValue === '0' || filterValue === '1') {\r\n whereClause += ` OR ${column.field} = ${filterValue === '1' ? 'true' : 'false'}`;\r\n }\r\n } else if (column.type === 'values') {\r\n if (this.#isGuid(filterValue)) {\r\n whereClause += ` OR ${column.field} = GUID(\"${filterValue}\")`;\r\n } if (typeof (filterInfo.rawFilter[column.field]) === 'string') {\r\n whereClause += ` OR ${column.field} = \"${filterValue}\"`;\r\n } else {\r\n whereClause += ` OR ${column.field} = ${filterValue}`;\r\n }\r\n } else if (column.type === 'radio') {\r\n if (filterValue) {\r\n whereClause += ` OR ${column.field} = \"${filterValue}\"`;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n // \"DateTime(yyyy,mm,dd,HH,mm,ss)\"\r\n // generate fromDate, toDate\r\n if (Date.isDate(filterValue)) {\r\n let date = new Date(filterValue);\r\n\r\n // From Date\r\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\r\n whereClause += ` OR (${column.field} >= DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n\r\n // To Date\r\n date.setDate(date.getDate() + 1);\r\n whereClause += ` AND ${column.field} < DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()}))`;\r\n }\r\n }\r\n }\r\n if (whereClause.trim().startsWith('OR')) {\r\n whereClause = whereClause.trim().substr(2).trim();\r\n result.whereClause += ` AND(${whereClause})`;\r\n }\r\n };\r\n filterInfo.columns.forEach(column => {\r\n if (column.type !== 'children') {\r\n executeColumnNoChildren(column);\r\n } else {\r\n executeColumnChildren(column);\r\n }\r\n });\r\n filterInfo.externalFilters?.forEach(externalFilter => {\r\n const { field, type } = externalFilter;\r\n if (type === 'daterangefull') {\r\n result.externalFilter[field] = filterInfo.rawExternalFilter?.[field];\r\n if (result.externalFilter[field]?.from && result.externalFilter[field]?.to) {\r\n const fromDate = new Date(result.externalFilter[field]?.from);\r\n const toDate = Date.addDays(result.externalFilter[field]?.to, 1);\r\n // tslint:disable-next-line: max-line-length\r\n result.whereClause += ` AND ${field} >= DateTime(${fromDate.getFullYear()},${fromDate.getMonth() + 1},${fromDate.getDate()})`;\r\n result.whereClause += ` AND ${field} < DateTime(${toDate.getFullYear()},${toDate.getMonth() + 1},${toDate.getDate()})`;\r\n }\r\n return;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n mapResponse = (res: any) => {\r\n const { items, total } = res;\r\n return {\r\n items,\r\n total\r\n };\r\n }\r\n\r\n #isGuid = (key: string): boolean => {\r\n const regex = /[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}/i;\r\n return regex.test(key);\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewChildren,\r\n QueryList,\r\n AfterViewInit,\r\n OnDestroy,\r\n Inject,\r\n Optional,\r\n ContentChildren\r\n} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport $ from 'jquery';\r\n\r\nimport {\r\n SdApiService\r\n} from '@sd-angular/core/api';\r\n\r\nimport {\r\n SdExcelService,\r\n ExcelConfig,\r\n ExcelTempateColumn\r\n} from '@sd-angular/core/excel';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\n\r\nimport { SdGridOption, defaultGridOption, GridItem, SdGridColumn, SdGridExternalFilter } from './grid.model';\r\n\r\nimport { ConfigResult } from './components/grid-config/grid-config.model';\r\nimport { SdGridConfig } from './components/grid-config/grid-config.component';\r\nimport { EditorHandlerPipe } from './pipes/editor-handler.pipe';\r\nimport { SdGridPopupEditor } from './components/grid-popup-editor/grid-popup-editor.component';\r\nimport { SdGridPopupFilter } from './components/grid-popup-filter/grid-popup-filter.component';\r\nimport { merge, Subscription } from 'rxjs';\r\nimport { SdGridPopupExportExcel } from './components/grid-popup-export-excel/grid-popup-export-excel.component';\r\nimport { QuickFilter, FilterConfiguration } from './components/grid-popup-filter/grid-popup-filter.model';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { SdGridFilterInfo } from './models/filter-info.model';\r\n\r\nimport { IGridConfiguration, GRID_CONFIG } from './models/grid-configuration.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { SdCellDefDirective } from './directives/cell-def.directive';\r\nimport { SdCellFooterDevDirective } from './directives/cell-footer-def.directive';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdCellEditorDefDirective } from './directives/cell-editor-def.directive';\r\nimport { IHandlerServer, IHandlerLocal } from './models/handler';\r\nimport { HandlerLocal } from './models/handler-local';\r\nimport { HandlerDotnet } from './models/handler-dotnet';\r\nimport { SdGridImportExcel } from './components/grid-import-excel/grid-import-excel.component';\r\n\r\n\r\n@Component({\r\n selector: 'sd-grid',\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGrid implements AfterViewInit, OnDestroy {\r\n private handler: IHandlerServer | IHandlerLocal;\r\n isMobileOrTablet = false;\r\n displayKey = 'SDCUSTOM';\r\n gridOption: SdGridOption;\r\n orderBy: string;\r\n orderDirection: 'ASC' | 'DESC';\r\n localItems: GridItem[] = [];\r\n items: GridItem[] = [];\r\n total: number;\r\n filter: {\r\n [key: string]: any\r\n } = {};\r\n externalFilter: {\r\n [key: string]: any\r\n } = {};\r\n hiddenPaginate = false;\r\n inlineExternal: {\r\n [key: string]: boolean;\r\n } = {};\r\n inlineColumn: {\r\n [key: string]: boolean;\r\n } = {};\r\n quickFilters: QuickFilter[] = [];\r\n selectedQuickFilter: string;\r\n // Paginate\r\n pages = [1];\r\n pageCount = 5;\r\n totalPage = 1;\r\n\r\n // Loading\r\n isLoading = false;\r\n\r\n viewItems: GridItem[] = [];\r\n sumarize: string;\r\n\r\n fixedColumns: SdGridColumn[] = [];\r\n normalColumns: SdGridColumn[] = [];\r\n columns: SdGridColumn[] = [];\r\n\r\n isCheckedAll = false;\r\n selectedItems: any[] = [];\r\n\r\n @ViewChildren('fixedHeader') private fixedHeaders: QueryList<ElementRef>;\r\n @ViewChildren('fixedBody') private fixedBodies: QueryList<ElementRef>;\r\n\r\n @ViewChild('fixedGridContainer') fixedGridContainer: ElementRef;\r\n @ViewChild('gridFixedBody') gridFixedBody: ElementRef;\r\n\r\n @ViewChild('gridContainer') gridContainer: ElementRef;\r\n @ViewChild('gridHeader') gridHeader: ElementRef;\r\n @ViewChild('gridBody') gridBody: ElementRef;\r\n\r\n @ViewChild('sdGridConfig', { static: true }) sdGridConfig: SdGridConfig;\r\n @ViewChild('sdGridPopupEditor') sdGridPopupEditor: SdGridPopupEditor;\r\n\r\n @ViewChild('sdGridPopupFilter') sdGridPopupFilter: SdGridPopupFilter;\r\n @ViewChild('matSelect') matSelect: MatSelect;\r\n\r\n @ViewChild('sdGridPopupExportExcel') sdGridPopupExportExcel: SdGridPopupExportExcel;\r\n @ViewChild('sdGridImportExcel') sdGridImportExcel: SdGridImportExcel;\r\n\r\n @ContentChildren(SdCellDefDirective) cellDefs = new QueryList<SdCellDefDirective>();\r\n cellDef: {\r\n [column: string]: SdCellDefDirective\r\n } = {};\r\n\r\n @ContentChildren(SdCellEditorDefDirective) cellEditorDefs = new QueryList<SdCellEditorDefDirective>();\r\n cellEditorDef: {\r\n [column: string]: SdCellEditorDefDirective\r\n } = {};\r\n\r\n @ContentChildren(SdCellFooterDevDirective) cellFooterDefs = new QueryList<SdCellFooterDevDirective>();\r\n cellFooterDef: {\r\n [column: string]: SdCellFooterDevDirective[];\r\n } = {};\r\n #numberOfFooterRows = 0;\r\n footerRows: number[] = [];\r\n\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(paginator.page.subscribe(this.selectPage));\r\n }\r\n }\r\n\r\n @Input() set option(value: SdGridOption) {\r\n this.setOption(value);\r\n }\r\n selectedItem: any = null;\r\n #subscription = new Subscription();\r\n rowHandler = {\r\n click: (item: any) => {\r\n this.selectedItem = item;\r\n if (this.gridOption.onClickRow) {\r\n this.gridOption.onClickRow(item);\r\n }\r\n },\r\n dblClick: (item: any) => {\r\n this.selectedItem = item;\r\n if (this.gridOption.onDblClickRow) {\r\n this.gridOption.onDblClickRow(item);\r\n }\r\n }\r\n };\r\n\r\n private setOption = (option: SdGridOption) => {\r\n option = this.initConfiguration(option);\r\n option = this.initTranslate(option);\r\n delete this.gridOption;\r\n this.gridOption = option;\r\n // Loại bỏ những command bị ẩn\r\n this.gridOption.commands = this.gridOption.commands.filter(command => {\r\n const hidden = command.hidden;\r\n if (hidden !== undefined) {\r\n if (typeof (hidden) === 'boolean') {\r\n return !hidden;\r\n } else if (typeof (hidden) === 'function') {\r\n return !hidden();\r\n }\r\n } else {\r\n return true;\r\n }\r\n });\r\n this.sdGridConfig.setOption({\r\n key: option.key,\r\n pageSize: this.gridOption.paginate.pageSize,\r\n columns: this.gridOption.columns\r\n });\r\n this.initExternalFilter();\r\n this.resize();\r\n this.detectChanges();\r\n }\r\n\r\n private initConfiguration = (option: SdGridOption) => {\r\n const gridConfiguration = this.configuration;\r\n // Filter\r\n if (!option.filter?.type && gridConfiguration?.filter?.type) {\r\n if (!option.filter) {\r\n option.filter = {\r\n type: gridConfiguration.filter.type\r\n };\r\n } else {\r\n option.filter.type = gridConfiguration.filter.type;\r\n }\r\n }\r\n if (!option.filter?.columnInline && gridConfiguration?.filter?.columnInline) {\r\n if (!option.filter) {\r\n option.filter = {\r\n columnInline: gridConfiguration.filter.columnInline\r\n };\r\n } else {\r\n option.filter.columnInline = gridConfiguration.filter.columnInline;\r\n }\r\n }\r\n if (!option.filter?.quickFilterVisibility && gridConfiguration?.filter?.quickFilterVisibility) {\r\n if (!option.filter) {\r\n option.filter = {\r\n quickFilterVisibility: gridConfiguration.filter.quickFilterVisibility\r\n };\r\n } else {\r\n option.filter.quickFilterVisibility = gridConfiguration.filter.quickFilterVisibility;\r\n }\r\n }\r\n // Translate\r\n option.translate = option.translate ?? gridConfiguration?.translate;\r\n switch (option.type) {\r\n case 'local':\r\n this.handler = this.handlerLocal;\r\n break;\r\n case 'dotnet':\r\n this.handler = this.handlerDotnet;\r\n break;\r\n case 'custom':\r\n this.handler = option.handlerCustom || gridConfiguration?.handlerCustom;\r\n if (!this.handler) {\r\n this.notifyService.notify.warning(`Handler custom was not found`);\r\n return;\r\n }\r\n break;\r\n }\r\n return { ...defaultGridOption, ...option };\r\n }\r\n\r\n private initTranslate = (option: SdGridOption) => {\r\n const { translate } = this.translateService;\r\n option.commands?.forEach(command => {\r\n if (!option.translate) {\r\n return;\r\n }\r\n if (typeof (command.title) === 'string') {\r\n command.title = translate(command.title);\r\n }\r\n if ('children' in command) {\r\n command.children?.forEach(childCommand => {\r\n if (typeof (childCommand.title) === 'string') {\r\n childCommand.title = translate(childCommand.title);\r\n }\r\n });\r\n }\r\n });\r\n option.columns?.forEach(column => {\r\n if (column.translate === false) {\r\n return;\r\n }\r\n if (option.translate || column.translate) {\r\n column.title = translate(column.title);\r\n }\r\n if (column.type === 'children') {\r\n column?.children?.forEach(childColumn => {\r\n if (childColumn.translate === false) {\r\n return;\r\n }\r\n if (option.translate || childColumn.translate) {\r\n childColumn.title = translate(childColumn.title);\r\n }\r\n });\r\n }\r\n });\r\n option.filter?.externalFilters?.forEach(externalFilter => {\r\n if (option.translate) {\r\n externalFilter.title = translate(externalFilter.title);\r\n }\r\n });\r\n return option;\r\n }\r\n\r\n constructor(\r\n @Inject(GRID_CONFIG) @Optional() public configuration: IGridConfiguration,\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService,\r\n private handlerLocal: HandlerLocal,\r\n private handlerDotnet: HandlerDotnet,\r\n private translateService: SdTranslateService,\r\n private datePipe: DatePipe,\r\n private loadingService: SdLoadingService,\r\n private apiService: SdApiService,\r\n private excelService: SdExcelService,\r\n private notifyService: SdNotifyService,\r\n private editorVisiblePipe: EditorHandlerPipe) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n // this.ref.detach();\r\n // setInterval(() => {\r\n // this.ref.markForCheck();\r\n // }, 1000);\r\n // ref.detach();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.fixedHeaders.changes.pipe(startWith([])).subscribe(() => {\r\n setTimeout(() => {\r\n const fixedHeaders = this.fixedHeaders.toArray();\r\n if (fixedHeaders.length > 0) {\r\n let left = $(fixedHeaders[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedHeaders.length; i++) {\r\n $(fixedHeaders[i].nativeElement).css({ left });\r\n left += $(fixedHeaders[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n }, 100);\r\n }));\r\n this.#subscription.add(merge(this.fixedBodies.changes, this.cellFooterDefs.changes).pipe(startWith({})).subscribe(() => {\r\n setTimeout(() => {\r\n const fixedBodies = this.fixedBodies.toArray();\r\n if (fixedBodies.length > 0) {\r\n const fixedPerRow = this.fixedBodies.length / (this.viewItems.length + this.#numberOfFooterRows);\r\n let left = $(fixedBodies[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedBodies.length; i++) {\r\n if (i % fixedPerRow === 0) {\r\n left = 0;\r\n }\r\n $(fixedBodies[i].nativeElement).css({ left });\r\n left += $(fixedBodies[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n const fixedHeaders = this.fixedHeaders.toArray();\r\n if (fixedHeaders.length > 0) {\r\n let left = $(fixedHeaders[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedHeaders.length; i++) {\r\n $(fixedHeaders[i].nativeElement).css({ left });\r\n left += $(fixedHeaders[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n }, 100);\r\n }));\r\n this.#subscription.add(this.cellDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellDef = {};\r\n for (const cellDef of this.cellDefs) {\r\n if (cellDef.sdCellDef) {\r\n this.cellDef[cellDef.sdCellDef] = cellDef;\r\n }\r\n }\r\n }));\r\n this.#subscription.add(this.cellEditorDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellEditorDef = {};\r\n for (const cellEditorDef of this.cellEditorDefs) {\r\n if (cellEditorDef.sdCellEditorDef) {\r\n this.cellEditorDef[cellEditorDef.sdCellEditorDef] = cellEditorDef;\r\n }\r\n }\r\n }));\r\n this.#subscription.add(this.cellFooterDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellFooterDef = {};\r\n this.#numberOfFooterRows = 0;\r\n for (const cellFooterDef of this.cellFooterDefs) {\r\n if (cellFooterDef.sdCellFooterDef) {\r\n if (!this.cellFooterDef[cellFooterDef.sdCellFooterDef]) {\r\n this.cellFooterDef[cellFooterDef.sdCellFooterDef] = [];\r\n }\r\n this.cellFooterDef[cellFooterDef.sdCellFooterDef].push(cellFooterDef);\r\n if (this.cellFooterDef[cellFooterDef.sdCellFooterDef].length > this.#numberOfFooterRows) {\r\n this.#numberOfFooterRows = this.cellFooterDef[cellFooterDef.sdCellFooterDef].length;\r\n }\r\n }\r\n }\r\n this.footerRows = Array(this.#numberOfFooterRows).fill(0).map((v, i) => i);\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n reload = async (gridItems?: any[]) => {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const currentPage = (this.#paginator?.pageIndex || 0) + 1;\r\n const pageSize = this.#paginator?.pageSize || 50;\r\n try {\r\n if (this.gridOption.type !== 'local') {\r\n const handler = this.handler as IHandlerServer;\r\n const filter = handler.mapRequest(this.getFilterInfo(currentPage, pageSize));\r\n if (this.gridOption.method === 'GET') {\r\n const queryString = Object.keys(filter).filter(key => filter[key] !== null && filter[key] !== undefined)\r\n .map(key => key + '=' + filter[key]).join('&');\r\n const url = this.gridOption.url.includes('?') ? `${this.gridOption.url}&${queryString}` : `${this.gridOption.url}?${queryString}`;\r\n const response = await this.apiService.get(url);\r\n const { items, total } = handler.mapResponse(response);\r\n this.items = items;\r\n this.total = total;\r\n } else {\r\n const response = await this.apiService.post(this.gridOption.url, filter);\r\n const { items, total } = handler.mapResponse(response);\r\n this.items = items;\r\n this.total = total;\r\n }\r\n } else {\r\n const handler = this.handler as IHandlerLocal;\r\n if (typeof (this.gridOption.items) === 'function') {\r\n if (Array.isArray(gridItems)) {\r\n this.localItems = gridItems;\r\n } else {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n this.localItems = await results;\r\n } else {\r\n this.localItems = results;\r\n }\r\n }\r\n } else {\r\n this.gridOption.items = gridItems || this.gridOption.items;\r\n this.localItems = this.gridOption.items;\r\n }\r\n const response = handler.filter(this.localItems, {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber: currentPage,\r\n pageSize\r\n });\r\n this.items = response.items;\r\n this.total = response.total;\r\n \r\n }\r\n this.items.forEach(item => item.originItem = { ...item });\r\n this.isCheckedAll = false;\r\n this.#setSelectedItems();\r\n await this.gridOption?.onReloadCompleted?.(this.items);\r\n this.generateViewItems();\r\n this.generateEditorHandlers();\r\n $(this.gridBody.nativeElement).scrollTop(0);\r\n if (currentPage > 1 && !this.viewItems?.length) {\r\n this.#paginator.firstPage();\r\n }\r\n this.detectChanges();\r\n } catch (error) {\r\n this.notifyService.handle.error(error);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n reloadItem(data: { [id: string]: any }) {\r\n Object.keys(data).forEach(id => {\r\n const item = this.items.find(e => !!e.id && e.id === id);\r\n if (item) {\r\n this.gridOption.columns.forEach(column => {\r\n if (item[column.field] !== undefined && data[id][column.field] !== undefined && item[column.field] !== data[id][column.field]) {\r\n this.blink(item, column.field);\r\n }\r\n });\r\n Object.assign(item, data[id]);\r\n this.generateEditorHanlder(item);\r\n this.stopBlink();\r\n }\r\n });\r\n }\r\n\r\n private blink(item: GridItem, field: string) {\r\n item.blinker = item.blinker || {};\r\n item.blinker[field] = true;\r\n }\r\n private stopBlink() {\r\n setTimeout(() => {\r\n this.viewItems.forEach(item => {\r\n item.blinker = {};\r\n });\r\n }, 1500);\r\n }\r\n\r\n detectChanges = () => {\r\n this.ref.detectChanges();\r\n this.ref.markForCheck();\r\n }\r\n\r\n private generateViewItems() {\r\n const currentPage = (this.#paginator?.pageIndex || 0) + 1;\r\n const pageSize = this.#paginator?.pageSize || 50;\r\n delete this.viewItems;\r\n if (this.gridOption.type === 'local') {\r\n this.viewItems = this.items.filter((item, index) => {\r\n return index >= (currentPage - 1) * pageSize\r\n && index < currentPage * pageSize;\r\n });\r\n } else {\r\n this.viewItems = this.items;\r\n }\r\n this.viewItems.forEach(item => {\r\n item.blinker = item.blinker || {};\r\n item.subInformation = item.subInformation || {};\r\n });\r\n }\r\n\r\n get editedItems() {\r\n return this.items.filter(item => {\r\n if (!item.originItem) {\r\n return true;\r\n }\r\n if (Object.keys(item.originItem).some(key => item.originItem[key] !== item[key])) {\r\n return true;\r\n }\r\n return false;\r\n }).map(item => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...result } = item;\r\n return result;\r\n });\r\n }\r\n\r\n selectPage = () => {\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n\r\n updateFilter = (param?: { filter: any, externalFilter: any }) => {\r\n this.filter = param?.filter || this.filter;\r\n this.externalFilter = param?.externalFilter || this.externalFilter;\r\n this.#paginator.pageIndex = 0;\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n\r\n getItems() {\r\n return this.items;\r\n }\r\n\r\n //#region Checkable\r\n\r\n #setSelectedItems = () => {\r\n this.selectedItems = this.items.filter(item => item.isChecked)\r\n .map(item => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...result } = item;\r\n return result;\r\n });\r\n }\r\n\r\n onCheck = (item: GridItem, isCheckbox?: boolean) => {\r\n if (!this.gridOption.checkable) {\r\n return;\r\n }\r\n if (!isCheckbox) {\r\n item.isChecked = !item.isChecked;\r\n }\r\n this.isCheckedAll = this.items.length === this.items.filter(e => e.isChecked).length;\r\n this.gridOption.onCheck?.(this.items.filter(e => e.isChecked), item);\r\n this.#setSelectedItems();\r\n }\r\n\r\n checkAll(isCheckedAll: boolean) {\r\n this.isCheckedAll = isCheckedAll;\r\n this.items.forEach(item => item.isChecked = this.isCheckedAll);\r\n if (this.gridOption.onCheck) {\r\n this.gridOption.onCheck(this.items.filter(item => item.isChecked));\r\n }\r\n this.#setSelectedItems();\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Sort\r\n sort = (column: SdGridColumn) => {\r\n if (column.type === 'children' || column.type === 'image') {\r\n return;\r\n }\r\n const sortable = this.gridOption.sortable ?? true;\r\n const columnSortable = column.sortable ?? true;\r\n if (!sortable || !columnSortable) {\r\n return;\r\n }\r\n if (this.orderBy === column.field) {\r\n this.orderDirection = this.orderDirection === 'ASC' ? 'DESC' : 'ASC';\r\n } else {\r\n this.orderBy = column.field;\r\n this.orderDirection = 'ASC';\r\n }\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n //#endregion\r\n\r\n // #region Resize Grid\r\n private resize() {\r\n this.detectChanges();\r\n if (this.gridOption.height) {\r\n this.gridBody.nativeElement.style.height = this.gridOption.height;\r\n } else {\r\n this.gridBody.nativeElement.style.height = `${window.innerHeight - 300}px`;\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 0);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 200);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 500);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 1000);\r\n }\r\n }\r\n\r\n setHeight(height?: string) {\r\n this.gridOption.height = height;\r\n this.resize();\r\n }\r\n\r\n // #endregion\r\n\r\n //#region Import, Export, Config\r\n\r\n loadConfig(configResult: ConfigResult) {\r\n this.gridOption.paginate.pageSize = configResult.pageSize;\r\n this.gridOption.columns = configResult.columns;\r\n this.fixedColumns = configResult.fixedColumns;\r\n this.normalColumns = configResult.normalColumns;\r\n this.columns = [...this.fixedColumns, ...this.normalColumns];\r\n this.initFilter();\r\n this.initDictionaryColumnValues();\r\n this.reload();\r\n }\r\n\r\n private initFilter() {\r\n this.gridOption.columns.forEach(column => {\r\n // Gán giá trị filter mặc định cho từng cột\r\n this.filter[column.field] = this.filter[column.field] ?? '';\r\n });\r\n }\r\n\r\n private initDictionaryColumnValues() {\r\n this.gridOption.columns.forEach(column => {\r\n if (column.type === 'values') {\r\n column.dictionary = {};\r\n if (column.values) {\r\n column.values.forEach(e => {\r\n column.dictionary[e.value.toString()] = {\r\n text: e.text,\r\n icon: e.icon,\r\n color: e.color,\r\n backgroundColor: e.backgroundColor\r\n };\r\n });\r\n }\r\n }\r\n if (column.type === 'children') {\r\n column.children.forEach(childColumn => {\r\n if (childColumn.type === 'values') {\r\n childColumn.dictionary = {};\r\n if (childColumn.values) {\r\n childColumn.values.forEach(e => {\r\n childColumn.dictionary[e.value.toString()] = {\r\n text: e.text,\r\n icon: e.icon,\r\n color: e.color,\r\n backgroundColor: e.backgroundColor\r\n };\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n private generateEditorHandlers() {\r\n this.viewItems.forEach(item => {\r\n this.generateEditorHanlder(item);\r\n });\r\n }\r\n\r\n private generateEditorHanlder(item: GridItem) {\r\n // item.editorHandler = item.editorHandler || {};\r\n this.editorVisiblePipe.transform(null, item, this.gridOption);\r\n }\r\n trackById(index, item) {\r\n return item.id;\r\n }\r\n\r\n get isFiltering() {\r\n return Object.values(this.filter).some(value => !!value);\r\n }\r\n\r\n onFilterPopup() {\r\n const f1 = JSON.stringify(this.filter);\r\n const f2 = JSON.stringify(this.externalFilter);\r\n const filter = JSON.parse(f1);\r\n const externalFilter = JSON.parse(f2);\r\n this.sdGridPopupFilter.open(this.fixedColumns, this.normalColumns, filter, externalFilter, this.gridOption.filter?.externalFilters);\r\n }\r\n\r\n clearFilter = () => {\r\n this.filter = {};\r\n this.externalFilter = {};\r\n this.initFilter();\r\n this.initExternalFilter();\r\n if (this.sdGridPopupFilter) {\r\n this.sdGridPopupFilter.filter = this.filter;\r\n this.sdGridPopupFilter.externalFilter = this.externalFilter;\r\n }\r\n }\r\n\r\n onClearFilter = () => {\r\n this.clearFilter();\r\n this.reload();\r\n }\r\n\r\n expandOrCollapse = async (gridItem: GridItem) => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n ...item } = gridItem;\r\n if (!this.gridOption.subInformation) {\r\n return;\r\n }\r\n if (gridItem.subInformation?.isOpened) {\r\n gridItem.subInformation.isOpened = false;\r\n return;\r\n }\r\n if (this.gridOption.subInformation.lazyLoading && !gridItem.subInformation?.isLoaded) {\r\n gridItem.subInformation.isLoading = true;\r\n try {\r\n gridItem.subInformation.subItems = await this.gridOption.subInformation.onLoad(item);\r\n if (!Array.isArray(gridItem.subInformation.subItems)) {\r\n this.notifyService.alert.warning(`Data is not an array`);\r\n gridItem.subInformation.subItems = [];\r\n }\r\n gridItem.subInformation.isLoading = false;\r\n gridItem.subInformation.isLoaded = true;\r\n gridItem.subInformation.isOpened = true;\r\n this.ref.detectChanges();\r\n } catch (err) {\r\n this.notifyService.handle.error(err);\r\n gridItem.subInformation.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n return;\r\n }\r\n if (this.gridOption.subInformation.lazyLoading === false && !gridItem.subInformation.isLoaded) {\r\n gridItem.subInformation.subItems = gridItem[this.gridOption.subInformation.field];\r\n if (!Array.isArray(gridItem.subInformation.subItems)) {\r\n this.notifyService.alert.warning(`Data is not an array`);\r\n gridItem.subInformation.subItems = [];\r\n }\r\n gridItem.subInformation.isLoaded = true;\r\n gridItem.subInformation.isOpened = true;\r\n return;\r\n }\r\n gridItem.subInformation.isOpened = true;\r\n this.ref.detectChanges();\r\n }\r\n //#region Editable\r\n onCreate = () => {\r\n const { type, editor, columns } = this.gridOption;\r\n if (!editor?.addable) {\r\n return;\r\n }\r\n const item: GridItem = {};\r\n // Gán giá trị mặc định\r\n columns.forEach(column => {\r\n if (column.type === 'values') {\r\n item[column.field] = '';\r\n } else if (column.type === 'bool') {\r\n item[column.field] = true;\r\n } else if (column.type === 'number') {\r\n item[column.field] = null;\r\n }\r\n });\r\n editor.onAdd?.(item);\r\n // Đưa item lên dòng đầu tiên nếu type khác popup\r\n if (editor.type !== 'popup') {\r\n if (type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n this.viewItems.splice(0, 0, item);\r\n }\r\n this.onUpdate(item, false);\r\n }\r\n onUpdate = (item: GridItem, isModified?: boolean) => {\r\n const { editor, columns } = this.gridOption;\r\n item.editingStatus = isModified ? 'update' : 'create';\r\n item.temporary = { ...item };\r\n this.generateEditorHanlder(item);\r\n if (editor.type === 'popup') {\r\n this.sdGridPopupEditor.open(item, columns, isModified);\r\n }\r\n this.ref.detectChanges();\r\n }\r\n onSave = async (item: GridItem) => {\r\n const { editor } = this.gridOption;\r\n try {\r\n item.editorHandler.saving = true;\r\n if (editor.validate) {\r\n const result = editor.validate(item);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n throw message;\r\n }\r\n } else {\r\n if (result) {\r\n throw result;\r\n }\r\n }\r\n }\r\n if (editor.onSave) {\r\n const result = editor.onSave(item);\r\n if (result instanceof Promise) {\r\n await result;\r\n }\r\n }\r\n\r\n if (item.editingStatus === 'create' && editor.type === 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n this.viewItems.splice(0, 0, item);\r\n }\r\n\r\n item.editingStatus = undefined;\r\n this.generateEditorHanlder(item);\r\n } catch (err) {\r\n this.notifyService.notify.warning(err);\r\n } finally {\r\n item.editorHandler.saving = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n onCancel = (item: GridItem) => {\r\n const { editor } = this.gridOption;\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n }\r\n const idx2 = this.viewItems.indexOf(item);\r\n this.viewItems.splice(idx2, 1);\r\n return;\r\n }\r\n if (item.editingStatus === 'create') {\r\n if (editor.type !== 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 1);\r\n }\r\n this.viewItems.splice(0, 1);\r\n }\r\n } else {\r\n Object.assign(item, item.temporary);\r\n item.editingStatus = undefined;\r\n this.generateEditorHanlder(item);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n private initExternalFilter = () => {\r\n if (this.gridOption.filter?.externalFilters?.length) {\r\n this.gridOption.filter.externalFilters.forEach(externalFilter => {\r\n if (externalFilter.type === 'string') {\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? '';\r\n }\r\n return;\r\n }\r\n if (externalFilter.type === 'number') {\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? undefined;\r\n }\r\n return;\r\n }\r\n if (externalFilter.type === 'daterange') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'numberrange') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'daterangefull') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'values') { // andn1\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? '';\r\n }\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n onSearch = (searchValue: string, item: GridItem, column: SdGridColumn) => {\r\n item[column.field] = searchValue;\r\n }\r\n\r\n onFilterConfigurationLoaded = (param: FilterConfiguration) => {\r\n this.quickFilters = param.quickFilters || [];\r\n this.selectedQuickFilter = param.selectedQuickFilter || '';\r\n if (this.selectedQuickFilter) {\r\n const quickFilter = this.quickFilters.find(e => e.code === this.selectedQuickFilter);\r\n if (quickFilter) {\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.refreshExternalFilter(this.gridOption?.filter?.externalFilters, JSON.parse(f2));\r\n }\r\n }\r\n this.inlineExternal = param.inlineExternal || {};\r\n this.inlineColumn = param.inlineColumn || {};\r\n this.resize();\r\n }\r\n\r\n onSelectQuickFilter = (value: string) => {\r\n const quickFilter = this.quickFilters.find(e => e.code === value);\r\n if (quickFilter?.code) {\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.selectedQuickFilter = quickFilter?.code;\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.refreshExternalFilter(this.gridOption?.filter?.externalFilters, JSON.parse(f2));\r\n this.updateFilter();\r\n } else {\r\n this.selectedQuickFilter = '';\r\n this.onClearFilter();\r\n }\r\n this.sdGridPopupFilter?.updateConfiguration(this.selectedQuickFilter);\r\n }\r\n\r\n private getExportItems = async (pageNumber: number = 1, pageSize: number = 10000) => {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n try {\r\n if (this.gridOption.type !== 'local') {\r\n const handler = this.handler as IHandlerServer;\r\n const filter = handler.mapRequest(this.getFilterInfo(pageNumber, pageSize));\r\n if (this.gridOption.method === 'GET') {\r\n const queryString = Object.keys(filter).filter(key => filter[key] !== null && filter[key] !== undefined)\r\n .map(key => key + '=' + filter[key]).join('&');\r\n const url = this.gridOption.url.includes('?') ? `${this.gridOption.url}&${queryString}` : `${this.gridOption.url}?${queryString}`;\r\n const response = await this.apiService.get(url);\r\n return handler.mapResponse(response).items;\r\n } else {\r\n const response = await this.apiService.post(this.gridOption.url, filter);\r\n return handler.mapResponse(response).items;\r\n }\r\n } else {\r\n let localItems = [];\r\n const handler = this.handler as IHandlerLocal;\r\n if (typeof (this.gridOption.items) === 'function') {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n localItems = await results;\r\n } else {\r\n localItems = results;\r\n }\r\n } else {\r\n localItems = this.gridOption.items;\r\n }\r\n const response = handler.filter(localItems, {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber,\r\n pageSize\r\n });\r\n return response.items;\r\n }\r\n } catch (error) {\r\n this.notifyService.handle.error(error);\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n private getFilterInfo = (pageNumber: number, pageSize: number): SdGridFilterInfo => {\r\n for (const key of Object.keys(this.filter)) {\r\n if (typeof (this.filter[key]) === 'string') {\r\n this.filter[key] = this.filter[key].trim();\r\n }\r\n }\r\n for (const key of Object.keys(this.externalFilter)) {\r\n if (typeof (this.externalFilter[key]) === 'string') {\r\n this.externalFilter[key] = this.externalFilter[key].trim();\r\n }\r\n }\r\n return {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber,\r\n pageSize\r\n };\r\n }\r\n\r\n onExportByTemplate = async (params: { excelConfig: ExcelConfig, excelColumns: ExcelTempateColumn[] }) => {\r\n this.loadingService.start();\r\n let exportItems = [];\r\n if (this.gridOption.export?.items) {\r\n exportItems = await this.gridOption.export?.items(this.getFilterInfo(1, 10000)).finally(this.loadingService.stop);\r\n } else {\r\n exportItems = await this.getExportItems().finally(this.loadingService.stop);\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems, params.excelConfig.name);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const columns = [...this.gridOption.columns, ...(this.gridOption.export?.columns || [])];\r\n const items = exportItems.map(item => {\r\n const obj: any = {};\r\n const handle = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n column.children.forEach(handle);\r\n } else if (column.transform) {\r\n obj[column.field] = column.transform(item[column.field], item);\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number' || column.type === 'color') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.trueValue || 'True';\r\n } else {\r\n obj[column.field] = column.falseValue || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n // Nếu là date thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n // Nếu là datetime thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy HH:mm:ss');\r\n } else if (column.type === 'time') {\r\n // Nếu là time thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'HH:mm:ss');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n const data = column.values.find(e => e.value === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data.text;\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n } else if (column.type === 'radio') {\r\n const data = column.values.find(e => e[column.valueField] === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data[column.displayField];\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n }\r\n };\r\n columns.forEach(handle);\r\n return obj;\r\n });\r\n this.excelService.generateExcelDataByTemplate(params.excelConfig.fullPath, params.excelColumns, items, params.excelConfig.name);\r\n }\r\n\r\n bigExport = async () => {\r\n const pageSize = 1000;\r\n let pageNumber = 1;\r\n this.loadingService.start();\r\n try {\r\n let exportItems = [];\r\n let filePath: string = null;\r\n let destination: string = null;\r\n let latestRow = 0;\r\n while (true) {\r\n if (this.gridOption.export?.items) {\r\n exportItems = await this.gridOption.export?.items(this.getFilterInfo(pageNumber, pageSize)).finally(this.loadingService.stop);\r\n } else {\r\n exportItems = await this.getExportItems(pageNumber, pageSize).finally(this.loadingService.stop);\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const columns = [...this.gridOption.columns, ...(this.gridOption.export?.columns || [])];\r\n const items = exportItems.map(item => {\r\n const obj: any = {};\r\n const handle = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n column.children.forEach(handle);\r\n } else if (column.transform) {\r\n obj[column.field] = column.transform(item[column.field], item);\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number' || column.type === 'color') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.trueValue || 'True';\r\n } else {\r\n obj[column.field] = column.falseValue || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n // Nếu là date thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n // Nếu là datetime thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy HH:mm:ss');\r\n } else if (column.type === 'time') {\r\n // Nếu là time thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'HH:mm:ss');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n const data = column.values.find(e => e.value === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data.text;\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n } else if (column.type === 'radio') {\r\n const data = column.values.find(e => e[column.valueField] === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data[column.displayField];\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n }\r\n };\r\n columns.forEach(handle);\r\n return obj;\r\n });\r\n const result = await this.excelService.bigExport({\r\n columns,\r\n items,\r\n latestRow,\r\n filePath,\r\n destination\r\n });\r\n latestRow = result.latestRow;\r\n filePath = result.filePath;\r\n destination = result.destination;\r\n if ((pageNumber - 1) * pageSize + items.length >= this.total) {\r\n await this.excelService.download(filePath);\r\n break;\r\n }\r\n pageNumber++;\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n get invalidItems() {\r\n return this.items.filter(e => e.editorHandler?.errorMessage).map(e => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...item } = e;\r\n return {\r\n item,\r\n message: e.editorHandler.errorMessage\r\n };\r\n });\r\n }\r\n\r\n get gridItems() {\r\n return this.items.map(e => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...item } = e;\r\n return item;\r\n });\r\n }\r\n\r\n onEditorChange = () => {\r\n this.ref.detectChanges();\r\n }\r\n onSelectPageSize = () => {\r\n this.reload();\r\n }\r\n private refreshExternalFilter = (externalFilters: SdGridExternalFilter[], externalFilter: any) => {\r\n externalFilter = externalFilter || {};\r\n externalFilters = externalFilters || [];\r\n externalFilters.forEach(e => {\r\n if (e.type === 'string') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? '';\r\n return;\r\n }\r\n if (e.type === 'number') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? undefined;\r\n return;\r\n }\r\n if (e.type === 'daterange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'numberrange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'daterangefull') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'values') { // andn1\r\n externalFilter[e.field] = (externalFilter[e.field] || e.default) ?? '';\r\n return;\r\n }\r\n });\r\n return externalFilter;\r\n }\r\n\r\n onCreateQuickFilter = (ev?: Event) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onCreateQuickFilter(ev);\r\n }\r\n\r\n onEditQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onEditQuickFilter(ev, quickFilter);\r\n }\r\n\r\n onDeleteQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onDeleteQuickFilter(ev, quickFilter);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDynamicItems'\r\n})\r\nexport class SdDynamicItems implements PipeTransform {\r\n transform(value: any, dynamicItems: (value: any) => Promise<any[]>) {\r\n return dynamicItems;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { ConfigOption, ConfigResult, ConfigStorage } from './grid-config.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\n\r\nimport {\r\n SdSetting,\r\n SdSettingService\r\n} from '@sd-angular/core/setting';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-config',\r\n templateUrl: './grid-config.component.html',\r\n styleUrls: ['./grid-config.component.scss']\r\n})\r\nexport class SdGridConfig implements OnInit {\r\n @ViewChild('modal') modal: SdModal;\r\n @Output() sdChange = new EventEmitter<ConfigResult>();\r\n\r\n option: ConfigOption;\r\n storage: ConfigStorage;\r\n #setting: SdSetting<ConfigStorage>;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private notifyService: SdNotifyService,\r\n private settingService: SdSettingService,\r\n private translateService: SdTranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n async setOption(option: ConfigOption) {\r\n this.ref.detectChanges();\r\n this.option = option;\r\n if (this.option.key) {\r\n this.#setting = this.settingService.create<ConfigStorage>(this.option.key);\r\n } else {\r\n this.#setting = null;\r\n }\r\n await this.init();\r\n this.emitOnChange();\r\n }\r\n\r\n private async init() {\r\n if (this.#setting) {\r\n const storage: ConfigStorage = await this.#setting.get();\r\n try {\r\n if (!storage) {\r\n await this.#setting.remove();\r\n this.#initDefault();\r\n return;\r\n }\r\n this.storage = storage;\r\n\r\n // Loại bỏ những column đã bị xóa khỏi originColumns\r\n this.storage.columnConfigs = this.storage.columnConfigs\r\n .filter(column => this.option.columns.some(e => e.field === column.originColumn.field));\r\n\r\n // Thêm những column mới vào storage nếu có\r\n this.option.columns.forEach(column => {\r\n if (!this.storage.columnConfigs.some(e => e.originColumn.field === column.field)) {\r\n this.storage.columnConfigs.push({\r\n originColumn: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n fixed: column.fixed\r\n },\r\n hidden: false,\r\n fixed: column.fixed\r\n });\r\n }\r\n });\r\n\r\n // Cập nhật originColumn\r\n this.storage.columnConfigs.forEach(column => {\r\n const originColumn = this.option.columns.find(e => e.field === column.originColumn.field);\r\n if (originColumn) {\r\n Object.assign(column.originColumn, {\r\n title: originColumn.title,\r\n width: originColumn.width,\r\n fixed: originColumn.fixed\r\n });\r\n }\r\n });\r\n } catch (ex) {\r\n this.#setting.remove();\r\n this.#initDefault();\r\n }\r\n } else {\r\n this.#initDefault();\r\n }\r\n }\r\n\r\n #initDefault = () => {\r\n this.storage = {};\r\n this.storage.pageSize = this.option.pageSize;\r\n this.storage.columnConfigs = [];\r\n this.option.columns.forEach(column => {\r\n this.storage.columnConfigs.push({\r\n originColumn: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n fixed: column.fixed\r\n },\r\n hidden: false,\r\n fixed: column.fixed\r\n });\r\n });\r\n }\r\n\r\n open() {\r\n this.modal.open();\r\n }\r\n\r\n save() {\r\n if (!Number.isSafeInteger(+this.storage.pageSize)) {\r\n this.notifyService.notify.warning(this.translateService.translate('Page size must be an integer'));\r\n return;\r\n }\r\n if (this.storage.pageSize > 200) {\r\n this.notifyService.notify.warning(this.translateService.translate('Page size is too large'));\r\n return;\r\n }\r\n this.#setting?.set?.(this.storage);\r\n this.emitOnChange();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n reset() {\r\n this.#setting?.remove?.();\r\n this.#initDefault();\r\n this.emitOnChange();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n moveColumnUp(index: number) {\r\n const temp = this.storage.columnConfigs[index];\r\n this.storage.columnConfigs[index] = this.storage.columnConfigs[index - 1];\r\n this.storage.columnConfigs[index - 1] = temp;\r\n }\r\n\r\n moveColumnDown(index: number) {\r\n const temp = this.storage.columnConfigs[index];\r\n this.storage.columnConfigs[index] = this.storage.columnConfigs[index + 1];\r\n this.storage.columnConfigs[index + 1] = temp;\r\n }\r\n\r\n emitOnChange() {\r\n const pageSize = +this.storage.pageSize || this.option.pageSize;\r\n const columns = this.option.columns.filter(column => {\r\n // Hidden column theo config\r\n // Lấy các thuộc tính Title, Width, Fixed từ config\r\n const columnConfig = this.storage.columnConfigs.find(e => e.originColumn.field === column.field);\r\n if (columnConfig) {\r\n column.title = columnConfig.title || column.title;\r\n column.width = columnConfig.width || column.width;\r\n column.fixed = columnConfig.fixed;\r\n return !columnConfig.hidden;\r\n }\r\n return true;\r\n }).sort((current, next) => {\r\n // Sắp xếp theo config\r\n const currentIndex = this.storage.columnConfigs.findIndex(e => e.originColumn.field === current.field);\r\n const nextIndex = this.storage.columnConfigs.findIndex(e => e.originColumn.field === next.field);\r\n return currentIndex - nextIndex;\r\n }).filter(column => {\r\n // Hidden column theo option truyền vào\r\n if (column.hidden === undefined) {\r\n return true;\r\n }\r\n if (typeof (column.hidden) === 'boolean') {\r\n return !column.hidden;\r\n }\r\n if (typeof (column.hidden) === 'function') {\r\n return !column.hidden();\r\n }\r\n return false;\r\n });\r\n const result: ConfigResult = {\r\n pageSize,\r\n columns,\r\n fixedColumns: columns.filter(e => e.fixed),\r\n normalColumns: columns.filter(e => !e.fixed)\r\n };\r\n this.sdChange.emit(result);\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectorRef, EventEmitter, ChangeDetectionStrategy, Output } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-edit',\r\n templateUrl: './grid-desktop-column-edit.component.html',\r\n styleUrls: ['./grid-desktop-column-edit.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGridDesktopColumnEdit {\r\n @Input() column: SdGridColumn;\r\n @Input() item: GridItem;\r\n @Output() sdChange = new EventEmitter<{ column: SdGridColumn, item: GridItem, value: any }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n ) { }\r\n\r\n onEditorChange = (column: SdGridColumn, item: GridItem, value: any) => {\r\n if (column.type !== 'children') {\r\n column.editor?.change?.(item, value);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n onAutocompleteChange = (item: any) => {\r\n if (this.column.type === 'string' || this.column.type === 'values') {\r\n this.column.editor?.change?.(this.item, this.item[this.column.field], item);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n onSelectionChange = (params: { value: any, item: any, items: any[] }) => {\r\n if (this.column.type === 'string' || this.column.type === 'values') {\r\n this.column.editor?.change?.(this.item, params?.value, params?.item || params?.items);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n dynamicItems = async (value: any) => {\r\n if ('editor' in this.column && 'item' in this.column.editor) {\r\n const items = this.column.editor.item.items || [];\r\n if (Array.isArray(items)) {\r\n return items;\r\n }\r\n const results = items(this.item, value);\r\n if (results instanceof Promise) {\r\n return await results;\r\n }\r\n return results;\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-view',\r\n templateUrl: './grid-desktop-column-view.component.html',\r\n styleUrls: ['./grid-desktop-column-view.component.scss']\r\n})\r\nexport class SdGridDesktopColumnView {\r\n @Input() column: SdGridColumn;\r\n @Input() item: GridItem;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { SdGridColumn, GridBaseOptionFilter } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-inline-filter',\r\n templateUrl: './grid-desktop-inline-filter.component.html',\r\n styleUrls: ['./grid-desktop-inline-filter.component.scss']\r\n})\r\nexport class SdGridDesktopInlineFilter {\r\n @Input() columns: SdGridColumn[] = [];\r\n @Input() externalFilter: any = {};\r\n @Input() filter: any = {};\r\n @Input() filterOption: GridBaseOptionFilter;\r\n @Input() inlineExternal: {\r\n [key: string]: boolean;\r\n } = {};\r\n @Input() inlineColumn: {\r\n [key: string]: boolean;\r\n } = {};\r\n @Output() sdChange = new EventEmitter();\r\n isDesktop: boolean;\r\n displayKey = 'SDCUSTOM';\r\n constructor() { }\r\n\r\n onUpdateFilter = () => {\r\n this.sdChange.emit();\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { GridItem, SdGridOption } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-mobile-item-view',\r\n templateUrl: './grid-mobile-item-view.component.html',\r\n styleUrls: ['./grid-mobile-item-view.component.scss']\r\n})\r\nexport class SdGridMobileItemView {\r\n @Input() gridOption: SdGridOption;\r\n @Input() item: GridItem;\r\n @Output() check = new EventEmitter<GridItem>();\r\n constructor(\r\n ) { }\r\n\r\n onCheck = (item: GridItem) => {\r\n this.check.emit(item);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdGridOption, SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-editor',\r\n templateUrl: './grid-popup-editor.component.html'\r\n})\r\nexport class SdGridPopupEditor implements OnInit {\r\n\r\n @ViewChild('modal') modal: SdModal;\r\n @Output() save = new EventEmitter<GridItem>();\r\n columns: SdGridColumn[] = [];\r\n gridOption: SdGridOption;\r\n item: GridItem;\r\n isModified: boolean;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n open = (item: GridItem, columns: SdGridColumn[], isModified?: boolean) => {\r\n this.item = item;\r\n this.isModified = isModified ?? false;\r\n this.columns = [];\r\n columns.forEach(column => {\r\n if (column.type !== 'image' && column.type !== 'children') {\r\n this.columns.push(column);\r\n }\r\n if (column.type === 'children') {\r\n column.children?.forEach(childColumn => {\r\n if (childColumn.type !== 'image') {\r\n this.columns.push(childColumn);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n onCancel = () => {\r\n this.modal.close();\r\n }\r\n\r\n onSave = () => {\r\n this.modal.close();\r\n this.save.emit(this.item);\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { SdGridColumn, GridBaseOptionExport } from '../../grid.model';\r\n\r\nimport {\r\n SdExcelService,\r\n ExcelConfig,\r\n ExcelTempateColumn\r\n} from '@sd-angular/core/excel';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport hash from 'object-hash';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-export-excel',\r\n templateUrl: './grid-popup-export-excel.component.html',\r\n styleUrls: ['./grid-popup-export-excel.component.scss']\r\n})\r\nexport class SdGridPopupExportExcel implements OnInit, AfterViewInit {\r\n private prefix = 'Popup Export Excel';\r\n newExcelConfig = 'fd8fb5db-a7ad-4398-93ac-cb3350261180';\r\n @ViewChild('modal') modal: SdModal;\r\n @Input() key = '';\r\n get fullKey() {\r\n if (!this.key) {\r\n return '';\r\n }\r\n return hash({\r\n prefix: this.prefix,\r\n key: this.key\r\n });\r\n }\r\n @Input() columns: SdGridColumn[] = [];\r\n @Input() extendColumns: SdGridColumn[] = [];\r\n @Input() fileName: string;\r\n @Input() validator: (fileName: string) => string;\r\n @Input() exportOption: GridBaseOptionExport;\r\n excelConfigs: ExcelConfig[] = [];\r\n @Output() exportByTemplate = new EventEmitter<{ excelConfig: ExcelConfig, excelColumns: ExcelTempateColumn[] }>();\r\n tabIndex = 0;\r\n selectedExcelConfig: ExcelConfig = {};\r\n exportableColumns: SdGridColumn[] = [];\r\n selected: {\r\n [key: string]: boolean\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService,\r\n private excelService: SdExcelService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n async open() {\r\n if (!this.fullKey) {\r\n await this.exportDefault();\r\n return;\r\n }\r\n await this.loadConfiguration();\r\n this.exportableColumns = [...this.columns, ...(this.extendColumns || [])].filter(e => e.type !== 'image');\r\n this.selected = {};\r\n if (!this.selectedExcelConfig?.name) {\r\n if (this.excelConfigs?.length > 0) {\r\n this.selectedExcelConfig = this.excelConfigs[0];\r\n } else {\r\n this.selectedExcelConfig = {\r\n name: this.newExcelConfig\r\n };\r\n }\r\n }\r\n this.modal.open();\r\n this.ref.detectChanges();\r\n }\r\n\r\n private generateExcelColumns = (columns: SdGridColumn[]) => {\r\n const excelColumns: ExcelTempateColumn[] = [];\r\n for (const column of columns) {\r\n if (column.type === 'children') {\r\n for (const childColumn of column.children) {\r\n if (childColumn.type !== 'image') {\r\n excelColumns.push({\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n description: childColumn.description,\r\n width: childColumn.width\r\n });\r\n }\r\n }\r\n } else if (column.type !== 'image') {\r\n excelColumns.push({\r\n field: column.field,\r\n title: column.title,\r\n description: column.description,\r\n width: column.width\r\n });\r\n }\r\n }\r\n return excelColumns;\r\n }\r\n\r\n private initTemplate = async (columns: SdGridColumn[], fileName?: string) => {\r\n columns = columns || [];\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.exportOption?.sheets)) {\r\n for (const sheet of this.exportOption.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.excelService.generateExcelTemplate({\r\n fileName: fileName || this.fileName,\r\n columns: this.generateExcelColumns(columns),\r\n sheets\r\n });\r\n }\r\n\r\n private initDefaultTemplate = async () => {\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n return await this.initTemplate(columns);\r\n }\r\n\r\n generateTemplate = async () => {\r\n this.loadingService.start();\r\n const result = await this.initDefaultTemplate().finally(this.loadingService.stop);\r\n if (result?.filePath) {\r\n this.excelService.downloadTemplate(result.filePath, `${this.fileName}.xlsx`);\r\n }\r\n }\r\n\r\n generateAndUploadTemplate = async (columns: SdGridColumn[], fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.exportOption?.sheets)) {\r\n for (const sheet of this.exportOption.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.excelService.generateAndUploadExcelTemplate(this.fullKey, {\r\n fileName: fileName || this.fileName,\r\n columns: this.generateExcelColumns(columns),\r\n sheets\r\n });\r\n }\r\n\r\n onExportByTemplate = (excelConfig: ExcelConfig) => {\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n this.exportByTemplate.emit({\r\n excelConfig,\r\n excelColumns: this.generateExcelColumns(columns)\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n uploadTemplate = async () => {\r\n const excelConfig = await this.excelService.uploadTemplate(this.fullKey, this.validator);\r\n this.excelConfigs.push({\r\n name: excelConfig.name,\r\n fullPath: excelConfig.fullPath,\r\n removable: true\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n downloadTemplate = (excelConfig: ExcelConfig) => {\r\n this.excelService.downloadTemplate(excelConfig.fullPath, excelConfig.name);\r\n }\r\n\r\n removeTemplate = (excelConfig: ExcelConfig) => {\r\n this.notifyService.confirm(this.translateService.translate('Remove template')).then(async () => {\r\n this.loadingService.start();\r\n await this.excelService.remove(this.fullKey, excelConfig.name).finally(this.loadingService.stop);\r\n const idx = this.excelConfigs.indexOf(excelConfig);\r\n this.excelConfigs.splice(idx, 1);\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n async loadConfiguration() {\r\n this.excelConfigs = [];\r\n this.excelConfigs = await this.excelService.getFiles(this.fullKey);\r\n }\r\n\r\n exportDefault = async () => {\r\n this.loadingService.start();\r\n const result = await this.initDefaultTemplate().finally(this.loadingService.stop);\r\n const excelColumns: ExcelTempateColumn[] = [];\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n for (const column of columns) {\r\n if (column.type === 'children') {\r\n for (const childColumn of column.children) {\r\n if (childColumn.type !== 'image') {\r\n excelColumns.push({\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n }\r\n }\r\n } else if (column.type !== 'image') {\r\n excelColumns.push({\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n }\r\n }\r\n this.exportByTemplate.emit({\r\n excelConfig: {\r\n fullPath: result.filePath,\r\n name: `[${this.fullKey}] Default.xlsx`\r\n },\r\n excelColumns\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n newTemplate = () => {\r\n this.notifyService.confirmWithInput(this.translateService.translate('Enter your template name'), {\r\n maxlength: 50\r\n }).then(async (fileName: string) => {\r\n this.loadingService.start();\r\n fileName = fileName + '.xlsx';\r\n try {\r\n if (this.validator?.(fileName)) {\r\n this.notifyService.notify.warning(this.validator(fileName));\r\n return;\r\n }\r\n let exportableColumns = this.exportableColumns.filter(column => this.selected[column.field]);\r\n if (!exportableColumns.length) {\r\n exportableColumns = this.exportableColumns;\r\n }\r\n const result = await this.generateAndUploadTemplate(exportableColumns, fileName);\r\n if (result?.filePath) {\r\n const excelConfig: ExcelConfig = {\r\n fullPath: result.filePath,\r\n name: result.fileName,\r\n removable: true\r\n };\r\n this.excelConfigs.push(excelConfig);\r\n this.onExportByTemplate(excelConfig);\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n });\r\n }\r\n\r\n onChangeRadio = (matRadioChange: MatRadioChange) => {\r\n const selectedExcelConfig = this.excelConfigs.find(e => e.name === matRadioChange.value);\r\n if (!selectedExcelConfig) {\r\n this.selectedExcelConfig = {\r\n name: this.newExcelConfig\r\n };\r\n } else {\r\n this.selectedExcelConfig = selectedExcelConfig;\r\n }\r\n this.exportableColumns = [...this.columns, ...(this.extendColumns || [])].filter(e => e.type !== 'image');\r\n this.selected = {};\r\n }\r\n}\r\n","// tslint:disable-next-line:max-line-length\r\nimport { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { SdGridColumn, SdGridExternalFilter, GridBaseOptionFilter } from '../../grid.model';\r\nimport { QuickFilter, FilterConfiguration } from './grid-popup-filter.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdSettingService\r\n} from '@sd-angular/core/setting';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridPopupQuickFilterDetail } from '../grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-filter',\r\n templateUrl: './grid-popup-filter.component.html',\r\n styleUrls: ['./grid-popup-filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SdGridPopupFilter implements OnInit, AfterViewInit {\r\n private keyPrefix = 'PopupFilter';\r\n displayKey = 'SDCUSTOM';\r\n isMobileOrTablet = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('popupQuickFilterDetail') popupQuickFilterDetail: SdGridPopupQuickFilterDetail;\r\n @ViewChild('matSelect') matSelect: MatSelect;\r\n @Input() key = '';\r\n @Input() filterOption: GridBaseOptionFilter;\r\n @Output() accept = new EventEmitter<{ filter: any, externalFilter: any }>();\r\n @Output() clear = new EventEmitter<void>();\r\n @Output() loadInlineFilter = new EventEmitter<FilterConfiguration>();\r\n selectedField: string;\r\n newQuickFilter = 'e1ef1d43-d689-424f-959e-e6cd154cfee7';\r\n filter: any = {};\r\n externalFilter: any = {};\r\n columns: SdGridColumn[] = [];\r\n externalFilters: SdGridExternalFilter[] = [];\r\n quickFilters: QuickFilter[] = [];\r\n selectedCode: string;\r\n maxQuickFilters = 5;\r\n @Input() inlineExternal: {\r\n [key: string]: boolean\r\n } = {};\r\n @Input() inlineColumn: {\r\n [key: string]: boolean\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService,\r\n private settingService: SdSettingService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n this.#loadConfiguration().then(() => {\r\n this.loadInlineFilter.emit({\r\n quickFilters: this.quickFilters || [],\r\n selectedQuickFilter: this.selectedCode || '',\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n open = (\r\n fixedColums: SdGridColumn[],\r\n normalColumns: SdGridColumn[],\r\n filter: any,\r\n externalFilter: any,\r\n externalFilters?: SdGridExternalFilter[]) => {\r\n this.init(fixedColums, normalColumns, filter, externalFilter, externalFilters);\r\n this.modal.open();\r\n }\r\n\r\n init = (\r\n fixedColums: SdGridColumn[],\r\n normalColumns: SdGridColumn[],\r\n filter: any,\r\n externalFilter: any,\r\n externalFilters?: SdGridExternalFilter[]) => {\r\n this.columns = [...fixedColums, ...normalColumns].filter(e => !e.filter?.disabled && e.type !== 'image');\r\n this.columns.forEach(column => {\r\n if (column.type === 'children') {\r\n column.children = column.children.filter(e => !e.filter?.disabled && e.type !== 'image');\r\n }\r\n });\r\n if (externalFilters) {\r\n this.externalFilters = externalFilters.filter(e => !e.disabled);\r\n } else {\r\n this.externalFilters = [];\r\n }\r\n this.filter = filter;\r\n this.externalFilter = this.initExternalFilter(externalFilters, externalFilter);\r\n for (const eFilter of this.externalFilters) {\r\n if (this.inlineExternal[eFilter.field] === undefined) {\r\n this.inlineExternal[eFilter.field] = true;\r\n }\r\n }\r\n for (const column of this.columns) {\r\n if (this.inlineColumn[column.field] === undefined) {\r\n this.inlineColumn[column.field] = true;\r\n }\r\n }\r\n }\r\n\r\n close = () => {\r\n this.modal.close();\r\n }\r\n\r\n onAccept() {\r\n if (this.filterOption?.multiple === false) {\r\n if (this.selectedField) {\r\n if (this.selectedField.startsWith('column')) {\r\n const field = this.selectedField.replace('column', '');\r\n this.accept.emit({\r\n filter: {\r\n [field]: this.filter[field]\r\n },\r\n externalFilter: {}\r\n });\r\n } else if (this.selectedField.startsWith('external')) {\r\n const field = this.selectedField.replace('external', '');\r\n this.accept.emit({\r\n filter: {},\r\n externalFilter: this.initExternalFilter(this.externalFilters, {\r\n [field]: this.externalFilter[field]\r\n })\r\n });\r\n }\r\n }\r\n } else {\r\n this.accept.emit({\r\n filter: this.filter,\r\n externalFilter: this.externalFilter\r\n });\r\n }\r\n this.modal.close();\r\n }\r\n\r\n onClear() {\r\n delete this.selectedCode;\r\n this.clear.emit();\r\n }\r\n\r\n #loadConfiguration = async () => {\r\n this.quickFilters = [];\r\n if (!this.key) {\r\n return;\r\n }\r\n const { get, has } = this.settingService.create<FilterConfiguration>({\r\n prefix: this.keyPrefix,\r\n key: this.key\r\n });\r\n if (!await has()) {\r\n return;\r\n }\r\n const configuration = await get();\r\n if (Array.isArray(configuration?.quickFilters)) {\r\n this.quickFilters = configuration.quickFilters;\r\n }\r\n this.selectedCode = configuration?.selectedQuickFilter || '';\r\n this.inlineExternal = configuration?.inlineExternal || {};\r\n this.inlineColumn = configuration?.inlineColumn || {};\r\n for (const externalFilter of this.externalFilters) {\r\n if (this.inlineExternal[externalFilter.field] === undefined) {\r\n this.inlineExternal[externalFilter.field] = true;\r\n }\r\n }\r\n for (const column of this.columns) {\r\n if (this.inlineColumn[column.field] === undefined) {\r\n this.inlineColumn[column.field] = true;\r\n }\r\n }\r\n }\r\n\r\n async updateConfiguration(selectedQuickFilterCode?: string) {\r\n if (!this.key) {\r\n return;\r\n }\r\n if (selectedQuickFilterCode !== undefined) {\r\n this.selectedCode = selectedQuickFilterCode;\r\n }\r\n const { set } = this.settingService.create<FilterConfiguration>({\r\n prefix: this.keyPrefix,\r\n key: this.key\r\n });\r\n await set({\r\n quickFilters: this.quickFilters,\r\n selectedQuickFilter: this.selectedCode,\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n this.loadInlineFilter.emit({\r\n quickFilters: this.quickFilters || [],\r\n selectedQuickFilter: this.selectedCode || '',\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n const value = change?.value || '';\r\n if (value === this.newQuickFilter) {\r\n this.selectedCode = '';\r\n this.onCreateQuickFilter();\r\n this.ref.detectChanges();\r\n } else {\r\n const quickFilter = this.quickFilters.find(e => e.code === value);\r\n if (quickFilter) {\r\n this.onDetailQuickFilter(quickFilter);\r\n }\r\n }\r\n }\r\n\r\n onCreateQuickFilter = (ev?: Event) => {\r\n ev?.stopPropagation();\r\n ev?.preventDefault();\r\n this.matSelect?.close();\r\n this.popupQuickFilterDetail.open(this.columns, this.externalFilters);\r\n }\r\n\r\n onDetailQuickFilter = async (quickFilter?: QuickFilter) => {\r\n if (quickFilter) {\r\n this.selectedCode = quickFilter.code;\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.initExternalFilter(this.externalFilters, JSON.parse(f2));\r\n await this.updateConfiguration();\r\n }\r\n }\r\n\r\n onEditQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.matSelect?.close();\r\n if (quickFilter) {\r\n this.popupQuickFilterDetail.open(this.columns,\r\n this.externalFilters,\r\n quickFilter.filter,\r\n quickFilter.externalFilter,\r\n quickFilter.code);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n onDeleteQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.matSelect?.close();\r\n if (quickFilter) {\r\n this.notifyService.confirm(this.translateService.translate('Remove filter')).then(async () => {\r\n if (quickFilter.code === this.selectedCode) {\r\n this.selectedCode = '';\r\n }\r\n const idx = this.quickFilters.findIndex(e => e.code === quickFilter.code);\r\n this.quickFilters.splice(idx, 1);\r\n await this.updateConfiguration();\r\n this.ref.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n onAcceptQuickFilter = async (args: { code: string, filter: any, externalFilter: any }) => {\r\n const quickFilter = this.quickFilters.find(e => e.code === args.code);\r\n if (!quickFilter) {\r\n this.quickFilters.push({\r\n code: args.code,\r\n filter: args.filter,\r\n externalFilter: this.initExternalFilter(this.externalFilters, args.externalFilter)\r\n });\r\n } else {\r\n quickFilter.filter = args.filter;\r\n quickFilter.externalFilter = this.initExternalFilter(this.externalFilters, args.externalFilter);\r\n }\r\n await this.updateConfiguration();\r\n }\r\n\r\n onInlineChange = () => {\r\n this.updateConfiguration();\r\n }\r\n\r\n private initExternalFilter = (externalFilters: SdGridExternalFilter[], externalFilter: any) => {\r\n externalFilter = externalFilter || {};\r\n externalFilters = externalFilters || [];\r\n externalFilters.forEach(e => {\r\n if (e.type === 'string') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? '';\r\n return;\r\n }\r\n if (e.type === 'number') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? undefined;\r\n return;\r\n }\r\n if (e.type === 'daterange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'numberrange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'daterangefull') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'values') { // andn1\r\n externalFilter[e.field] = (externalFilter[e.field] || e.default) ?? '';\r\n return;\r\n }\r\n });\r\n return externalFilter;\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input } from '@angular/core';\r\nimport { SdGridColumn, SdGridExternalFilter } from '../../grid.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { QuickFilter } from '../grid-popup-filter/grid-popup-filter.model';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-quick-filter-detail',\r\n templateUrl: './grid-popup-quick-filter-detail.component.html',\r\n styleUrls: ['./grid-popup-quick-filter-detail.component.scss']\r\n})\r\nexport class SdGridPopupQuickFilterDetail implements OnInit, AfterViewInit {\r\n displayKey = 'SDCUSTOM';\r\n isMobileOrTablet = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @Input() quickFilters: QuickFilter[];\r\n @Output() accept = new EventEmitter<any>();\r\n fields: Field[] = [];\r\n selectableFields: Field[] = [];\r\n columns: SdGridColumn[] = [];\r\n externalFilters: SdGridExternalFilter[] = [];\r\n filter: Filter = {};\r\n externalFilter: Filter = {};\r\n selectedField: {\r\n [key: string]: boolean;\r\n } = {};\r\n page: 1 | 2 = 1;\r\n code: string;\r\n constructor(\r\n deviceService: DeviceDetectorService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n open(columns: SdGridColumn[], externalFilters: SdGridExternalFilter[], filter?: Filter, externalFilter?: Filter, code?: string) {\r\n this.fields = [];\r\n this.filter = {};\r\n this.externalFilter = {};\r\n this.columns = columns;\r\n this.externalFilters = externalFilters;\r\n this.code = code;\r\n if (filter) {\r\n Object.keys(filter).forEach(key => {\r\n if (filter[key] === undefined || filter[key] === null || filter[key] === '') {\r\n return;\r\n }\r\n const column = columns.find(e => e.field === key);\r\n if (!column) {\r\n return;\r\n }\r\n this.filter[key] = filter[key];\r\n this.fields.push({\r\n ...column,\r\n id: 'column' + column.field,\r\n group: 'column',\r\n type: column.type,\r\n code: column.field,\r\n title: column.title\r\n });\r\n });\r\n }\r\n if (externalFilter) {\r\n Object.keys(externalFilter).forEach(key => {\r\n if (externalFilter[key] === undefined || externalFilter[key] === null || externalFilter[key] === '') {\r\n return;\r\n }\r\n if (key.startsWith(this.displayKey)) {\r\n this.externalFilter[key] = externalFilter[key];\r\n return;\r\n }\r\n const item = externalFilters.find(e => e.field === key);\r\n if (!item) {\r\n return;\r\n }\r\n if (item.type === 'daterange' || item.type === 'numberrange') {\r\n this.externalFilter[key] = { ...externalFilter[key] };\r\n if (!externalFilter[key]?.from && !externalFilter[key]?.to) {\r\n return;\r\n }\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title,\r\n fromTitle: item.fromTitle,\r\n toTitle: item.toTitle,\r\n });\r\n } else if (item.type === 'daterangefull') {\r\n this.externalFilter[key] = { ...externalFilter[key] };\r\n if (!externalFilter[key]?.from && !externalFilter[key]?.to) {\r\n return;\r\n }\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title\r\n });\r\n } else {\r\n this.externalFilter[key] = externalFilter[key];\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title\r\n });\r\n }\r\n });\r\n }\r\n const externalFields: Field[] = externalFilters?.map(e => ({\r\n ...e,\r\n id: 'external' + e.field,\r\n group: 'external',\r\n code: e.field,\r\n type: e.type,\r\n title: e.title\r\n })) || [];\r\n const columnFields: Field[] = [];\r\n columns?.filter(e => e.type !== 'image').forEach(column => {\r\n if ('children' in column) {\r\n column.children?.filter(e => e.type !== 'image').forEach(e => {\r\n columnFields.push({\r\n ...e,\r\n id: 'column' + e.field,\r\n group: 'column',\r\n code: e.field,\r\n type: e.type,\r\n title: e.title\r\n });\r\n });\r\n } else {\r\n columnFields.push({\r\n ...column,\r\n id: 'column' + column.field,\r\n group: 'column',\r\n code: column.field,\r\n type: column.type,\r\n title: column.title\r\n });\r\n }\r\n });\r\n this.selectableFields = [...externalFields, ...columnFields];\r\n this.selectedField = {};\r\n this.fields.forEach(e => this.selectedField[e.id] = true);\r\n this.page = this.fields.length > 0 ? 2 : 1;\r\n this.modal.open();\r\n }\r\n\r\n onAccept = () => {\r\n const execute = () => {\r\n const filter = {};\r\n const externalFilter = {};\r\n Object.keys(this.filter).forEach(key => {\r\n if (this.filter[key] === undefined || this.filter[key] === null || this.filter[key] === '') {\r\n return;\r\n }\r\n if (!this.fields.some(e => e.group === 'column' && e.code === key)) {\r\n return;\r\n }\r\n filter[key] = this.filter[key];\r\n });\r\n Object.keys(this.externalFilter).forEach(key => {\r\n if (this.externalFilter[key] === undefined || this.externalFilter[key] === null || this.externalFilter[key] === '') {\r\n return;\r\n }\r\n externalFilter[key] = this.externalFilter[key];\r\n });\r\n this.accept.emit({\r\n code: this.code,\r\n filter,\r\n externalFilter\r\n });\r\n this.modal.close();\r\n };\r\n if (!this.code) {\r\n this.notifyService.confirmWithInput('Enter your quick filter name').then((value: string) => {\r\n if (value) {\r\n if (this.quickFilters?.some(e => e.code === value)) {\r\n this.notifyService.notify.warning(this.translateService.translate('Code is existed'));\r\n return;\r\n }\r\n this.code = value;\r\n execute();\r\n }\r\n });\r\n } else {\r\n execute();\r\n }\r\n }\r\n\r\n onCancel = () => {\r\n this.modal.close();\r\n }\r\n\r\n onSelectField = (values: string[]) => {\r\n this.fields = this.selectableFields.filter(e => values.some(v => e.code === v));\r\n for (const field of this.fields) {\r\n if (field.group === 'external' && field.type.includes('range')) {\r\n this.externalFilter[field.code] = this.externalFilter[field.code] || {};\r\n }\r\n }\r\n }\r\n\r\n onSelectFields = () => {\r\n this.fields = this.selectableFields.filter(e => this.selectedField[e.id]);\r\n for (const field of this.fields) {\r\n if (field.group === 'external' && field.type.includes('range')) {\r\n this.externalFilter[field.code] = this.externalFilter[field.code] || {};\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface Field {\r\n id: string;\r\n group: 'column' | 'external';\r\n type: string;\r\n code: string;\r\n title?: string;\r\n fromTitle?: string;\r\n toTitle?: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface Filter {\r\n [field: string]: any;\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { SubOption } from '../../grid.model';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n@Component({\r\n selector: 'sd-grid-sub-information',\r\n templateUrl: './grid-sub-information.component.html',\r\n styleUrls: ['./grid-sub-information.component.scss']\r\n})\r\nexport class SdGridSubInformation implements OnInit, AfterViewInit {\r\n @Input() height = 'auto';\r\n @Input() option: SubOption;\r\n @Input() subItems: any[] = [];\r\n isMobileOrTablet: boolean;\r\n filter: any = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n updateFilter() {\r\n\r\n }\r\n trackById(index, item) {\r\n return item.id;\r\n }\r\n\r\n onEditorChange = () => {\r\n this.ref.detectChanges();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { GridItem, GridColumnChildren } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-children-view',\r\n templateUrl: './grid-desktop-column-children-view.component.html',\r\n styleUrls: ['./grid-desktop-column-children-view.component.scss']\r\n})\r\nexport class GridDesktopColumnChildrenViewComponent {\r\n @Input() column: GridColumnChildren;\r\n @Input() item: GridItem;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n@Pipe({\r\n name: 'cellDesktopClassName'\r\n})\r\nexport class CellDesktopClassNamePipe implements PipeTransform {\r\n transform(value: any, rowData: GridItem, column: SdGridColumn, isChildren?: boolean): string {\r\n const classNames = [];\r\n if (column.click) {\r\n classNames.push('cursor-pointer');\r\n }\r\n if (isChildren) {\r\n classNames.push('c-children');\r\n }\r\n if (column.badge) {\r\n const badge = column.badge(rowData, value);\r\n if (badge) {\r\n classNames.push('c-badge');\r\n classNames.push('badge');\r\n if (badge === 'PRIMARY') {\r\n classNames.push('badge-primary');\r\n } else if (badge === 'SECONDARY') {\r\n classNames.push('badge-secondary');\r\n } else if (badge === 'WARNING') {\r\n classNames.push('badge-warning');\r\n } else if (badge === 'SUCCESS') {\r\n classNames.push('badge-success');\r\n } else if (badge === 'DANGER') {\r\n classNames.push('badge-danger');\r\n } else if (badge === 'LIGHT') {\r\n classNames.push('badge-light');\r\n } else if (badge === 'DARK') {\r\n classNames.push('badge-dark');\r\n }\r\n }\r\n }\r\n return classNames.join(' ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'cellMobileClassName'\r\n})\r\nexport class CellMobileClassNamePipe implements PipeTransform {\r\n transform(value: any, rowData: GridItem, column: SdGridColumn): string {\r\n const classNames = [];\r\n if (column.click) {\r\n classNames.push('cursor-pointer');\r\n }\r\n if (column.badge) {\r\n const badge = column.badge(rowData, value);\r\n if (badge) {\r\n classNames.push('badge');\r\n classNames.push('c-badge');\r\n if (badge === 'PRIMARY') {\r\n classNames.push('badge-primary');\r\n } else if (badge === 'SECONDARY') {\r\n classNames.push('badge-secondary');\r\n } else if (badge === 'WARNING') {\r\n classNames.push('badge-warning');\r\n } else if (badge === 'SUCCESS') {\r\n classNames.push('badge-success');\r\n } else if (badge === 'DANGER') {\r\n classNames.push('badge-danger');\r\n } else if (badge === 'LIGHT') {\r\n classNames.push('badge-light');\r\n } else if (badge === 'DARK') {\r\n classNames.push('badge-dark');\r\n }\r\n }\r\n }\r\n return classNames.join(' ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, ColumnCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'columnCommandFilter'\r\n})\r\nexport class ColumnCommandFilterPipe implements PipeTransform {\r\n async transform(commands: ColumnCommand[], item: GridItem): Promise<ColumnCommand[]> {\r\n const results: ColumnCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n@Pipe({\r\n name: 'columnHtmlTemplate'\r\n})\r\nexport class ColumnHtmlTemplatePipe implements PipeTransform {\r\n private isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(value: any, rowData: GridItem, htmlTemplate: (value: any, rowData?: any, isMobileOrTablet?: boolean) => string): string {\r\n if (typeof (htmlTemplate) !== 'function') {\r\n return value;\r\n }\r\n return htmlTemplate(value, rowData, this.isMobileOrTablet);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'columnTitle'\r\n})\r\nexport class ColumnTitlePipe implements PipeTransform {\r\n async transform(item: GridItem, title: string, dynamicTitle: ((rowData: any) => string | Promise<string>)): Promise<string> {\r\n if (!title) {\r\n return '';\r\n }\r\n if (dynamicTitle) {\r\n const result = dynamicTitle(item);\r\n if (result instanceof Promise) {\r\n return (await result) || title;\r\n }\r\n return result || title;\r\n }\r\n return title;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\n@Pipe({\r\n name: 'columnValues'\r\n})\r\nexport class ColumnValuesPipe implements PipeTransform {\r\n private static cache: {\r\n [key: string]: {\r\n values: ValueData[],\r\n obj: {\r\n [key: string]: ValueData\r\n }\r\n }\r\n } = {};\r\n constructor(private utilityService: SdUtilityService) { }\r\n transform(value: any, values: ValueData[]): ValueData {\r\n const hashKey = hash(values);\r\n if (!ColumnValuesPipe.cache[hashKey]) {\r\n ColumnValuesPipe.cache[hashKey] = {\r\n values,\r\n obj: this.utilityService.arrayToObject(values, 'value')\r\n };\r\n }\r\n if (!ColumnValuesPipe.cache[hashKey].obj[value]) {\r\n return {\r\n value,\r\n text: value\r\n };\r\n }\r\n return ColumnValuesPipe.cache[hashKey].obj[value];\r\n\r\n }\r\n}\r\n\r\ninterface ValueData {\r\n value: string;\r\n text: string;\r\n icon?: string;\r\n color?: string;\r\n backgroundColor?: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandDisabled'\r\n})\r\nexport class CommandDisabledPipe implements PipeTransform {\r\n transform(disabled: boolean | ((item?: any) => boolean), item: GridItem): boolean {\r\n if (!disabled) {\r\n return false;\r\n }\r\n if (typeof (disabled) === 'boolean') {\r\n return disabled;\r\n }\r\n return disabled(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand, GridCommandNoChildren } from '../grid.model';\r\n@Pipe({\r\n name: 'commandFilter'\r\n})\r\nexport class CommandFilterPipe implements PipeTransform {\r\n async transform(commands: SdGridCommand[], item: GridItem): Promise<SdGridCommand[]> {\r\n const results: SdGridCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n if ('children' in command) {\r\n let flag = true;\r\n const { hiddenByItem } = command;\r\n if (hiddenByItem) {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (await hidden) {\r\n flag = false;\r\n }\r\n } else {\r\n if (hidden) {\r\n flag = false;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n const children: GridCommandNoChildren[] = [];\r\n for (const childCommand of command.children) {\r\n if (!childCommand.hiddenByItem) {\r\n children.push(childCommand);\r\n } else {\r\n const hidden = childCommand.hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n if (!hidden) {\r\n children.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n if (children.length) {\r\n results.push({\r\n ...command,\r\n children\r\n });\r\n }\r\n }\r\n } else {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'commandHidden'\r\n})\r\nexport class CommandHidden implements PipeTransform {\r\n async transform(item: GridItem, command: SdGridCommand): Promise<boolean> {\r\n const { hidden, hiddenByItem } = command;\r\n if (hidden) {\r\n return true;\r\n }\r\n if (hiddenByItem) {\r\n const hiddenResult = hiddenByItem(item);\r\n if (hiddenResult instanceof Promise) {\r\n if (await hiddenResult) {\r\n return true;\r\n }\r\n } else {\r\n if (hiddenResult) {\r\n return true;\r\n }\r\n }\r\n }\r\n if ('children' in command) {\r\n const results = [];\r\n for (const childCommand of command.children) {\r\n const { hidden: childHidden, hiddenByItem: childHiddenByItem } = childCommand;\r\n if (!childHidden && !childHiddenByItem) {\r\n results.push(childCommand);\r\n } else {\r\n if (childHiddenByItem) {\r\n const hiddenResult = childHiddenByItem(item);\r\n if (hiddenResult instanceof Promise) {\r\n if (!await hiddenResult) {\r\n results.push(childCommand);\r\n }\r\n } else {\r\n if (!hiddenResult) {\r\n results.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (results.length === 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandIcon'\r\n})\r\nexport class CommandIconPipe implements PipeTransform {\r\n transform(icon: string | ((item?: any) => string), item: GridItem): string {\r\n if (!icon) {\r\n return '';\r\n }\r\n if (typeof (icon) === 'string') {\r\n return icon;\r\n }\r\n return icon(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandTitle'\r\n})\r\nexport class CommandTitlePipe implements PipeTransform {\r\n transform(title: string | ((item?: any) => string), item: GridItem): string {\r\n if (!title) {\r\n return '';\r\n }\r\n if (typeof (title) === 'string') {\r\n return title;\r\n }\r\n return title(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, DynamicEditorItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorDynamicItem'\r\n})\r\nexport class EditorDynamicItemPipe implements PipeTransform {\r\n private previous: Date;\r\n private previousResults: any[] = [];\r\n private delay = 200; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n async transform(value: any, item: GridItem, editor: DynamicEditorItem) {\r\n if (!editor.dependOnField) {\r\n return editor.items || [];\r\n }\r\n this.previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.previous.getTime();\r\n if (dif < this.delay) {\r\n return this.previousResults;\r\n }\r\n const items = editor.items || [];\r\n if (typeof (items) === 'function') {\r\n const results = items(item, value);\r\n if (results instanceof Promise) {\r\n this.previousResults = await results;\r\n } else {\r\n this.previousResults = results;\r\n }\r\n } else {\r\n this.previousResults = items;\r\n }\r\n this.previousResults = this.previousResults || [];\r\n return this.previousResults;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorSubInformationHandler'\r\n})\r\nexport class EditorSubInformationHandlerPipe implements PipeTransform {\r\n transform(value: any, item: GridItem, columns: SdGridColumn[]): boolean {\r\n const visible = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n let isDisabled = false;\r\n\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (column.editor) {\r\n isDisabled = typeof (column.editor.disabled) === 'function' ? column.editor.disabled(item) : column.editor.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n // Hiển thị editor nếu dòng đó:\r\n // Đang được edit: editingStatus\r\n return item.editingStatus\r\n // Được thiết lập alwayDisplay\r\n || (column.editor && column.editor.alwayDisplay);\r\n };\r\n item.editorHandler = item.editorHandler || {};\r\n for (const column of columns) {\r\n item.editorHandler.disabled = false;\r\n item.editorHandler[column.field] = {};\r\n\r\n if (item.editorHandler.disabled) {\r\n item.editorHandler[column.field].visible = false;\r\n } else {\r\n item.editorHandler[column.field].visible = visible(column);\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorValidate'\r\n})\r\nexport class EditorValidatePipe implements PipeTransform {\r\n private previous: Date;\r\n private delay = 1000; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện validate\r\n async transform(value: string, item: GridItem, validate: (item: GridItem) => string | Promise<string>): Promise<boolean> {\r\n this.previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.previous.getTime();\r\n if (dif < this.delay) {\r\n return true;\r\n }\r\n item.editorHandler = item.editorHandler || {};\r\n if (!validate) {\r\n item.editorHandler.errorMessage = null;\r\n return true;\r\n }\r\n const result = validate(item);\r\n if (result instanceof Promise) {\r\n item.editorHandler.errorMessage = await result;\r\n return true;\r\n } else {\r\n item.editorHandler.errorMessage = result;\r\n return true;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'filterMobile',\r\n pure: false\r\n})\r\nexport class FilterMobilePipe implements PipeTransform {\r\n transform(columns: SdGridColumn[], item: GridItem): SdGridColumn[] {\r\n // Những giá trị undefined, null và rỗng sẽ bỏ qua khi hiển thị trên mobile\r\n return columns.filter(column => (item[column.field] !== undefined\r\n && item[column.field] !== null\r\n && item[column.field] !== '')\r\n || column.htmlTemplate\r\n || column.type === 'children'\r\n || (column.type === 'string' && column.commands?.length > 0));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'mobileCommandFilter'\r\n})\r\nexport class MobileCommandFilterPipe implements PipeTransform {\r\n async transform(commands: SdGridCommand[], item: GridItem): Promise<SdGridCommand[]> {\r\n const results: SdGridCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n if ('children' in command) {\r\n let flag = true;\r\n const { hiddenByItem } = command;\r\n if (hiddenByItem) {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (await hidden) {\r\n flag = false;\r\n }\r\n } else {\r\n if (hidden) {\r\n flag = false;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n for (const childCommand of command.children) {\r\n if (!childCommand.hiddenByItem) {\r\n results.push(childCommand);\r\n } else {\r\n const hidden = childCommand.hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(childCommand);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'mobileViewHtmlTempate'\r\n})\r\nexport class MobileViewHtmlTemplatePipe implements PipeTransform {\r\n transform(rowData: GridItem, columns: SdGridColumn[], htmlTemplate: (rowData: any, columns?: SdGridColumn[]) => string): string {\r\n return htmlTemplate(rowData, columns);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\nimport { DecimalPipe } from '@angular/common';\r\n@Pipe({\r\n name: 'valueTransform'\r\n})\r\nexport class ValueTransformPipe implements PipeTransform {\r\n constructor(private decimalPipe: DecimalPipe) {}\r\n transform(value: any, rowData: GridItem, column: SdGridColumn): string {\r\n if (column.transform) {\r\n return column.transform(value, rowData);\r\n } else if (column.type === 'number' && Number.isNumber(value)) {\r\n return this.decimalPipe.transform(value, '1.0-2');\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorPopupVisible'\r\n})\r\nexport class EditorPopupVisiblePipe implements PipeTransform {\r\n transform(column: SdGridColumn, item: GridItem): boolean {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n if (typeof (column.editor?.hidden) === 'boolean' && column.editor.hidden) {\r\n return false;\r\n }\r\n if (typeof (column.editor?.hidden) === 'function' && column.editor.hidden(item)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSubHeaderDef]'\r\n})\r\nexport class SdSubHeaderDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { SdUploadExcel, SdUploadExcelColumn, SdUploadExcelOption } from '@sd-angular/core/upload-excel';\r\nimport { SdGridColumn } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-import-excel',\r\n templateUrl: './grid-import-excel.component.html'\r\n})\r\nexport class SdGridImportExcel {\r\n @Input() key: string;\r\n @Input() accept: (item: any[], successItems: any[], errorItems: any[], warningItems: []) => void | Promise<void>;\r\n @Input() set columns(gridColumns: SdGridColumn[]) {\r\n const columns: SdUploadExcelColumn[] = [];\r\n gridColumns.forEach(column => {\r\n if (column.ignoreImport) {\r\n return;\r\n }\r\n if (column.type === 'string' || column.type === 'color') {\r\n columns.push({\r\n type: 'string',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'number') {\r\n columns.push({\r\n type: 'number',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'bool') {\r\n columns.push({\r\n type: 'bool',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'date') {\r\n columns.push({\r\n type: 'date',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'datetime' || column.type === 'time') {\r\n columns.push({\r\n type: 'datetime',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'values') {\r\n columns.push({\r\n type: 'values',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n values: column.values.map(e => e.value),\r\n });\r\n } else if (column.type === 'radio') {\r\n columns.push({\r\n type: 'radio',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n values: column.values.map(e => e[column.valueField])\r\n });\r\n }\r\n if (column.type === 'children' && column.children?.length) {\r\n column.children.forEach(childColumn => {\r\n if (childColumn.ignoreImport) {\r\n return;\r\n }\r\n if (childColumn.type === 'string' || childColumn.type === 'color') {\r\n columns.push({\r\n type: 'string',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'number') {\r\n columns.push({\r\n type: 'number',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'bool') {\r\n columns.push({\r\n type: 'bool',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'date') {\r\n columns.push({\r\n type: 'date',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'datetime' || childColumn.type === 'time') {\r\n columns.push({\r\n type: 'datetime',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'values') {\r\n columns.push({\r\n type: 'values',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width,\r\n values: childColumn.values.map(e => e.value),\r\n });\r\n } else if (childColumn.type === 'radio') {\r\n columns.push({\r\n type: 'radio',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width,\r\n values: childColumn.values.map(e => e[childColumn.valueField])\r\n });\r\n }\r\n });\r\n }\r\n });\r\n this.option = {\r\n key: `GridImport${this.key}`,\r\n columns,\r\n onAccept: this.accept\r\n };\r\n }\r\n option: SdUploadExcelOption;\r\n @ViewChild(SdUploadExcel) control: SdUploadExcel;\r\n constructor() { }\r\n\r\n open = () => {\r\n this.control?.open();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdGrid } from './grid.component';\r\nimport { SdDynamicItems } from './pipes/dynamic-items.pipe';\r\nimport { SdGridConfig } from './components/grid-config/grid-config.component';\r\nimport { SdGridDesktopColumnEdit } from './components/grid-desktop-column-edit/grid-desktop-column-edit.component';\r\nimport { SdGridDesktopColumnView } from './components/grid-desktop-column-view/grid-desktop-column-view.component';\r\nimport { SdGridDesktopInlineFilter } from './components/grid-desktop-inline-filter/grid-desktop-inline-filter.component';\r\nimport { SdGridMobileItemView } from './components/grid-mobile-item-view/grid-mobile-item-view.component';\r\nimport { SdGridPopupEditor } from './components/grid-popup-editor/grid-popup-editor.component';\r\nimport { SdGridPopupExportExcel } from './components/grid-popup-export-excel/grid-popup-export-excel.component';\r\nimport { SdGridPopupFilter } from './components/grid-popup-filter/grid-popup-filter.component';\r\nimport { SdGridPopupQuickFilterDetail } from './components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component';\r\nimport { SdGridSubInformation } from './components/grid-sub-information/grid-sub-information.component';\r\nimport { GridDesktopColumnChildrenViewComponent } from './components/grid-desktop-column-children-view/grid-desktop-column-children-view.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CellDesktopClassNamePipe } from './pipes/cell-desktop-class-name.pipe';\r\nimport { CellMobileClassNamePipe } from './pipes/cell-mobile-class-name.pipe';\r\nimport { ColumnCommandFilterPipe } from './pipes/column-command-filter.pipe';\r\nimport { ColumnHtmlTemplatePipe } from './pipes/column-html-template.pipe';\r\nimport { ColumnTitlePipe } from './pipes/column-title.pipe';\r\nimport { ColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { CommandDisabledPipe } from './pipes/command-disabled.pipe';\r\nimport { CommandFilterPipe } from './pipes/command-filter.pipe';\r\nimport { CommandHidden } from './pipes/command-hidden.pipe';\r\nimport { CommandIconPipe } from './pipes/command-icon.pipe';\r\nimport { CommandTitlePipe } from './pipes/command-title.pipe';\r\nimport { EditorDynamicItemPipe } from './pipes/editor-dynamic-item.pipe';\r\nimport { EditorHandlerPipe } from './pipes/editor-handler.pipe';\r\nimport { EditorSubInformationHandlerPipe } from './pipes/editor-sub-information-handler.pipe';\r\nimport { EditorValidatePipe } from './pipes/editor-validate.pipe';\r\nimport { FilterMobilePipe } from './pipes/filter-mobile.pipe';\r\nimport { MobileCommandFilterPipe } from './pipes/mobile-command-filter';\r\nimport { MobileViewHtmlTemplatePipe } from './pipes/mobile-view-html-template.pipe';\r\nimport { ValueTransformPipe } from './pipes/value-transform.pipe';\r\nimport { EditorPopupVisiblePipe } from './pipes/editor-popup-visible.pipe';\r\nimport { SdCellDefDirective } from './directives/cell-def.directive';\r\nimport { SdCellEditorDefDirective } from './directives/cell-editor-def.directive';\r\nimport { SdCellFooterDevDirective } from './directives/cell-footer-def.directive';\r\nimport { SdSubHeaderDefDirective } from './directives/sub-information-header-def.directive';\r\nimport { SdGridImportExcel } from './components/grid-import-excel/grid-import-excel.component';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { HandlerLocal } from './models/handler-local';\r\nimport { HandlerDotnet } from './models/handler-dotnet';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SdUploadExcelModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n SdGrid,\r\n SdGridConfig,\r\n SdGridDesktopColumnEdit,\r\n SdGridDesktopColumnView,\r\n SdGridDesktopInlineFilter,\r\n SdGridMobileItemView,\r\n SdGridPopupEditor,\r\n SdGridPopupExportExcel,\r\n SdGridPopupFilter,\r\n SdGridPopupQuickFilterDetail,\r\n SdGridSubInformation,\r\n SdGridImportExcel,\r\n\r\n GridDesktopColumnChildrenViewComponent,\r\n CellDesktopClassNamePipe,\r\n CellMobileClassNamePipe,\r\n ColumnCommandFilterPipe,\r\n ColumnHtmlTemplatePipe,\r\n ColumnTitlePipe,\r\n ColumnValuesPipe,\r\n CommandDisabledPipe,\r\n CommandFilterPipe,\r\n CommandHidden,\r\n CommandIconPipe,\r\n CommandTitlePipe,\r\n SdDynamicItems,\r\n EditorDynamicItemPipe,\r\n EditorHandlerPipe,\r\n EditorSubInformationHandlerPipe,\r\n EditorValidatePipe,\r\n FilterMobilePipe,\r\n MobileCommandFilterPipe,\r\n MobileViewHtmlTemplatePipe,\r\n ValueTransformPipe,\r\n EditorPopupVisiblePipe,\r\n\r\n SdCellDefDirective,\r\n SdCellEditorDefDirective,\r\n SdCellFooterDevDirective,\r\n SdSubHeaderDefDirective,\r\n ],\r\n exports: [\r\n SdGrid,\r\n SdCellDefDirective,\r\n SdCellEditorDefDirective,\r\n SdCellFooterDevDirective,\r\n SdSubHeaderDefDirective,\r\n ],\r\n providers: [\r\n HandlerLocal,\r\n HandlerDotnet,\r\n EditorHandlerPipe\r\n ]\r\n})\r\nexport class SdGridModule {\r\n}\r\n","export class QuickFilter {\r\n code: string;\r\n filter: {\r\n [field: string]: any\r\n };\r\n externalFilter: {\r\n [field: string]: any\r\n };\r\n}\r\n\r\nexport interface FilterConfiguration {\r\n selectedQuickFilter: string;\r\n quickFilters: QuickFilter[];\r\n inlineExternal: {\r\n [key: string]: boolean;\r\n };\r\n inlineColumn: {\r\n [key: string]: boolean;\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-grid.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/grid/src/lib/grid.model.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-handler.pipe.ts","../../../../projects/sd-core/grid/src/lib/models/grid-configuration.model.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-def.directive.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-footer-def.directive.ts","../../../../projects/sd-core/grid/src/lib/directives/cell-editor-def.directive.ts","../../../../projects/sd-core/grid/src/lib/models/handler-local.ts","../../../../projects/sd-core/grid/src/lib/models/handler-dotnet.ts","../../../../projects/sd-core/grid/src/lib/grid.component.ts","../../../../projects/sd-core/grid/src/lib/pipes/dynamic-items.pipe.ts","../../../../projects/sd-core/grid/src/lib/components/grid-config/grid-config.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-edit/grid-desktop-column-edit.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-view/grid-desktop-column-view.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-mobile-item-view/grid-mobile-item-view.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-sub-information/grid-sub-information.component.ts","../../../../projects/sd-core/grid/src/lib/components/grid-desktop-column-children-view/grid-desktop-column-children-view.component.ts","../../../../projects/sd-core/grid/src/lib/pipes/cell-desktop-class-name.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/cell-mobile-class-name.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-command-filter.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-html-template.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-title.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/column-values.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-disabled.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-filter.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-hidden.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-icon.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/command-title.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-dynamic-item.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-sub-information-handler.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-validate.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/filter-mobile.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/mobile-command-filter.ts","../../../../projects/sd-core/grid/src/lib/pipes/mobile-view-html-template.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/value-transform.pipe.ts","../../../../projects/sd-core/grid/src/lib/pipes/editor-popup-visible.pipe.ts","../../../../projects/sd-core/grid/src/lib/directives/sub-information-header-def.directive.ts","../../../../projects/sd-core/grid/src/lib/components/grid-import-excel/grid-import-excel.component.ts","../../../../projects/sd-core/grid/src/lib/grid.module.ts","../../../../projects/sd-core/grid/src/lib/components/grid-popup-filter/grid-popup-filter.model.ts","../../../../projects/sd-core/grid/sd-angular-core-grid.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { IHandlerServer } from './models/handler';\r\nimport { Observable } from 'rxjs';\r\nimport { SdGridFilterInfo } from './models/filter-info.model';\r\n\r\nexport declare type SdGridOption =\r\n GridLocalOption |\r\n GridDotnetOption |\r\n GridCustomOption;\r\n\r\nexport declare type SdGridCommand = GridCommandNoChildren | GridCommandWithChildren;\r\n\r\nexport declare type SdGridColumn =\r\n GridColumnText |\r\n GridColumnColor |\r\n GridColumnNumber |\r\n GridColumnBool |\r\n GridColumnDate |\r\n GridColumnDateTime |\r\n GridColumnTime |\r\n GridColumnValues |\r\n GridColumnRadio |\r\n GridColumnImage |\r\n GridColumnChildren;\r\n\r\nexport declare type SdGridExternalFilter =\r\n GridExternalFilterText |\r\n GridExternalFilterDate |\r\n GridExternalFilterDateRange |\r\n GridExternalFilterDateRangeFull |\r\n GridExternalFilterNumber |\r\n GridExternalFilterNumberRange |\r\n GridExternalFilterValues |\r\n GridExternalFilterRadio |\r\n GridExternalFilterBool |\r\n GridExternalFilterCustom;\r\n\r\nexport const defaultGridOption: SdGridOption = {\r\n type: undefined,\r\n items: [],\r\n filter: {\r\n type: 'inline',\r\n disabled: false\r\n },\r\n sortable: true,\r\n paginate: {\r\n pageSize: 50,\r\n pageCount: 5\r\n },\r\n commands: [],\r\n columns: []\r\n};\r\n\r\nexport interface SdGridBaseOption {\r\n height?: string;\r\n key?: string;\r\n filter?: GridBaseOptionFilter;\r\n checkable?: boolean;\r\n sortable?: boolean;\r\n numberable?: boolean;\r\n editor?: {\r\n type?: 'focus' | 'inline' | 'popup',\r\n addable?: boolean;\r\n editable?: boolean;\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n limit?: number;\r\n onAdd?: (rowData: any) => void,\r\n onEdit?: (rowData: any) => void,\r\n onSave?: (rowData: any) => void | Promise<void>,\r\n validate?: (rowData: any) => string | Promise<string>\r\n };\r\n paginate?: {\r\n pageSize?: number,\r\n pageCount?: number\r\n };\r\n export?: GridBaseOptionExport;\r\n translate?: boolean;\r\n hideFooter?: boolean;\r\n hideReload?: boolean;\r\n commands?: SdGridCommand[];\r\n columns: SdGridColumn[];\r\n subInformation?: SubOption;\r\n mobileOrTablet?: {\r\n useGridView?: boolean;\r\n htmlTemplate?: (rowData: any, columns?: SdGridColumn[]) => string;\r\n };\r\n // events\r\n onClickRow?: (rowData: any) => void;\r\n onDblClickRow?: (rowData: any) => void;\r\n onCheck?: (items: any[], rowData?: any) => void;\r\n onImportExcel?: (items: any[]) => void;\r\n onReloadCompleted?: (items: any[]) => Promise<void> | void;\r\n}\r\n\r\nexport interface GridBaseOptionExport {\r\n disabled?: boolean;\r\n fileName?: string;\r\n validator?: (fileName: string) => string;\r\n items?: (filterInfo: SdGridFilterInfo) => Promise<any[]>;\r\n mapping?: (items: any[], fileName?: string) => any[] | Promise<any[]>;\r\n columns?: SdGridColumn[];\r\n bigExport?: boolean;\r\n sheets?: {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface GridBaseOptionFilter {\r\n type?: 'inline' | 'popup';\r\n columnInline?: 'outside';\r\n disabled?: boolean;\r\n customFilter?: any | (() => any);\r\n externalFilters?: SdGridExternalFilter[];\r\n quickFilterVisibility?: 'inline' | 'popup' | 'none';\r\n multiple?: boolean;\r\n}\r\n\r\ninterface GridLocalOption extends SdGridBaseOption {\r\n type: 'local';\r\n items: any[] | (() => any[] | Promise<any[]>);\r\n}\r\n\r\ninterface GridDotnetOption extends SdGridBaseOption {\r\n type: 'dotnet';\r\n method?: 'POST' | 'GET';\r\n url: string;\r\n handler?: {\r\n beforeRequest: (filterInfo: SdGridFilterInfo) => Promise<SdGridFilterInfo>;\r\n afterResponse: (items: any[], total: number) => Promise<{ items: any[], total: number }>;\r\n };\r\n}\r\n\r\ninterface GridCustomOption extends SdGridBaseOption {\r\n type: 'custom';\r\n url: string;\r\n method?: 'POST' | 'GET';\r\n handlerCustom?: IHandlerServer;\r\n}\r\n\r\ninterface GridCommandBase {\r\n title?: string | ((rowData?: any) => string);\r\n translate?: boolean;\r\n disabled?: boolean | ((rowData?: any) => boolean);\r\n hidden?: boolean | (() => boolean);\r\n hiddenByItem?: ((rowData: any) => boolean) | ((rowData: any) => Promise<boolean>);\r\n}\r\n\r\nexport interface GridCommandNoChildren extends GridCommandBase {\r\n icon: string | ((rowData?: any) => string);\r\n fontSet?: 'material-icons' |\r\n 'material-icons-outlined' |\r\n 'material-icons-outlined' |\r\n 'material-icons-round' |\r\n 'material-icons-sharp';\r\n color?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning';\r\n click?: (rowData?: any) => void;\r\n}\r\n\r\nexport interface GridCommandWithChildren extends GridCommandBase {\r\n icon?: string | ((rowData?: any) => string);\r\n children?: GridCommandNoChildren[];\r\n}\r\n\r\ninterface GridBaseColumn {\r\n field: string;\r\n title: string;\r\n translate?: boolean;\r\n description?: string;\r\n width?: string;\r\n fixed?: boolean;\r\n format?: string;\r\n hidden?: boolean | (() => boolean);\r\n htmlTemplate?: (value: any, rowData?: any, isMobileOrTablet?: boolean) => string;\r\n transform?: (value: any, rowData?: any) => string;\r\n badge?: ((rowData?: any, value?: any) => 'PRIMARY' | 'SECONDARY' | 'INFO' | 'SUCCESS' | 'WARNING' | 'DANGER' | 'LIGHT' | 'DARK');\r\n click?: (value: any, rowData?: any) => void | Promise<void>;\r\n ignoreImport?: boolean;\r\n sortable?: boolean;\r\n align?: 'left' | 'center' | 'right';\r\n filter?: {\r\n disabled?: boolean;\r\n priority?: 'low';\r\n };\r\n}\r\n\r\nexport interface EditorHandler {\r\n [column: string]: {\r\n visible?: boolean | 'create' | 'update',\r\n items?: any[] | Observable<any[]>\r\n };\r\n}\r\n\r\nexport interface GridItem {\r\n blinker?: any;\r\n originItem?: any;\r\n temporary?: any;\r\n isChecked?: boolean;\r\n editingStatus?: 'create' | 'update';\r\n editorHandler?: EditorHandler & {\r\n disabled?: boolean;\r\n errorMessage?: string;\r\n saving?: boolean;\r\n };\r\n subInformation?: {\r\n isOpened?: boolean;\r\n isLoaded?: boolean;\r\n isLoading?: boolean;\r\n subItems?: any[];\r\n };\r\n [key: string]: any;\r\n}\r\n\r\nexport interface ColumnCommand {\r\n icon: string | ((rowData?: any) => string);\r\n title?: string | ((rowData?: any) => string);\r\n click: (rowData: GridItem) => void | Promise<void>;\r\n hiddenByItem?: ((rowData: any) => boolean) | ((rowData: any) => Promise<boolean>);\r\n}\r\n\r\ninterface GridColumnText extends GridBaseColumn {\r\n type: 'string';\r\n commands?: ColumnCommand[];\r\n editor?: {\r\n autocomplete?: boolean,\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any, value?: any, selected?: any | any[]) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n item?: DynamicEditorItem,\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string\r\n };\r\n}\r\n\r\ninterface GridColumnColor extends GridBaseColumn {\r\n type: 'color';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string\r\n };\r\n}\r\n\r\ninterface GridColumnNumber extends GridBaseColumn {\r\n type: 'number';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: number\r\n };\r\n}\r\n\r\ninterface GridColumnBool extends GridBaseColumn {\r\n type: 'bool';\r\n // properties for bool type\r\n trueValue?: string;\r\n falseValue?: string;\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n click?: (rowData: any) => void,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: boolean\r\n };\r\n}\r\n\r\ninterface GridColumnDate extends GridBaseColumn {\r\n type: 'date';\r\n timeDifferent?: 'second' | 'minute' | 'hour';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnDateTime extends GridBaseColumn {\r\n type: 'datetime';\r\n timeDifferent?: 'second' | 'minute' | 'hour' | 'day' | 'month';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnTime extends GridBaseColumn {\r\n type: 'time';\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n keyupEnter?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | Date\r\n };\r\n}\r\n\r\ninterface GridColumnValues extends GridBaseColumn {\r\n type: 'values';\r\n values: {\r\n value: string,\r\n text: string,\r\n icon?: string,\r\n color?: string,\r\n backgroundColor?: string\r\n }[];\r\n dictionary?: {\r\n [value: string]: {\r\n text: string,\r\n icon?: string,\r\n color?: string,\r\n backgroundColor?: string\r\n }\r\n };\r\n editor?: {\r\n autocomplete?: boolean,\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any, value?: any, selected?: any | any[]) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n item?: DynamicEditorItem,\r\n required?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | number\r\n };\r\n}\r\n\r\ninterface GridColumnRadio extends GridBaseColumn {\r\n type: 'radio';\r\n values?: any[];\r\n valueField: string;\r\n displayField: string;\r\n editor?: {\r\n required?: boolean;\r\n values?: {\r\n value: string,\r\n text: string,\r\n }[];\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean),\r\n defaultValue?: string | number\r\n };\r\n}\r\n\r\ninterface GridColumnImage extends GridBaseColumn {\r\n type: 'image';\r\n display: {\r\n height: number,\r\n width: number\r\n };\r\n editor?: {\r\n alwayDisplay?: boolean,\r\n change?: (rowData: any) => void,\r\n hidden?: boolean | ((rowData: any) => boolean),\r\n disabled?: boolean | ((rowData: any) => boolean)\r\n };\r\n}\r\n\r\nexport type GridColumnChild = (Exclude<SdGridColumn, GridColumnChildren>\r\n & { dynamicTitle?: (rowData: any) => string | Promise<string>, colSpan: 1 | 2 });\r\n\r\nexport interface GridColumnChildren extends GridBaseColumn {\r\n type: 'children';\r\n children: GridColumnChild[];\r\n}\r\n\r\ninterface GridBaseExternalFilter {\r\n field: string;\r\n priority?: 'low';\r\n disabled?: boolean;\r\n}\r\n\r\ninterface GridExternalFilterText extends GridBaseExternalFilter {\r\n type: 'string';\r\n title: string;\r\n default?: string;\r\n}\r\n\r\ninterface GridExternalFilterDate extends GridBaseExternalFilter {\r\n type: 'date';\r\n title: string;\r\n default?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterDateRange extends GridBaseExternalFilter {\r\n type: 'daterange';\r\n title: string;\r\n fromTitle: string;\r\n toTitle: string;\r\n enableTime?: boolean;\r\n minDate?: string | Date;\r\n maxDate?: string | Date;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterDateRangeFull extends GridBaseExternalFilter {\r\n type: 'daterangefull';\r\n title: string;\r\n enableTime?: boolean;\r\n minDate?: string | Date;\r\n maxDate?: string | Date;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterNumber extends GridBaseExternalFilter {\r\n type: 'number';\r\n title: string;\r\n default?: number;\r\n}\r\n\r\ninterface GridExternalFilterNumberRange extends GridBaseExternalFilter {\r\n type: 'numberrange';\r\n title: string;\r\n fromTitle: string;\r\n toTitle: string;\r\n defaultFrom?: Date | string;\r\n defaultTo?: Date | string;\r\n}\r\n\r\ninterface GridExternalFilterValues extends GridBaseExternalFilter {\r\n type: 'values';\r\n title: string;\r\n values: any[] | ((searchText?: string) => Promise<any[]>);\r\n valueField: string;\r\n displayField: string;\r\n selection?: 'AUTOCOMPLETE' | 'MULTIPLE' | 'MULTIPLEAUTOCOMPLETE';\r\n default?: string;\r\n}\r\n\r\ninterface GridExternalFilterRadio extends GridBaseExternalFilter {\r\n type: 'radio';\r\n title: string;\r\n values: any[];\r\n valueField: string;\r\n displayField: string;\r\n}\r\n\r\ninterface GridExternalFilterBool extends GridBaseExternalFilter {\r\n type: 'bool';\r\n title: string;\r\n trueValue?: string;\r\n falseValue?: string;\r\n}\r\n\r\ninterface GridExternalFilterCustom extends GridBaseExternalFilter {\r\n type: 'custom';\r\n title: string;\r\n onLoad?: (externalFilter: any, valueKey?: string, displayKey?: string) => { valueKey?: string, displayKey?: string };\r\n onClick: (externalFilter: any, valueKey?: string, displayKey?: string) => void;\r\n}\r\n\r\n// subInformation\r\nexport type SubOption = SubInformationDisabledLazyLoading | SubInformationEnabledLazyLoading;\r\ninterface BaseSubInformation {\r\n height?: string;\r\n commands?: SdGridCommand[];\r\n columns: (SdGridColumn & { title: string | ((rowData: any) => string) })[];\r\n}\r\ninterface SubInformationDisabledLazyLoading extends BaseSubInformation {\r\n lazyLoading: false;\r\n field: string;\r\n}\r\ninterface SubInformationEnabledLazyLoading extends BaseSubInformation {\r\n lazyLoading: true;\r\n onLoad: (rowData: any) => Promise<any[]>;\r\n}\r\n\r\nexport interface DynamicEditorItem {\r\n value: string;\r\n display: string;\r\n items: any[] | ((rowData?: any, value?: any) => any[] | Promise<any[]>);\r\n dependOnField?: string;\r\n}\r\n\r\n\r\nexport interface MobileConfiguration {\r\n htmlTemplate: (rowData?: any, columns?: SdGridColumn[]) => string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, SdGridOption, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorHandler'\r\n})\r\nexport class EditorHandlerPipe implements PipeTransform {\r\n transform(value: any, item: GridItem, gridOption: SdGridOption): boolean {\r\n const visible = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n let isDisabled = false;\r\n\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (column.editor) {\r\n isDisabled = typeof (column.editor.disabled) === 'function' ? column.editor.disabled(item) : column.editor.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n if (typeof (gridOption.editor?.disabled) === 'function') {\r\n isDisabled = gridOption.editor.disabled(item);\r\n } else {\r\n isDisabled = gridOption.editor?.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n // Hiển thị editor nếu dòng đó:\r\n // Đang được edit: editingStatus\r\n return item.editingStatus\r\n // Được thiết lập alwayDisplay\r\n || column.editor?.alwayDisplay\r\n // Editable có thuộc tính type inline\r\n || gridOption.editor?.type === 'inline';\r\n };\r\n item.editorHandler = item.editorHandler || {};\r\n for (const column of gridOption.columns) {\r\n item.editorHandler.disabled = false;\r\n item.editorHandler[column.field] = {};\r\n if (typeof (gridOption.editor) === 'object') {\r\n if (typeof (gridOption.editor.disabled) === 'function') {\r\n item.editorHandler.disabled = gridOption.editor.disabled(item);\r\n } else {\r\n item.editorHandler.disabled = gridOption.editor.disabled;\r\n }\r\n } else {\r\n item.editorHandler.disabled = false;\r\n }\r\n\r\n if (item.editorHandler.disabled) {\r\n item.editorHandler[column.field].visible = false;\r\n } else {\r\n item.editorHandler[column.field].visible = visible(column);\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { IHandlerServer } from './handler';\r\n\r\nexport interface IGridConfiguration {\r\n filter?: {\r\n type?: 'inline' | 'popup',\r\n columnInline?: 'outside',\r\n quickFilterVisibility?: 'inline' | 'popup' | 'none'\r\n };\r\n style?: {\r\n bordered?: boolean;\r\n stripped?: boolean;\r\n };\r\n translate?: boolean;\r\n handlerCustom?: IHandlerServer;\r\n}\r\n\r\nexport const GRID_CONFIG = new InjectionToken<IGridConfiguration>('grid.configuration');\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellDef]'\r\n})\r\nexport class SdCellDefDirective {\r\n @Input() sdCellDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellFooterDef]'\r\n})\r\nexport class SdCellFooterDevDirective {\r\n @Input() sdCellFooterDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdCellEditorDef]'\r\n})\r\nexport class SdCellEditorDefDirective {\r\n @Input() sdCellEditorDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { SdGridFilterInfo } from '../models/filter-info.model';\r\nimport { IHandlerLocal } from './handler';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class HandlerLocal implements IHandlerLocal {\r\n constructor(private datePipe: DatePipe) { }\r\n filter = (localItems: any[], filterInfo: SdGridFilterInfo) => {\r\n const items = localItems.filter(item => {\r\n for (const column of filterInfo.columns) {\r\n const filterValue: string = (filterInfo.rawFilter[column.field] || '').toString().trim().toLowerCase();\r\n const columnValue: string = (item[column.field] || '').toString().trim().toLowerCase();\r\n if (filterValue) {\r\n if (!columnValue) {\r\n return false;\r\n }\r\n if (column.type === 'string') {\r\n if (columnValue.indexOf(filterValue) === -1) {\r\n return false;\r\n }\r\n } else if (column.type === 'values' || column.type === 'radio') {\r\n if (columnValue !== filterValue) {\r\n return false;\r\n }\r\n } else if (column.type === 'number') {\r\n const fValue = +filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '');\r\n const cValue = +columnValue;\r\n if (fValue || fValue === 0) {\r\n if (!cValue && cValue !== 0) {\r\n return false;\r\n }\r\n if (filterValue.indexOf('>=') > -1 && cValue < fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<=') > -1 && cValue > fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<') > -1 && cValue >= fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('>') > -1 && cValue <= fValue) {\r\n return false;\r\n } else if (cValue !== fValue) {\r\n return false;\r\n }\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterValue === '1' && columnValue !== '1' && columnValue !== 'true') {\r\n return false;\r\n } else if (filterValue === '0' && columnValue !== '0' && columnValue !== 'false') {\r\n return false;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n const date = this.datePipe.transform(filterValue, 'yyyy/MM/dd');\r\n const fromDate = new Date(date);\r\n const toDate = new Date(date);\r\n toDate.setDate(toDate.getDate() + 1);\r\n if (new Date(columnValue).getTime() < fromDate.getTime() || new Date(columnValue).getTime() >= toDate.getTime()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n // Sort\r\n if (filterInfo.orderBy && filterInfo.orderDirection) {\r\n const column = filterInfo.columns.find(e => e.field === filterInfo.orderBy);\r\n if (column) {\r\n const { type, field } = column;\r\n items.sort((current, next) => {\r\n if (type === 'number') {\r\n return (current[field] || 0) - (next[field] || 0);\r\n }\r\n if (type === 'date' || type === 'datetime' || type === 'time') {\r\n const d1 = new Date(current[field] || '').getTime();\r\n const d2 = new Date(current[field] || '').getTime();\r\n return d1 - d2;\r\n }\r\n const s1 = (current[field] || '').toString();\r\n const s2 = (next[field] || '').toString();\r\n if (s1 > s2) {\r\n return 1;\r\n }\r\n if (s1 < s2) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n if (filterInfo.orderDirection === 'DESC') {\r\n items.reverse();\r\n }\r\n }\r\n }\r\n return {\r\n items,\r\n total: items.length\r\n };\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { SdGridFilterInfo } from '../models/filter-info.model';\r\nimport { IHandlerServer } from './handler';\r\nimport { SdGridColumn, GridColumnChildren } from '../grid.model';\r\n\r\n@Injectable()\r\nexport class HandlerDotnet implements IHandlerServer {\r\n mapRequest = (filterInfo: SdGridFilterInfo) => {\r\n const result = {\r\n whereClause: '1>0',\r\n pageSize: filterInfo.pageSize,\r\n pageNumber: filterInfo.pageNumber,\r\n orderBy: filterInfo.orderBy,\r\n orderDirection: filterInfo.orderDirection,\r\n filter: {},\r\n externalFilter: {}\r\n };\r\n if (filterInfo.customFilter) {\r\n // Nếu custom filter là string\r\n if (typeof (filterInfo.customFilter) === 'string') {\r\n result.whereClause += ` AND ${filterInfo.customFilter}`;\r\n } else if (typeof (filterInfo.customFilter) === 'function') {\r\n result.whereClause += ` AND ${filterInfo.customFilter()}`;\r\n }\r\n }\r\n const executeColumnNoChildren = (column: Exclude<SdGridColumn, GridColumnChildren>) => {\r\n if (!filterInfo.rawFilter[column.field] && filterInfo.rawFilter[column.field] !== 0) {\r\n return;\r\n }\r\n result.filter[column.field] = filterInfo.rawFilter[column.field];\r\n if (column.type === 'string') {\r\n const filterValue: string = (filterInfo.rawFilter[column.field] ?? '').toString();\r\n if (this.#isGuid(filterValue)) {\r\n result.whereClause += ` AND ${column.field} = GUID(\"${filterInfo.rawFilter[column.field]}\")`;\r\n } else if (filterValue.startsWith('!=')) {\r\n result.whereClause += ` AND ${column.field} != \"${filterValue.substring(2, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('=')) {\r\n result.whereClause += ` AND ${column.field} = \"${filterValue.substring(1, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('%')) {\r\n result.whereClause += ` AND ${column.field}.EndsWith(\"${filterValue.substring(1, filterValue.length)}\")`;\r\n } else if (filterValue.endsWith('%')) {\r\n result.whereClause += ` AND ${column.field}.StartsWith(\"${filterValue.substring(0, filterValue.length - 1)}\")`;\r\n } else {\r\n result.whereClause += ` AND ${column.field}.Contains(\"${filterValue}\")`;\r\n }\r\n } else if (column.type === 'number') {\r\n const value = +(filterInfo.rawFilter[column.field].replace('>=', '').replace('<=', '').replace('>', '').replace('<', '').trim());\r\n if (filterInfo.rawFilter[column.field].indexOf('>=') > -1) {\r\n result.whereClause += ` AND ${column.field} >= ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('<=') > -1) {\r\n result.whereClause += ` AND ${column.field} <= ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('>') > -1) {\r\n result.whereClause += ` AND ${column.field} > ${value}`;\r\n } else if (filterInfo.rawFilter[column.field].indexOf('<') > -1) {\r\n result.whereClause += ` AND ${column.field} < ${value}`;\r\n } else {\r\n result.whereClause += ` AND ${column.field} = ${value}`;\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterInfo.rawFilter[column.field] === '0' || filterInfo.rawFilter[column.field] === '1') {\r\n result.whereClause += ` AND ${column.field} = ${filterInfo.rawFilter[column.field] === '1' ? 'true' : 'false'}`;\r\n }\r\n } else if (column.type === 'values') {\r\n if (filterInfo.rawFilter[column.field]) {\r\n if (this.#isGuid(filterInfo.rawFilter[column.field])) {\r\n result.whereClause += ` AND ${column.field} = GUID(\"${filterInfo.rawFilter[column.field]}\")`;\r\n } else if (typeof (filterInfo.rawFilter[column.field]) === 'string') {\r\n result.whereClause += ` AND ${column.field} = \"${filterInfo.rawFilter[column.field]}\"`;\r\n } else {\r\n result.whereClause += ` AND ${column.field} = ${filterInfo.rawFilter[column.field]}`;\r\n }\r\n }\r\n } else if (column.type === 'radio') {\r\n if (filterInfo.rawFilter[column.field]) {\r\n result.whereClause += ` AND ${column.field} = \"${filterInfo.rawFilter[column.field]}\"`;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n // \"DateTime(yyyy,mm,dd,HH,mm,ss)\"\r\n // generate fromDate, toDate\r\n let date = new Date(filterInfo.rawFilter[column.field]);\r\n\r\n // From Date\r\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\r\n result.whereClause += ` AND ${column.field} >= DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n\r\n // To Date\r\n date.setDate(date.getDate() + 1);\r\n result.whereClause += ` AND ${column.field} < DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n }\r\n };\r\n const executeColumnChildren = (columnChildren: GridColumnChildren) => {\r\n let flag = false;\r\n for (const column of columnChildren.children) {\r\n if (filterInfo.rawFilter[column.field] || filterInfo.rawFilter[column.field] === 0) {\r\n executeColumnNoChildren(column);\r\n flag = true;\r\n }\r\n }\r\n if (flag) {\r\n return;\r\n }\r\n if (!filterInfo.rawFilter[columnChildren.field]) {\r\n return;\r\n }\r\n result.filter[columnChildren.field] = filterInfo.rawFilter[columnChildren.field];\r\n let whereClause = '';\r\n const filterValue: string = (filterInfo.rawFilter[columnChildren.field] ?? '').toString().trim();\r\n for (const column of columnChildren.children) {\r\n if (column.type === 'string') {\r\n if (this.#isGuid(filterValue)) {\r\n whereClause += ` OR ${column.field} = GUID(\"${filterValue}\")`;\r\n } else if (filterValue.startsWith('!=')) {\r\n whereClause += ` OR ${column.field} != \"${filterValue.substring(2, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('=')) {\r\n whereClause += ` OR ${column.field} = \"${filterValue.substring(1, filterValue.length)}\"`;\r\n } else if (filterValue.startsWith('%')) {\r\n whereClause += ` OR ${column.field}.EndsWith(\"${filterValue.substring(1, filterValue.length)}\")`;\r\n } else if (filterValue.endsWith('%')) {\r\n whereClause += ` OR ${column.field}.StartsWith(\"${filterValue.substring(0, filterValue.length - 1)}\")`;\r\n } else {\r\n whereClause += ` OR ${column.field}.Contains(\"${filterValue}\")`;\r\n }\r\n } else if (column.type === 'number') {\r\n const value = +(filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '').trim());\r\n if (!Number.isNaN(value)) {\r\n if (filterValue.indexOf('>=') > -1) {\r\n whereClause += ` OR ${column.field} >= ${value}`;\r\n } else if (filterValue.indexOf('<=') > -1) {\r\n whereClause += ` OR ${column.field} <= ${value}`;\r\n } else if (filterValue.indexOf('>') > -1) {\r\n whereClause += ` OR ${column.field} > ${value}`;\r\n } else if (filterValue.indexOf('<') > -1) {\r\n whereClause += ` OR ${column.field} < ${value}`;\r\n } else {\r\n whereClause += ` OR ${column.field} = ${value}`;\r\n }\r\n }\r\n } else if (column.type === 'bool') {\r\n if (filterValue === '0' || filterValue === '1') {\r\n whereClause += ` OR ${column.field} = ${filterValue === '1' ? 'true' : 'false'}`;\r\n }\r\n } else if (column.type === 'values') {\r\n if (this.#isGuid(filterValue)) {\r\n whereClause += ` OR ${column.field} = GUID(\"${filterValue}\")`;\r\n } if (typeof (filterInfo.rawFilter[column.field]) === 'string') {\r\n whereClause += ` OR ${column.field} = \"${filterValue}\"`;\r\n } else {\r\n whereClause += ` OR ${column.field} = ${filterValue}`;\r\n }\r\n } else if (column.type === 'radio') {\r\n if (filterValue) {\r\n whereClause += ` OR ${column.field} = \"${filterValue}\"`;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime') {\r\n // \"DateTime(yyyy,mm,dd,HH,mm,ss)\"\r\n // generate fromDate, toDate\r\n if (Date.isDate(filterValue)) {\r\n let date = new Date(filterValue);\r\n\r\n // From Date\r\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\r\n whereClause += ` OR (${column.field} >= DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()})`;\r\n\r\n // To Date\r\n date.setDate(date.getDate() + 1);\r\n whereClause += ` AND ${column.field} < DateTime(${date.getFullYear()},${date.getMonth() + 1},${date.getDate()}))`;\r\n }\r\n }\r\n }\r\n if (whereClause.trim().startsWith('OR')) {\r\n whereClause = whereClause.trim().substr(2).trim();\r\n result.whereClause += ` AND(${whereClause})`;\r\n }\r\n };\r\n filterInfo.columns.forEach(column => {\r\n if (column.type !== 'children') {\r\n executeColumnNoChildren(column);\r\n } else {\r\n executeColumnChildren(column);\r\n }\r\n });\r\n filterInfo.externalFilters?.forEach(externalFilter => {\r\n const { field, type } = externalFilter;\r\n if (type === 'daterangefull') {\r\n result.externalFilter[field] = filterInfo.rawExternalFilter?.[field];\r\n if (result.externalFilter[field]?.from && result.externalFilter[field]?.to) {\r\n const fromDate = new Date(result.externalFilter[field]?.from);\r\n const toDate = Date.addDays(result.externalFilter[field]?.to, 1);\r\n // tslint:disable-next-line: max-line-length\r\n result.whereClause += ` AND ${field} >= DateTime(${fromDate.getFullYear()},${fromDate.getMonth() + 1},${fromDate.getDate()})`;\r\n result.whereClause += ` AND ${field} < DateTime(${toDate.getFullYear()},${toDate.getMonth() + 1},${toDate.getDate()})`;\r\n }\r\n return;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n mapResponse = (res: any) => {\r\n const { items, total } = res;\r\n return {\r\n items,\r\n total\r\n };\r\n }\r\n\r\n #isGuid = (key: string): boolean => {\r\n const regex = /[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}/i;\r\n return regex.test(key);\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewChildren,\r\n QueryList,\r\n AfterViewInit,\r\n OnDestroy,\r\n Inject,\r\n Optional,\r\n ContentChildren\r\n} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport $ from 'jquery';\r\n\r\nimport {\r\n SdApiService\r\n} from '@sd-angular/core/api';\r\n\r\nimport {\r\n SdExcelService,\r\n ExcelConfig,\r\n ExcelTempateColumn\r\n} from '@sd-angular/core/excel';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\n\r\nimport { SdGridOption, defaultGridOption, GridItem, SdGridColumn, SdGridExternalFilter } from './grid.model';\r\n\r\nimport { ConfigResult } from './components/grid-config/grid-config.model';\r\nimport { SdGridConfig } from './components/grid-config/grid-config.component';\r\nimport { EditorHandlerPipe } from './pipes/editor-handler.pipe';\r\nimport { SdGridPopupEditor } from './components/grid-popup-editor/grid-popup-editor.component';\r\nimport { SdGridPopupFilter } from './components/grid-popup-filter/grid-popup-filter.component';\r\nimport { merge, Subscription } from 'rxjs';\r\nimport { SdGridPopupExportExcel } from './components/grid-popup-export-excel/grid-popup-export-excel.component';\r\nimport { QuickFilter, FilterConfiguration } from './components/grid-popup-filter/grid-popup-filter.model';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { SdGridFilterInfo } from './models/filter-info.model';\r\n\r\nimport { IGridConfiguration, GRID_CONFIG } from './models/grid-configuration.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { SdCellDefDirective } from './directives/cell-def.directive';\r\nimport { SdCellFooterDevDirective } from './directives/cell-footer-def.directive';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdCellEditorDefDirective } from './directives/cell-editor-def.directive';\r\nimport { IHandlerServer, IHandlerLocal } from './models/handler';\r\nimport { HandlerLocal } from './models/handler-local';\r\nimport { HandlerDotnet } from './models/handler-dotnet';\r\nimport { SdGridImportExcel } from './components/grid-import-excel/grid-import-excel.component';\r\n\r\n\r\n@Component({\r\n selector: 'sd-grid',\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGrid implements AfterViewInit, OnDestroy {\r\n private handler: IHandlerServer | IHandlerLocal;\r\n isMobileOrTablet = false;\r\n displayKey = 'SDCUSTOM';\r\n gridOption: SdGridOption;\r\n orderBy: string;\r\n orderDirection: 'ASC' | 'DESC';\r\n localItems: GridItem[] = [];\r\n items: GridItem[] = [];\r\n total: number;\r\n filter: {\r\n [key: string]: any\r\n } = {};\r\n externalFilter: {\r\n [key: string]: any\r\n } = {};\r\n hiddenPaginate = false;\r\n inlineExternal: {\r\n [key: string]: boolean;\r\n } = {};\r\n inlineColumn: {\r\n [key: string]: boolean;\r\n } = {};\r\n quickFilters: QuickFilter[] = [];\r\n selectedQuickFilter: string;\r\n // Paginate\r\n pages = [1];\r\n pageCount = 5;\r\n totalPage = 1;\r\n\r\n // Loading\r\n isLoading = false;\r\n\r\n viewItems: GridItem[] = [];\r\n sumarize: string;\r\n\r\n fixedColumns: SdGridColumn[] = [];\r\n normalColumns: SdGridColumn[] = [];\r\n columns: SdGridColumn[] = [];\r\n\r\n isCheckedAll = false;\r\n selectedItems: any[] = [];\r\n\r\n @ViewChildren('fixedHeader') private fixedHeaders: QueryList<ElementRef>;\r\n @ViewChildren('fixedBody') private fixedBodies: QueryList<ElementRef>;\r\n\r\n @ViewChild('fixedGridContainer') fixedGridContainer: ElementRef;\r\n @ViewChild('gridFixedBody') gridFixedBody: ElementRef;\r\n\r\n @ViewChild('gridContainer') gridContainer: ElementRef;\r\n @ViewChild('gridHeader') gridHeader: ElementRef;\r\n @ViewChild('gridBody') gridBody: ElementRef;\r\n\r\n @ViewChild('sdGridConfig', { static: true }) sdGridConfig: SdGridConfig;\r\n @ViewChild('sdGridPopupEditor') sdGridPopupEditor: SdGridPopupEditor;\r\n\r\n @ViewChild('sdGridPopupFilter') sdGridPopupFilter: SdGridPopupFilter;\r\n @ViewChild('matSelect') matSelect: MatSelect;\r\n\r\n @ViewChild('sdGridPopupExportExcel') sdGridPopupExportExcel: SdGridPopupExportExcel;\r\n @ViewChild('sdGridImportExcel') sdGridImportExcel: SdGridImportExcel;\r\n\r\n @ContentChildren(SdCellDefDirective) cellDefs = new QueryList<SdCellDefDirective>();\r\n cellDef: {\r\n [column: string]: SdCellDefDirective\r\n } = {};\r\n\r\n @ContentChildren(SdCellEditorDefDirective) cellEditorDefs = new QueryList<SdCellEditorDefDirective>();\r\n cellEditorDef: {\r\n [column: string]: SdCellEditorDefDirective\r\n } = {};\r\n\r\n @ContentChildren(SdCellFooterDevDirective) cellFooterDefs = new QueryList<SdCellFooterDevDirective>();\r\n cellFooterDef: {\r\n [column: string]: SdCellFooterDevDirective[];\r\n } = {};\r\n #numberOfFooterRows = 0;\r\n footerRows: number[] = [];\r\n\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(paginator.page.subscribe(this.selectPage));\r\n }\r\n }\r\n\r\n @Input() set option(value: SdGridOption) {\r\n this.setOption(value);\r\n }\r\n selectedItem: any = null;\r\n #subscription = new Subscription();\r\n rowHandler = {\r\n click: (item: any) => {\r\n this.selectedItem = item;\r\n if (this.gridOption.onClickRow) {\r\n this.gridOption.onClickRow(item);\r\n }\r\n },\r\n dblClick: (item: any) => {\r\n this.selectedItem = item;\r\n if (this.gridOption.onDblClickRow) {\r\n this.gridOption.onDblClickRow(item);\r\n }\r\n }\r\n };\r\n\r\n private setOption = (option: SdGridOption) => {\r\n option = this.initConfiguration(option);\r\n option = this.initTranslate(option);\r\n delete this.gridOption;\r\n this.gridOption = option;\r\n // Loại bỏ những command bị ẩn\r\n this.gridOption.commands = this.gridOption.commands.filter(command => {\r\n const hidden = command.hidden;\r\n if (hidden !== undefined) {\r\n if (typeof (hidden) === 'boolean') {\r\n return !hidden;\r\n } else if (typeof (hidden) === 'function') {\r\n return !hidden();\r\n }\r\n } else {\r\n return true;\r\n }\r\n });\r\n this.sdGridConfig.setOption({\r\n key: option.key,\r\n pageSize: this.gridOption.paginate.pageSize,\r\n columns: this.gridOption.columns\r\n });\r\n this.initExternalFilter();\r\n this.resize();\r\n this.detectChanges();\r\n }\r\n\r\n private initConfiguration = (option: SdGridOption) => {\r\n const gridConfiguration = this.configuration;\r\n // Filter\r\n if (!option.filter?.type && gridConfiguration?.filter?.type) {\r\n if (!option.filter) {\r\n option.filter = {\r\n type: gridConfiguration.filter.type\r\n };\r\n } else {\r\n option.filter.type = gridConfiguration.filter.type;\r\n }\r\n }\r\n if (!option.filter?.columnInline && gridConfiguration?.filter?.columnInline) {\r\n if (!option.filter) {\r\n option.filter = {\r\n columnInline: gridConfiguration.filter.columnInline\r\n };\r\n } else {\r\n option.filter.columnInline = gridConfiguration.filter.columnInline;\r\n }\r\n }\r\n if (!option.filter?.quickFilterVisibility && gridConfiguration?.filter?.quickFilterVisibility) {\r\n if (!option.filter) {\r\n option.filter = {\r\n quickFilterVisibility: gridConfiguration.filter.quickFilterVisibility\r\n };\r\n } else {\r\n option.filter.quickFilterVisibility = gridConfiguration.filter.quickFilterVisibility;\r\n }\r\n }\r\n // Translate\r\n option.translate = option.translate ?? gridConfiguration?.translate;\r\n switch (option.type) {\r\n case 'local':\r\n this.handler = this.handlerLocal;\r\n break;\r\n case 'dotnet':\r\n this.handler = this.handlerDotnet;\r\n break;\r\n case 'custom':\r\n this.handler = option.handlerCustom || gridConfiguration?.handlerCustom;\r\n if (!this.handler) {\r\n this.notifyService.notify.warning(`Handler custom was not found`);\r\n return;\r\n }\r\n break;\r\n }\r\n return { ...defaultGridOption, ...option };\r\n }\r\n\r\n private initTranslate = (option: SdGridOption) => {\r\n const { translate } = this.translateService;\r\n option.commands?.forEach(command => {\r\n if (!option.translate) {\r\n return;\r\n }\r\n if (typeof (command.title) === 'string') {\r\n command.title = translate(command.title);\r\n }\r\n if ('children' in command) {\r\n command.children?.forEach(childCommand => {\r\n if (typeof (childCommand.title) === 'string') {\r\n childCommand.title = translate(childCommand.title);\r\n }\r\n });\r\n }\r\n });\r\n option.columns?.forEach(column => {\r\n if (column.translate === false) {\r\n return;\r\n }\r\n if (option.translate || column.translate) {\r\n column.title = translate(column.title);\r\n }\r\n if (column.type === 'children') {\r\n column?.children?.forEach(childColumn => {\r\n if (childColumn.translate === false) {\r\n return;\r\n }\r\n if (option.translate || childColumn.translate) {\r\n childColumn.title = translate(childColumn.title);\r\n }\r\n });\r\n }\r\n });\r\n option.filter?.externalFilters?.forEach(externalFilter => {\r\n if (option.translate) {\r\n externalFilter.title = translate(externalFilter.title);\r\n }\r\n });\r\n return option;\r\n }\r\n\r\n constructor(\r\n @Inject(GRID_CONFIG) @Optional() public configuration: IGridConfiguration,\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService,\r\n private handlerLocal: HandlerLocal,\r\n private handlerDotnet: HandlerDotnet,\r\n private translateService: SdTranslateService,\r\n private datePipe: DatePipe,\r\n private loadingService: SdLoadingService,\r\n private apiService: SdApiService,\r\n private excelService: SdExcelService,\r\n private notifyService: SdNotifyService,\r\n private editorVisiblePipe: EditorHandlerPipe) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n // this.ref.detach();\r\n // setInterval(() => {\r\n // this.ref.markForCheck();\r\n // }, 1000);\r\n // ref.detach();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.fixedHeaders.changes.pipe(startWith([])).subscribe(() => {\r\n setTimeout(() => {\r\n const fixedHeaders = this.fixedHeaders.toArray();\r\n if (fixedHeaders.length > 0) {\r\n let left = $(fixedHeaders[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedHeaders.length; i++) {\r\n $(fixedHeaders[i].nativeElement).css({ left });\r\n left += $(fixedHeaders[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n }, 100);\r\n }));\r\n this.#subscription.add(merge(this.fixedBodies.changes, this.cellFooterDefs.changes).pipe(startWith({})).subscribe(() => {\r\n setTimeout(() => {\r\n const fixedBodies = this.fixedBodies.toArray();\r\n if (fixedBodies.length > 0) {\r\n const fixedPerRow = this.fixedBodies.length / (this.viewItems.length + this.#numberOfFooterRows);\r\n let left = $(fixedBodies[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedBodies.length; i++) {\r\n if (i % fixedPerRow === 0) {\r\n left = 0;\r\n }\r\n $(fixedBodies[i].nativeElement).css({ left });\r\n left += $(fixedBodies[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n const fixedHeaders = this.fixedHeaders.toArray();\r\n if (fixedHeaders.length > 0) {\r\n let left = $(fixedHeaders[0].nativeElement).outerWidth(true);\r\n for (let i = 1; i < fixedHeaders.length; i++) {\r\n $(fixedHeaders[i].nativeElement).css({ left });\r\n left += $(fixedHeaders[i].nativeElement).outerWidth(true);\r\n }\r\n }\r\n }, 100);\r\n }));\r\n this.#subscription.add(this.cellDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellDef = {};\r\n for (const cellDef of this.cellDefs) {\r\n if (cellDef.sdCellDef) {\r\n this.cellDef[cellDef.sdCellDef] = cellDef;\r\n }\r\n }\r\n }));\r\n this.#subscription.add(this.cellEditorDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellEditorDef = {};\r\n for (const cellEditorDef of this.cellEditorDefs) {\r\n if (cellEditorDef.sdCellEditorDef) {\r\n this.cellEditorDef[cellEditorDef.sdCellEditorDef] = cellEditorDef;\r\n }\r\n }\r\n }));\r\n this.#subscription.add(this.cellFooterDefs.changes.pipe(startWith([])).subscribe(() => {\r\n this.cellFooterDef = {};\r\n this.#numberOfFooterRows = 0;\r\n for (const cellFooterDef of this.cellFooterDefs) {\r\n if (cellFooterDef.sdCellFooterDef) {\r\n if (!this.cellFooterDef[cellFooterDef.sdCellFooterDef]) {\r\n this.cellFooterDef[cellFooterDef.sdCellFooterDef] = [];\r\n }\r\n this.cellFooterDef[cellFooterDef.sdCellFooterDef].push(cellFooterDef);\r\n if (this.cellFooterDef[cellFooterDef.sdCellFooterDef].length > this.#numberOfFooterRows) {\r\n this.#numberOfFooterRows = this.cellFooterDef[cellFooterDef.sdCellFooterDef].length;\r\n }\r\n }\r\n }\r\n this.footerRows = Array(this.#numberOfFooterRows).fill(0).map((v, i) => i);\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n reload = async (gridItems?: any[]) => {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const currentPage = (this.#paginator?.pageIndex || 0) + 1;\r\n const pageSize = this.#paginator?.pageSize || 50;\r\n try {\r\n if (this.gridOption.type !== 'local') {\r\n const handler = this.handler as IHandlerServer;\r\n const filter = handler.mapRequest(this.getFilterInfo(currentPage, pageSize));\r\n if (this.gridOption.method === 'GET') {\r\n const queryString = Object.keys(filter).filter(key => filter[key] !== null && filter[key] !== undefined)\r\n .map(key => key + '=' + filter[key]).join('&');\r\n const url = this.gridOption.url.includes('?') ? `${this.gridOption.url}&${queryString}` : `${this.gridOption.url}?${queryString}`;\r\n const response = await this.apiService.get(url);\r\n const { items, total } = handler.mapResponse(response);\r\n this.items = items;\r\n this.total = total;\r\n } else {\r\n const response = await this.apiService.post(this.gridOption.url, filter);\r\n const { items, total } = handler.mapResponse(response);\r\n this.items = items;\r\n this.total = total;\r\n }\r\n } else {\r\n const handler = this.handler as IHandlerLocal;\r\n if (typeof (this.gridOption.items) === 'function') {\r\n if (Array.isArray(gridItems)) {\r\n this.localItems = gridItems;\r\n } else {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n this.localItems = await results;\r\n } else {\r\n this.localItems = results;\r\n }\r\n }\r\n } else {\r\n this.gridOption.items = gridItems || this.gridOption.items;\r\n this.localItems = this.gridOption.items;\r\n }\r\n const response = handler.filter(this.localItems, {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber: currentPage,\r\n pageSize\r\n });\r\n this.items = response.items;\r\n this.total = response.total;\r\n \r\n }\r\n this.items.forEach(item => item.originItem = { ...item });\r\n this.isCheckedAll = false;\r\n this.#setSelectedItems();\r\n await this.gridOption?.onReloadCompleted?.(this.items);\r\n this.generateViewItems();\r\n this.generateEditorHandlers();\r\n $(this.gridBody.nativeElement).scrollTop(0);\r\n if (currentPage > 1 && !this.viewItems?.length) {\r\n this.#paginator.firstPage();\r\n }\r\n this.detectChanges();\r\n } catch (error) {\r\n this.notifyService.handle.error(error);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n reloadItem(data: { [id: string]: any }) {\r\n Object.keys(data).forEach(id => {\r\n const item = this.items.find(e => !!e.id && e.id === id);\r\n if (item) {\r\n this.gridOption.columns.forEach(column => {\r\n if (item[column.field] !== undefined && data[id][column.field] !== undefined && item[column.field] !== data[id][column.field]) {\r\n this.blink(item, column.field);\r\n }\r\n });\r\n Object.assign(item, data[id]);\r\n this.generateEditorHanlder(item);\r\n this.stopBlink();\r\n }\r\n });\r\n }\r\n\r\n private blink(item: GridItem, field: string) {\r\n item.blinker = item.blinker || {};\r\n item.blinker[field] = true;\r\n }\r\n private stopBlink() {\r\n setTimeout(() => {\r\n this.viewItems.forEach(item => {\r\n item.blinker = {};\r\n });\r\n }, 1500);\r\n }\r\n\r\n detectChanges = () => {\r\n this.ref.detectChanges();\r\n this.ref.markForCheck();\r\n }\r\n\r\n private generateViewItems() {\r\n const currentPage = (this.#paginator?.pageIndex || 0) + 1;\r\n const pageSize = this.#paginator?.pageSize || 50;\r\n delete this.viewItems;\r\n if (this.gridOption.type === 'local') {\r\n this.viewItems = this.items.filter((item, index) => {\r\n return index >= (currentPage - 1) * pageSize\r\n && index < currentPage * pageSize;\r\n });\r\n } else {\r\n this.viewItems = this.items;\r\n }\r\n this.viewItems.forEach(item => {\r\n item.blinker = item.blinker || {};\r\n item.subInformation = item.subInformation || {};\r\n });\r\n }\r\n\r\n get editedItems() {\r\n return this.items.filter(item => {\r\n if (!item.originItem) {\r\n return true;\r\n }\r\n if (Object.keys(item.originItem).some(key => item.originItem[key] !== item[key])) {\r\n return true;\r\n }\r\n return false;\r\n }).map(item => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...result } = item;\r\n return result;\r\n });\r\n }\r\n\r\n selectPage = () => {\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n\r\n updateFilter = (param?: { filter: any, externalFilter: any }) => {\r\n this.filter = param?.filter || this.filter;\r\n this.externalFilter = param?.externalFilter || this.externalFilter;\r\n this.#paginator.pageIndex = 0;\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n\r\n getItems() {\r\n return this.items;\r\n }\r\n\r\n //#region Checkable\r\n\r\n #setSelectedItems = () => {\r\n this.selectedItems = this.items.filter(item => item.isChecked)\r\n .map(item => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...result } = item;\r\n return result;\r\n });\r\n }\r\n\r\n onCheck = (item: GridItem, isCheckbox?: boolean) => {\r\n if (!this.gridOption.checkable) {\r\n return;\r\n }\r\n if (!isCheckbox) {\r\n item.isChecked = !item.isChecked;\r\n }\r\n this.isCheckedAll = this.items.length === this.items.filter(e => e.isChecked).length;\r\n this.gridOption.onCheck?.(this.items.filter(e => e.isChecked), item);\r\n this.#setSelectedItems();\r\n }\r\n\r\n checkAll(isCheckedAll: boolean) {\r\n this.isCheckedAll = isCheckedAll;\r\n this.items.forEach(item => item.isChecked = this.isCheckedAll);\r\n if (this.gridOption.onCheck) {\r\n this.gridOption.onCheck(this.items.filter(item => item.isChecked));\r\n }\r\n this.#setSelectedItems();\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Sort\r\n sort = (column: SdGridColumn) => {\r\n if (column.type === 'children' || column.type === 'image') {\r\n return;\r\n }\r\n const sortable = this.gridOption.sortable ?? true;\r\n const columnSortable = column.sortable ?? true;\r\n if (!sortable || !columnSortable) {\r\n return;\r\n }\r\n if (this.orderBy === column.field) {\r\n this.orderDirection = this.orderDirection === 'ASC' ? 'DESC' : 'ASC';\r\n } else {\r\n this.orderBy = column.field;\r\n this.orderDirection = 'ASC';\r\n }\r\n if (this.gridOption.type === 'local') {\r\n this.reload(this.localItems);\r\n } else {\r\n this.reload();\r\n }\r\n }\r\n //#endregion\r\n\r\n // #region Resize Grid\r\n private resize() {\r\n this.detectChanges();\r\n if (this.gridOption.height) {\r\n this.gridBody.nativeElement.style.height = this.gridOption.height;\r\n } else {\r\n this.gridBody.nativeElement.style.height = `${window.innerHeight - 300}px`;\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 0);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 200);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 500);\r\n setTimeout(() => {\r\n // Lấy offset top để điều chỉnh kích thước Grid vừa với màn hình\r\n const top = this.gridBody.nativeElement.getBoundingClientRect().top;\r\n // const top = $(this.gridBody.nativeElement).offset().top;\r\n const bottom = this.gridOption.hideFooter ? 0 : (this.isMobileOrTablet ? 45 : 55);\r\n const height = window.innerHeight - top - bottom;\r\n this.gridBody.nativeElement.style.height = `${height}px`;\r\n }, 1000);\r\n }\r\n }\r\n\r\n setHeight(height?: string) {\r\n this.gridOption.height = height;\r\n this.resize();\r\n }\r\n\r\n // #endregion\r\n\r\n //#region Import, Export, Config\r\n\r\n loadConfig(configResult: ConfigResult) {\r\n this.gridOption.paginate.pageSize = configResult.pageSize;\r\n this.gridOption.columns = configResult.columns;\r\n this.fixedColumns = configResult.fixedColumns;\r\n this.normalColumns = configResult.normalColumns;\r\n this.columns = [...this.fixedColumns, ...this.normalColumns];\r\n this.initFilter();\r\n this.initDictionaryColumnValues();\r\n this.reload();\r\n }\r\n\r\n private initFilter() {\r\n this.gridOption.columns.forEach(column => {\r\n // Gán giá trị filter mặc định cho từng cột\r\n this.filter[column.field] = this.filter[column.field] ?? '';\r\n });\r\n }\r\n\r\n private initDictionaryColumnValues() {\r\n this.gridOption.columns.forEach(column => {\r\n if (column.type === 'values') {\r\n column.dictionary = {};\r\n if (column.values) {\r\n column.values.forEach(e => {\r\n column.dictionary[e.value.toString()] = {\r\n text: e.text,\r\n icon: e.icon,\r\n color: e.color,\r\n backgroundColor: e.backgroundColor\r\n };\r\n });\r\n }\r\n }\r\n if (column.type === 'children') {\r\n column.children.forEach(childColumn => {\r\n if (childColumn.type === 'values') {\r\n childColumn.dictionary = {};\r\n if (childColumn.values) {\r\n childColumn.values.forEach(e => {\r\n childColumn.dictionary[e.value.toString()] = {\r\n text: e.text,\r\n icon: e.icon,\r\n color: e.color,\r\n backgroundColor: e.backgroundColor\r\n };\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n private generateEditorHandlers() {\r\n this.viewItems.forEach(item => {\r\n this.generateEditorHanlder(item);\r\n });\r\n }\r\n\r\n private generateEditorHanlder(item: GridItem) {\r\n // item.editorHandler = item.editorHandler || {};\r\n this.editorVisiblePipe.transform(null, item, this.gridOption);\r\n }\r\n trackById(index, item) {\r\n return item.id;\r\n }\r\n\r\n get isFiltering() {\r\n return Object.values(this.filter).some(value => !!value);\r\n }\r\n\r\n onFilterPopup() {\r\n const f1 = JSON.stringify(this.filter);\r\n const f2 = JSON.stringify(this.externalFilter);\r\n const filter = JSON.parse(f1);\r\n const externalFilter = JSON.parse(f2);\r\n this.sdGridPopupFilter.open(this.fixedColumns, this.normalColumns, filter, externalFilter, this.gridOption.filter?.externalFilters);\r\n }\r\n\r\n clearFilter = () => {\r\n this.filter = {};\r\n this.externalFilter = {};\r\n this.initFilter();\r\n this.initExternalFilter();\r\n if (this.sdGridPopupFilter) {\r\n this.sdGridPopupFilter.filter = this.filter;\r\n this.sdGridPopupFilter.externalFilter = this.externalFilter;\r\n }\r\n }\r\n\r\n onClearFilter = () => {\r\n this.clearFilter();\r\n this.reload();\r\n }\r\n\r\n expandOrCollapse = async (gridItem: GridItem) => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n ...item } = gridItem;\r\n if (!this.gridOption.subInformation) {\r\n return;\r\n }\r\n if (gridItem.subInformation?.isOpened) {\r\n gridItem.subInformation.isOpened = false;\r\n return;\r\n }\r\n if (this.gridOption.subInformation.lazyLoading && !gridItem.subInformation?.isLoaded) {\r\n gridItem.subInformation.isLoading = true;\r\n try {\r\n gridItem.subInformation.subItems = await this.gridOption.subInformation.onLoad(item);\r\n if (!Array.isArray(gridItem.subInformation.subItems)) {\r\n this.notifyService.alert.warning(`Data is not an array`);\r\n gridItem.subInformation.subItems = [];\r\n }\r\n gridItem.subInformation.isLoading = false;\r\n gridItem.subInformation.isLoaded = true;\r\n gridItem.subInformation.isOpened = true;\r\n this.ref.detectChanges();\r\n } catch (err) {\r\n this.notifyService.handle.error(err);\r\n gridItem.subInformation.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n return;\r\n }\r\n if (this.gridOption.subInformation.lazyLoading === false && !gridItem.subInformation.isLoaded) {\r\n gridItem.subInformation.subItems = gridItem[this.gridOption.subInformation.field];\r\n if (!Array.isArray(gridItem.subInformation.subItems)) {\r\n this.notifyService.alert.warning(`Data is not an array`);\r\n gridItem.subInformation.subItems = [];\r\n }\r\n gridItem.subInformation.isLoaded = true;\r\n gridItem.subInformation.isOpened = true;\r\n return;\r\n }\r\n gridItem.subInformation.isOpened = true;\r\n this.ref.detectChanges();\r\n }\r\n //#region Editable\r\n onCreate = () => {\r\n const { type, editor, columns } = this.gridOption;\r\n if (!editor?.addable) {\r\n return;\r\n }\r\n const item: GridItem = {};\r\n // Gán giá trị mặc định\r\n columns.forEach(column => {\r\n if (column.type === 'values') {\r\n item[column.field] = '';\r\n } else if (column.type === 'bool') {\r\n item[column.field] = true;\r\n } else if (column.type === 'number') {\r\n item[column.field] = null;\r\n }\r\n });\r\n editor.onAdd?.(item);\r\n // Đưa item lên dòng đầu tiên nếu type khác popup\r\n if (editor.type !== 'popup') {\r\n if (type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n this.viewItems.splice(0, 0, item);\r\n }\r\n this.onUpdate(item, false);\r\n }\r\n onUpdate = (item: GridItem, isModified?: boolean) => {\r\n const { editor, columns } = this.gridOption;\r\n item.editingStatus = isModified ? 'update' : 'create';\r\n item.temporary = { ...item };\r\n this.generateEditorHanlder(item);\r\n if (editor.type === 'popup') {\r\n this.sdGridPopupEditor.open(item, columns, isModified);\r\n }\r\n this.ref.detectChanges();\r\n }\r\n onSave = async (item: GridItem) => {\r\n const { editor } = this.gridOption;\r\n try {\r\n item.editorHandler.saving = true;\r\n if (editor.validate) {\r\n const result = editor.validate(item);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n throw message;\r\n }\r\n } else {\r\n if (result) {\r\n throw result;\r\n }\r\n }\r\n }\r\n if (editor.onSave) {\r\n const result = editor.onSave(item);\r\n if (result instanceof Promise) {\r\n await result;\r\n }\r\n }\r\n\r\n if (item.editingStatus === 'create' && editor.type === 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n this.viewItems.splice(0, 0, item);\r\n }\r\n\r\n item.editingStatus = undefined;\r\n this.generateEditorHanlder(item);\r\n } catch (err) {\r\n this.notifyService.notify.warning(err);\r\n } finally {\r\n item.editorHandler.saving = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n onCancel = (item: GridItem) => {\r\n const { editor } = this.gridOption;\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n }\r\n const idx2 = this.viewItems.indexOf(item);\r\n this.viewItems.splice(idx2, 1);\r\n return;\r\n }\r\n if (item.editingStatus === 'create') {\r\n if (editor.type !== 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 1);\r\n }\r\n this.viewItems.splice(0, 1);\r\n }\r\n } else {\r\n Object.assign(item, item.temporary);\r\n item.editingStatus = undefined;\r\n this.generateEditorHanlder(item);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n private initExternalFilter = () => {\r\n if (this.gridOption.filter?.externalFilters?.length) {\r\n this.gridOption.filter.externalFilters.forEach(externalFilter => {\r\n if (externalFilter.type === 'string') {\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? '';\r\n }\r\n return;\r\n }\r\n if (externalFilter.type === 'number') {\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? undefined;\r\n }\r\n return;\r\n }\r\n if (externalFilter.type === 'daterange') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'numberrange') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'daterangefull') {\r\n this.externalFilter[externalFilter.field] = {\r\n from: externalFilter.defaultFrom ?? undefined,\r\n to: externalFilter.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (externalFilter.type === 'values') { // andn1\r\n if (externalFilter.default) {\r\n this.externalFilter[externalFilter.field] = externalFilter.default ?? '';\r\n }\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n onSearch = (searchValue: string, item: GridItem, column: SdGridColumn) => {\r\n item[column.field] = searchValue;\r\n }\r\n\r\n onFilterConfigurationLoaded = (param: FilterConfiguration) => {\r\n this.quickFilters = param.quickFilters || [];\r\n this.selectedQuickFilter = param.selectedQuickFilter || '';\r\n if (this.selectedQuickFilter) {\r\n const quickFilter = this.quickFilters.find(e => e.code === this.selectedQuickFilter);\r\n if (quickFilter) {\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.refreshExternalFilter(this.gridOption?.filter?.externalFilters, JSON.parse(f2));\r\n }\r\n }\r\n this.inlineExternal = param.inlineExternal || {};\r\n this.inlineColumn = param.inlineColumn || {};\r\n this.resize();\r\n }\r\n\r\n onSelectQuickFilter = (value: string) => {\r\n const quickFilter = this.quickFilters.find(e => e.code === value);\r\n if (quickFilter?.code) {\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.selectedQuickFilter = quickFilter?.code;\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.refreshExternalFilter(this.gridOption?.filter?.externalFilters, JSON.parse(f2));\r\n this.updateFilter();\r\n } else {\r\n this.selectedQuickFilter = '';\r\n this.onClearFilter();\r\n }\r\n this.sdGridPopupFilter?.updateConfiguration(this.selectedQuickFilter);\r\n }\r\n\r\n private getExportItems = async (pageNumber: number = 1, pageSize: number = 10000) => {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n try {\r\n if (this.gridOption.type !== 'local') {\r\n const handler = this.handler as IHandlerServer;\r\n const filter = handler.mapRequest(this.getFilterInfo(pageNumber, pageSize));\r\n if (this.gridOption.method === 'GET') {\r\n const queryString = Object.keys(filter).filter(key => filter[key] !== null && filter[key] !== undefined)\r\n .map(key => key + '=' + filter[key]).join('&');\r\n const url = this.gridOption.url.includes('?') ? `${this.gridOption.url}&${queryString}` : `${this.gridOption.url}?${queryString}`;\r\n const response = await this.apiService.get(url);\r\n return handler.mapResponse(response).items;\r\n } else {\r\n const response = await this.apiService.post(this.gridOption.url, filter);\r\n return handler.mapResponse(response).items;\r\n }\r\n } else {\r\n let localItems = [];\r\n const handler = this.handler as IHandlerLocal;\r\n if (typeof (this.gridOption.items) === 'function') {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n localItems = await results;\r\n } else {\r\n localItems = results;\r\n }\r\n } else {\r\n localItems = this.gridOption.items;\r\n }\r\n const response = handler.filter(localItems, {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber,\r\n pageSize\r\n });\r\n return response.items;\r\n }\r\n } catch (error) {\r\n this.notifyService.handle.error(error);\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n private getFilterInfo = (pageNumber: number, pageSize: number): SdGridFilterInfo => {\r\n for (const key of Object.keys(this.filter)) {\r\n if (typeof (this.filter[key]) === 'string') {\r\n this.filter[key] = this.filter[key].trim();\r\n }\r\n }\r\n for (const key of Object.keys(this.externalFilter)) {\r\n if (typeof (this.externalFilter[key]) === 'string') {\r\n this.externalFilter[key] = this.externalFilter[key].trim();\r\n }\r\n }\r\n return {\r\n customFilter: this.gridOption.filter.customFilter,\r\n rawFilter: this.filter,\r\n columns: this.gridOption.columns,\r\n rawExternalFilter: this.externalFilter,\r\n externalFilters: this.gridOption.filter?.externalFilters,\r\n orderBy: this.orderBy,\r\n orderDirection: this.orderDirection,\r\n pageNumber,\r\n pageSize\r\n };\r\n }\r\n\r\n onExportByTemplate = async (params: { excelConfig: ExcelConfig, excelColumns: ExcelTempateColumn[] }) => {\r\n this.loadingService.start();\r\n let exportItems = [];\r\n if (this.gridOption.export?.items) {\r\n exportItems = await this.gridOption.export?.items(this.getFilterInfo(1, 10000)).finally(this.loadingService.stop);\r\n } else {\r\n exportItems = await this.getExportItems().finally(this.loadingService.stop);\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems, params.excelConfig.name);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const columns = [...this.gridOption.columns, ...(this.gridOption.export?.columns || [])];\r\n const items = exportItems.map(item => {\r\n const obj: any = {};\r\n const handle = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n column.children.forEach(handle);\r\n } else if (column.transform) {\r\n obj[column.field] = column.transform(item[column.field], item);\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number' || column.type === 'color') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.trueValue || 'True';\r\n } else {\r\n obj[column.field] = column.falseValue || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n // Nếu là date thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n // Nếu là datetime thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy HH:mm:ss');\r\n } else if (column.type === 'time') {\r\n // Nếu là time thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'HH:mm:ss');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n const data = column.values.find(e => e.value === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data.text;\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n } else if (column.type === 'radio') {\r\n const data = column.values.find(e => e[column.valueField] === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data[column.displayField];\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n }\r\n };\r\n columns.forEach(handle);\r\n return obj;\r\n });\r\n this.excelService.generateExcelDataByTemplate(params.excelConfig.fullPath, params.excelColumns, items, params.excelConfig.name);\r\n }\r\n\r\n bigExport = async () => {\r\n const pageSize = 1000;\r\n let pageNumber = 1;\r\n this.loadingService.start();\r\n try {\r\n let exportItems = [];\r\n let filePath: string = null;\r\n let destination: string = null;\r\n let latestRow = 0;\r\n while (true) {\r\n if (this.gridOption.export?.items) {\r\n exportItems = await this.gridOption.export?.items(this.getFilterInfo(pageNumber, pageSize)).finally(this.loadingService.stop);\r\n } else {\r\n exportItems = await this.getExportItems(pageNumber, pageSize).finally(this.loadingService.stop);\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const columns = [...this.gridOption.columns, ...(this.gridOption.export?.columns || [])];\r\n const items = exportItems.map(item => {\r\n const obj: any = {};\r\n const handle = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n column.children.forEach(handle);\r\n } else if (column.transform) {\r\n obj[column.field] = column.transform(item[column.field], item);\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number' || column.type === 'color') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.trueValue || 'True';\r\n } else {\r\n obj[column.field] = column.falseValue || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n // Nếu là date thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n // Nếu là datetime thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'dd/MM/yyyy HH:mm:ss');\r\n } else if (column.type === 'time') {\r\n // Nếu là time thì convert theo đúng format\r\n const date = new Date(item[column.field]);\r\n obj[column.field] = this.datePipe.transform(date, 'HH:mm:ss');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n const data = column.values.find(e => e.value === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data.text;\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n } else if (column.type === 'radio') {\r\n const data = column.values.find(e => e[column.valueField] === item[column.field]);\r\n if (data) {\r\n obj[column.field] = data[column.displayField];\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n }\r\n };\r\n columns.forEach(handle);\r\n return obj;\r\n });\r\n const result = await this.excelService.bigExport({\r\n columns,\r\n items,\r\n latestRow,\r\n filePath,\r\n destination\r\n });\r\n latestRow = result.latestRow;\r\n filePath = result.filePath;\r\n destination = result.destination;\r\n if ((pageNumber - 1) * pageSize + items.length >= this.total) {\r\n await this.excelService.download(filePath);\r\n break;\r\n }\r\n pageNumber++;\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n get invalidItems() {\r\n return this.items.filter(e => e.editorHandler?.errorMessage).map(e => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...item } = e;\r\n return {\r\n item,\r\n message: e.editorHandler.errorMessage\r\n };\r\n });\r\n }\r\n\r\n get gridItems() {\r\n return this.items.map(e => {\r\n const { temporary,\r\n originItem,\r\n editorHandler,\r\n editingStatus,\r\n isChecked,\r\n subInformation,\r\n blinker,\r\n ...item } = e;\r\n return item;\r\n });\r\n }\r\n\r\n onEditorChange = () => {\r\n this.ref.detectChanges();\r\n }\r\n onSelectPageSize = () => {\r\n this.reload();\r\n }\r\n private refreshExternalFilter = (externalFilters: SdGridExternalFilter[], externalFilter: any) => {\r\n externalFilter = externalFilter || {};\r\n externalFilters = externalFilters || [];\r\n externalFilters.forEach(e => {\r\n if (e.type === 'string') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? '';\r\n return;\r\n }\r\n if (e.type === 'number') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? undefined;\r\n return;\r\n }\r\n if (e.type === 'daterange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'numberrange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'daterangefull') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'values') { // andn1\r\n externalFilter[e.field] = (externalFilter[e.field] || e.default) ?? '';\r\n return;\r\n }\r\n });\r\n return externalFilter;\r\n }\r\n\r\n onCreateQuickFilter = (ev?: Event) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onCreateQuickFilter(ev);\r\n }\r\n\r\n onEditQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onEditQuickFilter(ev, quickFilter);\r\n }\r\n\r\n onDeleteQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n this.matSelect?.close();\r\n this.onFilterPopup();\r\n this.sdGridPopupFilter?.close();\r\n this.sdGridPopupFilter?.onDeleteQuickFilter(ev, quickFilter);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDynamicItems'\r\n})\r\nexport class SdDynamicItems implements PipeTransform {\r\n transform(value: any, dynamicItems: (value: any) => Promise<any[]>) {\r\n return dynamicItems;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { ConfigOption, ConfigResult, ConfigStorage } from './grid-config.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\n\r\nimport {\r\n SdSetting,\r\n SdSettingService\r\n} from '@sd-angular/core/setting';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-config',\r\n templateUrl: './grid-config.component.html',\r\n styleUrls: ['./grid-config.component.scss']\r\n})\r\nexport class SdGridConfig implements OnInit {\r\n @ViewChild('modal') modal: SdModal;\r\n @Output() sdChange = new EventEmitter<ConfigResult>();\r\n\r\n option: ConfigOption;\r\n storage: ConfigStorage;\r\n #setting: SdSetting<ConfigStorage>;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private notifyService: SdNotifyService,\r\n private settingService: SdSettingService,\r\n private translateService: SdTranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n async setOption(option: ConfigOption) {\r\n this.ref.detectChanges();\r\n this.option = option;\r\n if (this.option.key) {\r\n this.#setting = this.settingService.create<ConfigStorage>(this.option.key);\r\n } else {\r\n this.#setting = null;\r\n }\r\n await this.init();\r\n this.emitOnChange();\r\n }\r\n\r\n private async init() {\r\n if (this.#setting) {\r\n const storage: ConfigStorage = await this.#setting.get();\r\n try {\r\n if (!storage) {\r\n await this.#setting.remove();\r\n this.#initDefault();\r\n return;\r\n }\r\n this.storage = storage;\r\n\r\n // Loại bỏ những column đã bị xóa khỏi originColumns\r\n this.storage.columnConfigs = this.storage.columnConfigs\r\n .filter(column => this.option.columns.some(e => e.field === column.originColumn.field));\r\n\r\n // Thêm những column mới vào storage nếu có\r\n this.option.columns.forEach(column => {\r\n if (!this.storage.columnConfigs.some(e => e.originColumn.field === column.field)) {\r\n this.storage.columnConfigs.push({\r\n originColumn: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n fixed: column.fixed\r\n },\r\n hidden: false,\r\n fixed: column.fixed\r\n });\r\n }\r\n });\r\n\r\n // Cập nhật originColumn\r\n this.storage.columnConfigs.forEach(column => {\r\n const originColumn = this.option.columns.find(e => e.field === column.originColumn.field);\r\n if (originColumn) {\r\n Object.assign(column.originColumn, {\r\n title: originColumn.title,\r\n width: originColumn.width,\r\n fixed: originColumn.fixed\r\n });\r\n }\r\n });\r\n } catch (ex) {\r\n this.#setting.remove();\r\n this.#initDefault();\r\n }\r\n } else {\r\n this.#initDefault();\r\n }\r\n }\r\n\r\n #initDefault = () => {\r\n this.storage = {};\r\n this.storage.pageSize = this.option.pageSize;\r\n this.storage.columnConfigs = [];\r\n this.option.columns.forEach(column => {\r\n this.storage.columnConfigs.push({\r\n originColumn: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n fixed: column.fixed\r\n },\r\n hidden: false,\r\n fixed: column.fixed\r\n });\r\n });\r\n }\r\n\r\n open() {\r\n this.modal.open();\r\n }\r\n\r\n save() {\r\n if (!Number.isSafeInteger(+this.storage.pageSize)) {\r\n this.notifyService.notify.warning(this.translateService.translate('Page size must be an integer'));\r\n return;\r\n }\r\n if (this.storage.pageSize > 200) {\r\n this.notifyService.notify.warning(this.translateService.translate('Page size is too large'));\r\n return;\r\n }\r\n this.#setting?.set?.(this.storage);\r\n this.emitOnChange();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n reset() {\r\n this.#setting?.remove?.();\r\n this.#initDefault();\r\n this.emitOnChange();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n moveColumnUp(index: number) {\r\n const temp = this.storage.columnConfigs[index];\r\n this.storage.columnConfigs[index] = this.storage.columnConfigs[index - 1];\r\n this.storage.columnConfigs[index - 1] = temp;\r\n }\r\n\r\n moveColumnDown(index: number) {\r\n const temp = this.storage.columnConfigs[index];\r\n this.storage.columnConfigs[index] = this.storage.columnConfigs[index + 1];\r\n this.storage.columnConfigs[index + 1] = temp;\r\n }\r\n\r\n emitOnChange() {\r\n const pageSize = +this.storage.pageSize || this.option.pageSize;\r\n const columns = this.option.columns.filter(column => {\r\n // Hidden column theo config\r\n // Lấy các thuộc tính Title, Width, Fixed từ config\r\n const columnConfig = this.storage.columnConfigs.find(e => e.originColumn.field === column.field);\r\n if (columnConfig) {\r\n column.title = columnConfig.title || column.title;\r\n column.width = columnConfig.width || column.width;\r\n column.fixed = columnConfig.fixed;\r\n return !columnConfig.hidden;\r\n }\r\n return true;\r\n }).sort((current, next) => {\r\n // Sắp xếp theo config\r\n const currentIndex = this.storage.columnConfigs.findIndex(e => e.originColumn.field === current.field);\r\n const nextIndex = this.storage.columnConfigs.findIndex(e => e.originColumn.field === next.field);\r\n return currentIndex - nextIndex;\r\n }).filter(column => {\r\n // Hidden column theo option truyền vào\r\n if (column.hidden === undefined) {\r\n return true;\r\n }\r\n if (typeof (column.hidden) === 'boolean') {\r\n return !column.hidden;\r\n }\r\n if (typeof (column.hidden) === 'function') {\r\n return !column.hidden();\r\n }\r\n return false;\r\n });\r\n const result: ConfigResult = {\r\n pageSize,\r\n columns,\r\n fixedColumns: columns.filter(e => e.fixed),\r\n normalColumns: columns.filter(e => !e.fixed)\r\n };\r\n this.sdChange.emit(result);\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectorRef, EventEmitter, ChangeDetectionStrategy, Output } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-edit',\r\n templateUrl: './grid-desktop-column-edit.component.html',\r\n styleUrls: ['./grid-desktop-column-edit.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGridDesktopColumnEdit {\r\n @Input() column: SdGridColumn;\r\n @Input() item: GridItem;\r\n @Output() sdChange = new EventEmitter<{ column: SdGridColumn, item: GridItem, value: any }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n ) { }\r\n\r\n onEditorChange = (column: SdGridColumn, item: GridItem, value: any) => {\r\n if (column.type !== 'children') {\r\n column.editor?.change?.(item, value);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n onAutocompleteChange = (item: any) => {\r\n if (this.column.type === 'string' || this.column.type === 'values') {\r\n this.column.editor?.change?.(this.item, this.item[this.column.field], item);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n onSelectionChange = (params: { value: any, item: any, items: any[] }) => {\r\n if (this.column.type === 'string' || this.column.type === 'values') {\r\n this.column.editor?.change?.(this.item, params?.value, params?.item || params?.items);\r\n this.ref.detectChanges();\r\n this.sdChange.emit();\r\n }\r\n }\r\n\r\n dynamicItems = async (value: any) => {\r\n if ('editor' in this.column && 'item' in this.column.editor) {\r\n const items = this.column.editor.item.items || [];\r\n if (Array.isArray(items)) {\r\n return items;\r\n }\r\n const results = items(this.item, value);\r\n if (results instanceof Promise) {\r\n return await results;\r\n }\r\n return results;\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-view',\r\n templateUrl: './grid-desktop-column-view.component.html',\r\n styleUrls: ['./grid-desktop-column-view.component.scss']\r\n})\r\nexport class SdGridDesktopColumnView {\r\n @Input() column: SdGridColumn;\r\n @Input() item: GridItem;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { SdGridColumn, GridBaseOptionFilter } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-inline-filter',\r\n templateUrl: './grid-desktop-inline-filter.component.html',\r\n styleUrls: ['./grid-desktop-inline-filter.component.scss']\r\n})\r\nexport class SdGridDesktopInlineFilter {\r\n @Input() columns: SdGridColumn[] = [];\r\n @Input() externalFilter: any = {};\r\n @Input() filter: any = {};\r\n @Input() filterOption: GridBaseOptionFilter;\r\n @Input() inlineExternal: {\r\n [key: string]: boolean;\r\n } = {};\r\n @Input() inlineColumn: {\r\n [key: string]: boolean;\r\n } = {};\r\n @Output() sdChange = new EventEmitter();\r\n isDesktop: boolean;\r\n displayKey = 'SDCUSTOM';\r\n constructor() { }\r\n\r\n onUpdateFilter = () => {\r\n this.sdChange.emit();\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { GridItem, SdGridOption } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-mobile-item-view',\r\n templateUrl: './grid-mobile-item-view.component.html',\r\n styleUrls: ['./grid-mobile-item-view.component.scss']\r\n})\r\nexport class SdGridMobileItemView {\r\n @Input() gridOption: SdGridOption;\r\n @Input() item: GridItem;\r\n @Output() check = new EventEmitter<GridItem>();\r\n constructor(\r\n ) { }\r\n\r\n onCheck = (item: GridItem) => {\r\n this.check.emit(item);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdGridOption, SdGridColumn, GridItem } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-editor',\r\n templateUrl: './grid-popup-editor.component.html'\r\n})\r\nexport class SdGridPopupEditor implements OnInit {\r\n\r\n @ViewChild('modal') modal: SdModal;\r\n @Output() save = new EventEmitter<GridItem>();\r\n columns: SdGridColumn[] = [];\r\n gridOption: SdGridOption;\r\n item: GridItem;\r\n isModified: boolean;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n open = (item: GridItem, columns: SdGridColumn[], isModified?: boolean) => {\r\n this.item = item;\r\n this.isModified = isModified ?? false;\r\n this.columns = [];\r\n columns.forEach(column => {\r\n if (column.type !== 'image' && column.type !== 'children') {\r\n this.columns.push(column);\r\n }\r\n if (column.type === 'children') {\r\n column.children?.forEach(childColumn => {\r\n if (childColumn.type !== 'image') {\r\n this.columns.push(childColumn);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n onCancel = () => {\r\n this.modal.close();\r\n }\r\n\r\n onSave = () => {\r\n this.modal.close();\r\n this.save.emit(this.item);\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { SdGridColumn, GridBaseOptionExport } from '../../grid.model';\r\n\r\nimport {\r\n SdExcelService,\r\n ExcelConfig,\r\n ExcelTempateColumn\r\n} from '@sd-angular/core/excel';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport hash from 'object-hash';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-export-excel',\r\n templateUrl: './grid-popup-export-excel.component.html',\r\n styleUrls: ['./grid-popup-export-excel.component.scss']\r\n})\r\nexport class SdGridPopupExportExcel implements OnInit, AfterViewInit {\r\n private prefix = 'Popup Export Excel';\r\n newExcelConfig = 'fd8fb5db-a7ad-4398-93ac-cb3350261180';\r\n @ViewChild('modal') modal: SdModal;\r\n @Input() key = '';\r\n get fullKey() {\r\n if (!this.key) {\r\n return '';\r\n }\r\n return hash({\r\n prefix: this.prefix,\r\n key: this.key\r\n });\r\n }\r\n @Input() columns: SdGridColumn[] = [];\r\n @Input() extendColumns: SdGridColumn[] = [];\r\n @Input() fileName: string;\r\n @Input() validator: (fileName: string) => string;\r\n @Input() exportOption: GridBaseOptionExport;\r\n excelConfigs: ExcelConfig[] = [];\r\n @Output() exportByTemplate = new EventEmitter<{ excelConfig: ExcelConfig, excelColumns: ExcelTempateColumn[] }>();\r\n tabIndex = 0;\r\n selectedExcelConfig: ExcelConfig = {};\r\n exportableColumns: SdGridColumn[] = [];\r\n selected: {\r\n [key: string]: boolean\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService,\r\n private excelService: SdExcelService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n async open() {\r\n if (!this.fullKey) {\r\n await this.exportDefault();\r\n return;\r\n }\r\n await this.loadConfiguration();\r\n this.exportableColumns = [...this.columns, ...(this.extendColumns || [])].filter(e => e.type !== 'image');\r\n this.selected = {};\r\n if (!this.selectedExcelConfig?.name) {\r\n if (this.excelConfigs?.length > 0) {\r\n this.selectedExcelConfig = this.excelConfigs[0];\r\n } else {\r\n this.selectedExcelConfig = {\r\n name: this.newExcelConfig\r\n };\r\n }\r\n }\r\n this.modal.open();\r\n this.ref.detectChanges();\r\n }\r\n\r\n private generateExcelColumns = (columns: SdGridColumn[]) => {\r\n const excelColumns: ExcelTempateColumn[] = [];\r\n for (const column of columns) {\r\n if (column.type === 'children') {\r\n for (const childColumn of column.children) {\r\n if (childColumn.type !== 'image') {\r\n excelColumns.push({\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n description: childColumn.description,\r\n width: childColumn.width\r\n });\r\n }\r\n }\r\n } else if (column.type !== 'image') {\r\n excelColumns.push({\r\n field: column.field,\r\n title: column.title,\r\n description: column.description,\r\n width: column.width\r\n });\r\n }\r\n }\r\n return excelColumns;\r\n }\r\n\r\n private initTemplate = async (columns: SdGridColumn[], fileName?: string) => {\r\n columns = columns || [];\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.exportOption?.sheets)) {\r\n for (const sheet of this.exportOption.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.excelService.generateExcelTemplate({\r\n fileName: fileName || this.fileName,\r\n columns: this.generateExcelColumns(columns),\r\n sheets\r\n });\r\n }\r\n\r\n private initDefaultTemplate = async () => {\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n return await this.initTemplate(columns);\r\n }\r\n\r\n generateTemplate = async () => {\r\n this.loadingService.start();\r\n const result = await this.initDefaultTemplate().finally(this.loadingService.stop);\r\n if (result?.filePath) {\r\n this.excelService.downloadTemplate(result.filePath, `${this.fileName}.xlsx`);\r\n }\r\n }\r\n\r\n generateAndUploadTemplate = async (columns: SdGridColumn[], fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.exportOption?.sheets)) {\r\n for (const sheet of this.exportOption.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.excelService.generateAndUploadExcelTemplate(this.fullKey, {\r\n fileName: fileName || this.fileName,\r\n columns: this.generateExcelColumns(columns),\r\n sheets\r\n });\r\n }\r\n\r\n onExportByTemplate = (excelConfig: ExcelConfig) => {\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n this.exportByTemplate.emit({\r\n excelConfig,\r\n excelColumns: this.generateExcelColumns(columns)\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n uploadTemplate = async () => {\r\n const excelConfig = await this.excelService.uploadTemplate(this.fullKey, this.validator);\r\n this.excelConfigs.push({\r\n name: excelConfig.name,\r\n fullPath: excelConfig.fullPath,\r\n removable: true\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n downloadTemplate = (excelConfig: ExcelConfig) => {\r\n this.excelService.downloadTemplate(excelConfig.fullPath, excelConfig.name);\r\n }\r\n\r\n removeTemplate = (excelConfig: ExcelConfig) => {\r\n this.notifyService.confirm(this.translateService.translate('Remove template')).then(async () => {\r\n this.loadingService.start();\r\n await this.excelService.remove(this.fullKey, excelConfig.name).finally(this.loadingService.stop);\r\n const idx = this.excelConfigs.indexOf(excelConfig);\r\n this.excelConfigs.splice(idx, 1);\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n async loadConfiguration() {\r\n this.excelConfigs = [];\r\n this.excelConfigs = await this.excelService.getFiles(this.fullKey);\r\n }\r\n\r\n exportDefault = async () => {\r\n this.loadingService.start();\r\n const result = await this.initDefaultTemplate().finally(this.loadingService.stop);\r\n const excelColumns: ExcelTempateColumn[] = [];\r\n const extendColumns = this.extendColumns || [];\r\n const columns = [...this.columns, ...extendColumns];\r\n for (const column of columns) {\r\n if (column.type === 'children') {\r\n for (const childColumn of column.children) {\r\n if (childColumn.type !== 'image') {\r\n excelColumns.push({\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n }\r\n }\r\n } else if (column.type !== 'image') {\r\n excelColumns.push({\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n }\r\n }\r\n this.exportByTemplate.emit({\r\n excelConfig: {\r\n fullPath: result.filePath,\r\n name: `[${this.fullKey}] Default.xlsx`\r\n },\r\n excelColumns\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n newTemplate = () => {\r\n this.notifyService.confirmWithInput(this.translateService.translate('Enter your template name'), {\r\n maxlength: 50\r\n }).then(async (fileName: string) => {\r\n this.loadingService.start();\r\n fileName = fileName + '.xlsx';\r\n try {\r\n if (this.validator?.(fileName)) {\r\n this.notifyService.notify.warning(this.validator(fileName));\r\n return;\r\n }\r\n let exportableColumns = this.exportableColumns.filter(column => this.selected[column.field]);\r\n if (!exportableColumns.length) {\r\n exportableColumns = this.exportableColumns;\r\n }\r\n const result = await this.generateAndUploadTemplate(exportableColumns, fileName);\r\n if (result?.filePath) {\r\n const excelConfig: ExcelConfig = {\r\n fullPath: result.filePath,\r\n name: result.fileName,\r\n removable: true\r\n };\r\n this.excelConfigs.push(excelConfig);\r\n this.onExportByTemplate(excelConfig);\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n });\r\n }\r\n\r\n onChangeRadio = (matRadioChange: MatRadioChange) => {\r\n const selectedExcelConfig = this.excelConfigs.find(e => e.name === matRadioChange.value);\r\n if (!selectedExcelConfig) {\r\n this.selectedExcelConfig = {\r\n name: this.newExcelConfig\r\n };\r\n } else {\r\n this.selectedExcelConfig = selectedExcelConfig;\r\n }\r\n this.exportableColumns = [...this.columns, ...(this.extendColumns || [])].filter(e => e.type !== 'image');\r\n this.selected = {};\r\n }\r\n}\r\n","// tslint:disable-next-line:max-line-length\r\nimport { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { SdGridColumn, SdGridExternalFilter, GridBaseOptionFilter } from '../../grid.model';\r\nimport { QuickFilter, FilterConfiguration } from './grid-popup-filter.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdSettingService\r\n} from '@sd-angular/core/setting';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridPopupQuickFilterDetail } from '../grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-filter',\r\n templateUrl: './grid-popup-filter.component.html',\r\n styleUrls: ['./grid-popup-filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SdGridPopupFilter implements OnInit, AfterViewInit {\r\n private keyPrefix = 'PopupFilter';\r\n displayKey = 'SDCUSTOM';\r\n isMobileOrTablet = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('popupQuickFilterDetail') popupQuickFilterDetail: SdGridPopupQuickFilterDetail;\r\n @ViewChild('matSelect') matSelect: MatSelect;\r\n @Input() key = '';\r\n @Input() filterOption: GridBaseOptionFilter;\r\n @Output() accept = new EventEmitter<{ filter: any, externalFilter: any }>();\r\n @Output() clear = new EventEmitter<void>();\r\n @Output() loadInlineFilter = new EventEmitter<FilterConfiguration>();\r\n selectedField: string;\r\n newQuickFilter = 'e1ef1d43-d689-424f-959e-e6cd154cfee7';\r\n filter: any = {};\r\n externalFilter: any = {};\r\n columns: SdGridColumn[] = [];\r\n externalFilters: SdGridExternalFilter[] = [];\r\n quickFilters: QuickFilter[] = [];\r\n selectedCode: string;\r\n maxQuickFilters = 5;\r\n @Input() inlineExternal: {\r\n [key: string]: boolean\r\n } = {};\r\n @Input() inlineColumn: {\r\n [key: string]: boolean\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService,\r\n private settingService: SdSettingService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n this.#loadConfiguration().then(() => {\r\n this.loadInlineFilter.emit({\r\n quickFilters: this.quickFilters || [],\r\n selectedQuickFilter: this.selectedCode || '',\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n open = (\r\n fixedColums: SdGridColumn[],\r\n normalColumns: SdGridColumn[],\r\n filter: any,\r\n externalFilter: any,\r\n externalFilters?: SdGridExternalFilter[]) => {\r\n this.init(fixedColums, normalColumns, filter, externalFilter, externalFilters);\r\n this.modal.open();\r\n }\r\n\r\n init = (\r\n fixedColums: SdGridColumn[],\r\n normalColumns: SdGridColumn[],\r\n filter: any,\r\n externalFilter: any,\r\n externalFilters?: SdGridExternalFilter[]) => {\r\n this.columns = [...fixedColums, ...normalColumns].filter(e => !e.filter?.disabled && e.type !== 'image');\r\n this.columns.forEach(column => {\r\n if (column.type === 'children') {\r\n column.children = column.children.filter(e => !e.filter?.disabled && e.type !== 'image');\r\n }\r\n });\r\n if (externalFilters) {\r\n this.externalFilters = externalFilters.filter(e => !e.disabled);\r\n } else {\r\n this.externalFilters = [];\r\n }\r\n this.filter = filter;\r\n this.externalFilter = this.initExternalFilter(externalFilters, externalFilter);\r\n for (const eFilter of this.externalFilters) {\r\n if (this.inlineExternal[eFilter.field] === undefined) {\r\n this.inlineExternal[eFilter.field] = true;\r\n }\r\n }\r\n for (const column of this.columns) {\r\n if (this.inlineColumn[column.field] === undefined) {\r\n this.inlineColumn[column.field] = true;\r\n }\r\n }\r\n }\r\n\r\n close = () => {\r\n this.modal.close();\r\n }\r\n\r\n onAccept() {\r\n if (this.filterOption?.multiple === false) {\r\n if (this.selectedField) {\r\n if (this.selectedField.startsWith('column')) {\r\n const field = this.selectedField.replace('column', '');\r\n this.accept.emit({\r\n filter: {\r\n [field]: this.filter[field]\r\n },\r\n externalFilter: {}\r\n });\r\n } else if (this.selectedField.startsWith('external')) {\r\n const field = this.selectedField.replace('external', '');\r\n this.accept.emit({\r\n filter: {},\r\n externalFilter: this.initExternalFilter(this.externalFilters, {\r\n [field]: this.externalFilter[field]\r\n })\r\n });\r\n }\r\n }\r\n } else {\r\n this.accept.emit({\r\n filter: this.filter,\r\n externalFilter: this.externalFilter\r\n });\r\n }\r\n this.modal.close();\r\n }\r\n\r\n onClear() {\r\n delete this.selectedCode;\r\n this.clear.emit();\r\n }\r\n\r\n #loadConfiguration = async () => {\r\n this.quickFilters = [];\r\n if (!this.key) {\r\n return;\r\n }\r\n const { get, has } = this.settingService.create<FilterConfiguration>({\r\n prefix: this.keyPrefix,\r\n key: this.key\r\n });\r\n if (!await has()) {\r\n return;\r\n }\r\n const configuration = await get();\r\n if (Array.isArray(configuration?.quickFilters)) {\r\n this.quickFilters = configuration.quickFilters;\r\n }\r\n this.selectedCode = configuration?.selectedQuickFilter || '';\r\n this.inlineExternal = configuration?.inlineExternal || {};\r\n this.inlineColumn = configuration?.inlineColumn || {};\r\n for (const externalFilter of this.externalFilters) {\r\n if (this.inlineExternal[externalFilter.field] === undefined) {\r\n this.inlineExternal[externalFilter.field] = true;\r\n }\r\n }\r\n for (const column of this.columns) {\r\n if (this.inlineColumn[column.field] === undefined) {\r\n this.inlineColumn[column.field] = true;\r\n }\r\n }\r\n }\r\n\r\n async updateConfiguration(selectedQuickFilterCode?: string) {\r\n if (!this.key) {\r\n return;\r\n }\r\n if (selectedQuickFilterCode !== undefined) {\r\n this.selectedCode = selectedQuickFilterCode;\r\n }\r\n const { set } = this.settingService.create<FilterConfiguration>({\r\n prefix: this.keyPrefix,\r\n key: this.key\r\n });\r\n await set({\r\n quickFilters: this.quickFilters,\r\n selectedQuickFilter: this.selectedCode,\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n this.loadInlineFilter.emit({\r\n quickFilters: this.quickFilters || [],\r\n selectedQuickFilter: this.selectedCode || '',\r\n inlineExternal: this.inlineExternal,\r\n inlineColumn: this.inlineColumn\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n const value = change?.value || '';\r\n if (value === this.newQuickFilter) {\r\n this.selectedCode = '';\r\n this.onCreateQuickFilter();\r\n this.ref.detectChanges();\r\n } else {\r\n const quickFilter = this.quickFilters.find(e => e.code === value);\r\n if (quickFilter) {\r\n this.onDetailQuickFilter(quickFilter);\r\n }\r\n }\r\n }\r\n\r\n onCreateQuickFilter = (ev?: Event) => {\r\n ev?.stopPropagation();\r\n ev?.preventDefault();\r\n this.matSelect?.close();\r\n this.popupQuickFilterDetail.open(this.columns, this.externalFilters);\r\n }\r\n\r\n onDetailQuickFilter = async (quickFilter?: QuickFilter) => {\r\n if (quickFilter) {\r\n this.selectedCode = quickFilter.code;\r\n const f1 = JSON.stringify(quickFilter.filter);\r\n const f2 = JSON.stringify(quickFilter.externalFilter);\r\n this.filter = JSON.parse(f1);\r\n this.externalFilter = this.initExternalFilter(this.externalFilters, JSON.parse(f2));\r\n await this.updateConfiguration();\r\n }\r\n }\r\n\r\n onEditQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.matSelect?.close();\r\n if (quickFilter) {\r\n this.popupQuickFilterDetail.open(this.columns,\r\n this.externalFilters,\r\n quickFilter.filter,\r\n quickFilter.externalFilter,\r\n quickFilter.code);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n onDeleteQuickFilter = (ev: Event, quickFilter?: QuickFilter) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.matSelect?.close();\r\n if (quickFilter) {\r\n this.notifyService.confirm(this.translateService.translate('Remove filter')).then(async () => {\r\n if (quickFilter.code === this.selectedCode) {\r\n this.selectedCode = '';\r\n }\r\n const idx = this.quickFilters.findIndex(e => e.code === quickFilter.code);\r\n this.quickFilters.splice(idx, 1);\r\n await this.updateConfiguration();\r\n this.ref.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n onAcceptQuickFilter = async (args: { code: string, filter: any, externalFilter: any }) => {\r\n const quickFilter = this.quickFilters.find(e => e.code === args.code);\r\n if (!quickFilter) {\r\n this.quickFilters.push({\r\n code: args.code,\r\n filter: args.filter,\r\n externalFilter: this.initExternalFilter(this.externalFilters, args.externalFilter)\r\n });\r\n } else {\r\n quickFilter.filter = args.filter;\r\n quickFilter.externalFilter = this.initExternalFilter(this.externalFilters, args.externalFilter);\r\n }\r\n await this.updateConfiguration();\r\n }\r\n\r\n onInlineChange = () => {\r\n this.updateConfiguration();\r\n }\r\n\r\n private initExternalFilter = (externalFilters: SdGridExternalFilter[], externalFilter: any) => {\r\n externalFilter = externalFilter || {};\r\n externalFilters = externalFilters || [];\r\n externalFilters.forEach(e => {\r\n if (e.type === 'string') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? '';\r\n return;\r\n }\r\n if (e.type === 'number') {\r\n externalFilter[e.field] = externalFilter[e.field] ?? e.default ?? undefined;\r\n return;\r\n }\r\n if (e.type === 'daterange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'numberrange') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'daterangefull') {\r\n externalFilter[e.field] = {\r\n from: externalFilter[e.field]?.from ?? e.defaultFrom ?? undefined,\r\n to: externalFilter[e.field]?.to ?? e.defaultTo ?? undefined\r\n };\r\n return;\r\n }\r\n if (e.type === 'values') { // andn1\r\n externalFilter[e.field] = (externalFilter[e.field] || e.default) ?? '';\r\n return;\r\n }\r\n });\r\n return externalFilter;\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input } from '@angular/core';\r\nimport { SdGridColumn, SdGridExternalFilter } from '../../grid.model';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { QuickFilter } from '../grid-popup-filter/grid-popup-filter.model';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\n\r\n@Component({\r\n selector: 'sd-grid-popup-quick-filter-detail',\r\n templateUrl: './grid-popup-quick-filter-detail.component.html',\r\n styleUrls: ['./grid-popup-quick-filter-detail.component.scss']\r\n})\r\nexport class SdGridPopupQuickFilterDetail implements OnInit, AfterViewInit {\r\n displayKey = 'SDCUSTOM';\r\n isMobileOrTablet = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @Input() quickFilters: QuickFilter[];\r\n @Output() accept = new EventEmitter<any>();\r\n fields: Field[] = [];\r\n selectableFields: Field[] = [];\r\n columns: SdGridColumn[] = [];\r\n externalFilters: SdGridExternalFilter[] = [];\r\n filter: Filter = {};\r\n externalFilter: Filter = {};\r\n selectedField: {\r\n [key: string]: boolean;\r\n } = {};\r\n page: 1 | 2 = 1;\r\n code: string;\r\n constructor(\r\n deviceService: DeviceDetectorService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n open(columns: SdGridColumn[], externalFilters: SdGridExternalFilter[], filter?: Filter, externalFilter?: Filter, code?: string) {\r\n this.fields = [];\r\n this.filter = {};\r\n this.externalFilter = {};\r\n this.columns = columns;\r\n this.externalFilters = externalFilters;\r\n this.code = code;\r\n if (filter) {\r\n Object.keys(filter).forEach(key => {\r\n if (filter[key] === undefined || filter[key] === null || filter[key] === '') {\r\n return;\r\n }\r\n const column = columns.find(e => e.field === key);\r\n if (!column) {\r\n return;\r\n }\r\n this.filter[key] = filter[key];\r\n this.fields.push({\r\n ...column,\r\n id: 'column' + column.field,\r\n group: 'column',\r\n type: column.type,\r\n code: column.field,\r\n title: column.title\r\n });\r\n });\r\n }\r\n if (externalFilter) {\r\n Object.keys(externalFilter).forEach(key => {\r\n if (externalFilter[key] === undefined || externalFilter[key] === null || externalFilter[key] === '') {\r\n return;\r\n }\r\n if (key.startsWith(this.displayKey)) {\r\n this.externalFilter[key] = externalFilter[key];\r\n return;\r\n }\r\n const item = externalFilters.find(e => e.field === key);\r\n if (!item) {\r\n return;\r\n }\r\n if (item.type === 'daterange' || item.type === 'numberrange') {\r\n this.externalFilter[key] = { ...externalFilter[key] };\r\n if (!externalFilter[key]?.from && !externalFilter[key]?.to) {\r\n return;\r\n }\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title,\r\n fromTitle: item.fromTitle,\r\n toTitle: item.toTitle,\r\n });\r\n } else if (item.type === 'daterangefull') {\r\n this.externalFilter[key] = { ...externalFilter[key] };\r\n if (!externalFilter[key]?.from && !externalFilter[key]?.to) {\r\n return;\r\n }\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title\r\n });\r\n } else {\r\n this.externalFilter[key] = externalFilter[key];\r\n this.fields.push({\r\n ...item,\r\n id: 'external' + item.field,\r\n group: 'external',\r\n type: item.type,\r\n code: item.field,\r\n title: item.title\r\n });\r\n }\r\n });\r\n }\r\n const externalFields: Field[] = externalFilters?.map(e => ({\r\n ...e,\r\n id: 'external' + e.field,\r\n group: 'external',\r\n code: e.field,\r\n type: e.type,\r\n title: e.title\r\n })) || [];\r\n const columnFields: Field[] = [];\r\n columns?.filter(e => e.type !== 'image').forEach(column => {\r\n if ('children' in column) {\r\n column.children?.filter(e => e.type !== 'image').forEach(e => {\r\n columnFields.push({\r\n ...e,\r\n id: 'column' + e.field,\r\n group: 'column',\r\n code: e.field,\r\n type: e.type,\r\n title: e.title\r\n });\r\n });\r\n } else {\r\n columnFields.push({\r\n ...column,\r\n id: 'column' + column.field,\r\n group: 'column',\r\n code: column.field,\r\n type: column.type,\r\n title: column.title\r\n });\r\n }\r\n });\r\n this.selectableFields = [...externalFields, ...columnFields];\r\n this.selectedField = {};\r\n this.fields.forEach(e => this.selectedField[e.id] = true);\r\n this.page = this.fields.length > 0 ? 2 : 1;\r\n this.modal.open();\r\n }\r\n\r\n onAccept = () => {\r\n const execute = () => {\r\n const filter = {};\r\n const externalFilter = {};\r\n Object.keys(this.filter).forEach(key => {\r\n if (this.filter[key] === undefined || this.filter[key] === null || this.filter[key] === '') {\r\n return;\r\n }\r\n if (!this.fields.some(e => e.group === 'column' && e.code === key)) {\r\n return;\r\n }\r\n filter[key] = this.filter[key];\r\n });\r\n Object.keys(this.externalFilter).forEach(key => {\r\n if (this.externalFilter[key] === undefined || this.externalFilter[key] === null || this.externalFilter[key] === '') {\r\n return;\r\n }\r\n externalFilter[key] = this.externalFilter[key];\r\n });\r\n this.accept.emit({\r\n code: this.code,\r\n filter,\r\n externalFilter\r\n });\r\n this.modal.close();\r\n };\r\n if (!this.code) {\r\n this.notifyService.confirmWithInput('Enter your quick filter name').then((value: string) => {\r\n if (value) {\r\n if (this.quickFilters?.some(e => e.code === value)) {\r\n this.notifyService.notify.warning(this.translateService.translate('Code is existed'));\r\n return;\r\n }\r\n this.code = value;\r\n execute();\r\n }\r\n });\r\n } else {\r\n execute();\r\n }\r\n }\r\n\r\n onCancel = () => {\r\n this.modal.close();\r\n }\r\n\r\n onSelectField = (values: string[]) => {\r\n this.fields = this.selectableFields.filter(e => values.some(v => e.code === v));\r\n for (const field of this.fields) {\r\n if (field.group === 'external' && field.type.includes('range')) {\r\n this.externalFilter[field.code] = this.externalFilter[field.code] || {};\r\n }\r\n }\r\n }\r\n\r\n onSelectFields = () => {\r\n this.fields = this.selectableFields.filter(e => this.selectedField[e.id]);\r\n for (const field of this.fields) {\r\n if (field.group === 'external' && field.type.includes('range')) {\r\n this.externalFilter[field.code] = this.externalFilter[field.code] || {};\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface Field {\r\n id: string;\r\n group: 'column' | 'external';\r\n type: string;\r\n code: string;\r\n title?: string;\r\n fromTitle?: string;\r\n toTitle?: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface Filter {\r\n [field: string]: any;\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { SubOption } from '../../grid.model';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n@Component({\r\n selector: 'sd-grid-sub-information',\r\n templateUrl: './grid-sub-information.component.html',\r\n styleUrls: ['./grid-sub-information.component.scss']\r\n})\r\nexport class SdGridSubInformation implements OnInit, AfterViewInit {\r\n @Input() height = 'auto';\r\n @Input() option: SubOption;\r\n @Input() subItems: any[] = [];\r\n isMobileOrTablet: boolean;\r\n filter: any = {};\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n updateFilter() {\r\n\r\n }\r\n trackById(index, item) {\r\n return item.id;\r\n }\r\n\r\n onEditorChange = () => {\r\n this.ref.detectChanges();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { GridItem, GridColumnChildren } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-desktop-column-children-view',\r\n templateUrl: './grid-desktop-column-children-view.component.html',\r\n styleUrls: ['./grid-desktop-column-children-view.component.scss']\r\n})\r\nexport class GridDesktopColumnChildrenViewComponent {\r\n @Input() column: GridColumnChildren;\r\n @Input() item: GridItem;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n@Pipe({\r\n name: 'cellDesktopClassName'\r\n})\r\nexport class CellDesktopClassNamePipe implements PipeTransform {\r\n transform(value: any, rowData: GridItem, column: SdGridColumn, isChildren?: boolean): string {\r\n const classNames = [];\r\n if (column.click) {\r\n classNames.push('cursor-pointer');\r\n }\r\n if (isChildren) {\r\n classNames.push('c-children');\r\n }\r\n if (column.badge) {\r\n const badge = column.badge(rowData, value);\r\n if (badge) {\r\n classNames.push('c-badge');\r\n classNames.push('badge');\r\n if (badge === 'PRIMARY') {\r\n classNames.push('badge-primary');\r\n } else if (badge === 'SECONDARY') {\r\n classNames.push('badge-secondary');\r\n } else if (badge === 'WARNING') {\r\n classNames.push('badge-warning');\r\n } else if (badge === 'SUCCESS') {\r\n classNames.push('badge-success');\r\n } else if (badge === 'DANGER') {\r\n classNames.push('badge-danger');\r\n } else if (badge === 'LIGHT') {\r\n classNames.push('badge-light');\r\n } else if (badge === 'DARK') {\r\n classNames.push('badge-dark');\r\n }\r\n }\r\n }\r\n return classNames.join(' ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'cellMobileClassName'\r\n})\r\nexport class CellMobileClassNamePipe implements PipeTransform {\r\n transform(value: any, rowData: GridItem, column: SdGridColumn): string {\r\n const classNames = [];\r\n if (column.click) {\r\n classNames.push('cursor-pointer');\r\n }\r\n if (column.badge) {\r\n const badge = column.badge(rowData, value);\r\n if (badge) {\r\n classNames.push('badge');\r\n classNames.push('c-badge');\r\n if (badge === 'PRIMARY') {\r\n classNames.push('badge-primary');\r\n } else if (badge === 'SECONDARY') {\r\n classNames.push('badge-secondary');\r\n } else if (badge === 'WARNING') {\r\n classNames.push('badge-warning');\r\n } else if (badge === 'SUCCESS') {\r\n classNames.push('badge-success');\r\n } else if (badge === 'DANGER') {\r\n classNames.push('badge-danger');\r\n } else if (badge === 'LIGHT') {\r\n classNames.push('badge-light');\r\n } else if (badge === 'DARK') {\r\n classNames.push('badge-dark');\r\n }\r\n }\r\n }\r\n return classNames.join(' ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, ColumnCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'columnCommandFilter'\r\n})\r\nexport class ColumnCommandFilterPipe implements PipeTransform {\r\n async transform(commands: ColumnCommand[], item: GridItem): Promise<ColumnCommand[]> {\r\n const results: ColumnCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n@Pipe({\r\n name: 'columnHtmlTemplate'\r\n})\r\nexport class ColumnHtmlTemplatePipe implements PipeTransform {\r\n private isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(value: any, rowData: GridItem, htmlTemplate: (value: any, rowData?: any, isMobileOrTablet?: boolean) => string): string {\r\n if (typeof (htmlTemplate) !== 'function') {\r\n return value;\r\n }\r\n return htmlTemplate(value, rowData, this.isMobileOrTablet);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'columnTitle'\r\n})\r\nexport class ColumnTitlePipe implements PipeTransform {\r\n async transform(item: GridItem, title: string, dynamicTitle: ((rowData: any) => string | Promise<string>)): Promise<string> {\r\n if (!title) {\r\n return '';\r\n }\r\n if (dynamicTitle) {\r\n const result = dynamicTitle(item);\r\n if (result instanceof Promise) {\r\n return (await result) || title;\r\n }\r\n return result || title;\r\n }\r\n return title;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\n@Pipe({\r\n name: 'columnValues'\r\n})\r\nexport class ColumnValuesPipe implements PipeTransform {\r\n private static cache: {\r\n [key: string]: {\r\n values: ValueData[],\r\n obj: {\r\n [key: string]: ValueData\r\n }\r\n }\r\n } = {};\r\n constructor(private utilityService: SdUtilityService) { }\r\n transform(value: any, values: ValueData[]): ValueData {\r\n const hashKey = hash(values);\r\n if (!ColumnValuesPipe.cache[hashKey]) {\r\n ColumnValuesPipe.cache[hashKey] = {\r\n values,\r\n obj: this.utilityService.arrayToObject(values, 'value')\r\n };\r\n }\r\n if (!ColumnValuesPipe.cache[hashKey].obj[value]) {\r\n return {\r\n value,\r\n text: value\r\n };\r\n }\r\n return ColumnValuesPipe.cache[hashKey].obj[value];\r\n\r\n }\r\n}\r\n\r\ninterface ValueData {\r\n value: string;\r\n text: string;\r\n icon?: string;\r\n color?: string;\r\n backgroundColor?: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandDisabled'\r\n})\r\nexport class CommandDisabledPipe implements PipeTransform {\r\n transform(disabled: boolean | ((item?: any) => boolean), item: GridItem): boolean {\r\n if (!disabled) {\r\n return false;\r\n }\r\n if (typeof (disabled) === 'boolean') {\r\n return disabled;\r\n }\r\n return disabled(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand, GridCommandNoChildren } from '../grid.model';\r\n@Pipe({\r\n name: 'commandFilter'\r\n})\r\nexport class CommandFilterPipe implements PipeTransform {\r\n async transform(commands: SdGridCommand[], item: GridItem): Promise<SdGridCommand[]> {\r\n const results: SdGridCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n if ('children' in command) {\r\n let flag = true;\r\n const { hiddenByItem } = command;\r\n if (hiddenByItem) {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (await hidden) {\r\n flag = false;\r\n }\r\n } else {\r\n if (hidden) {\r\n flag = false;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n const children: GridCommandNoChildren[] = [];\r\n for (const childCommand of command.children) {\r\n if (!childCommand.hiddenByItem) {\r\n children.push(childCommand);\r\n } else {\r\n const hidden = childCommand.hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n if (!hidden) {\r\n children.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n if (children.length) {\r\n results.push({\r\n ...command,\r\n children\r\n });\r\n }\r\n }\r\n } else {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'commandHidden'\r\n})\r\nexport class CommandHidden implements PipeTransform {\r\n async transform(item: GridItem, command: SdGridCommand): Promise<boolean> {\r\n const { hidden, hiddenByItem } = command;\r\n if (hidden) {\r\n return true;\r\n }\r\n if (hiddenByItem) {\r\n const hiddenResult = hiddenByItem(item);\r\n if (hiddenResult instanceof Promise) {\r\n if (await hiddenResult) {\r\n return true;\r\n }\r\n } else {\r\n if (hiddenResult) {\r\n return true;\r\n }\r\n }\r\n }\r\n if ('children' in command) {\r\n const results = [];\r\n for (const childCommand of command.children) {\r\n const { hidden: childHidden, hiddenByItem: childHiddenByItem } = childCommand;\r\n if (!childHidden && !childHiddenByItem) {\r\n results.push(childCommand);\r\n } else {\r\n if (childHiddenByItem) {\r\n const hiddenResult = childHiddenByItem(item);\r\n if (hiddenResult instanceof Promise) {\r\n if (!await hiddenResult) {\r\n results.push(childCommand);\r\n }\r\n } else {\r\n if (!hiddenResult) {\r\n results.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (results.length === 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandIcon'\r\n})\r\nexport class CommandIconPipe implements PipeTransform {\r\n transform(icon: string | ((item?: any) => string), item: GridItem): string {\r\n if (!icon) {\r\n return '';\r\n }\r\n if (typeof (icon) === 'string') {\r\n return icon;\r\n }\r\n return icon(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'commandTitle'\r\n})\r\nexport class CommandTitlePipe implements PipeTransform {\r\n transform(title: string | ((item?: any) => string), item: GridItem): string {\r\n if (!title) {\r\n return '';\r\n }\r\n if (typeof (title) === 'string') {\r\n return title;\r\n }\r\n return title(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, DynamicEditorItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorDynamicItem'\r\n})\r\nexport class EditorDynamicItemPipe implements PipeTransform {\r\n private previous: Date;\r\n private previousResults: any[] = [];\r\n private delay = 200; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n async transform(value: any, item: GridItem, editor: DynamicEditorItem) {\r\n if (!editor.dependOnField) {\r\n return editor.items || [];\r\n }\r\n this.previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.previous.getTime();\r\n if (dif < this.delay) {\r\n return this.previousResults;\r\n }\r\n const items = editor.items || [];\r\n if (typeof (items) === 'function') {\r\n const results = items(item, value);\r\n if (results instanceof Promise) {\r\n this.previousResults = await results;\r\n } else {\r\n this.previousResults = results;\r\n }\r\n } else {\r\n this.previousResults = items;\r\n }\r\n this.previousResults = this.previousResults || [];\r\n return this.previousResults;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorSubInformationHandler'\r\n})\r\nexport class EditorSubInformationHandlerPipe implements PipeTransform {\r\n transform(value: any, item: GridItem, columns: SdGridColumn[]): boolean {\r\n const visible = (column: SdGridColumn) => {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n let isDisabled = false;\r\n\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (column.editor) {\r\n isDisabled = typeof (column.editor.disabled) === 'function' ? column.editor.disabled(item) : column.editor.disabled;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n // Nếu bị disabled return false\r\n if (isDisabled) {\r\n return false;\r\n }\r\n\r\n // Hiển thị editor nếu dòng đó:\r\n // Đang được edit: editingStatus\r\n return item.editingStatus\r\n // Được thiết lập alwayDisplay\r\n || (column.editor && column.editor.alwayDisplay);\r\n };\r\n item.editorHandler = item.editorHandler || {};\r\n for (const column of columns) {\r\n item.editorHandler.disabled = false;\r\n item.editorHandler[column.field] = {};\r\n\r\n if (item.editorHandler.disabled) {\r\n item.editorHandler[column.field].visible = false;\r\n } else {\r\n item.editorHandler[column.field].visible = visible(column);\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorValidate'\r\n})\r\nexport class EditorValidatePipe implements PipeTransform {\r\n private previous: Date;\r\n private delay = 1000; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện validate\r\n async transform(value: string, item: GridItem, validate: (item: GridItem) => string | Promise<string>): Promise<boolean> {\r\n this.previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.previous.getTime();\r\n if (dif < this.delay) {\r\n return true;\r\n }\r\n item.editorHandler = item.editorHandler || {};\r\n if (!validate) {\r\n item.editorHandler.errorMessage = null;\r\n return true;\r\n }\r\n const result = validate(item);\r\n if (result instanceof Promise) {\r\n item.editorHandler.errorMessage = await result;\r\n return true;\r\n } else {\r\n item.editorHandler.errorMessage = result;\r\n return true;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'filterMobile',\r\n pure: false\r\n})\r\nexport class FilterMobilePipe implements PipeTransform {\r\n transform(columns: SdGridColumn[], item: GridItem): SdGridColumn[] {\r\n // Những giá trị undefined, null và rỗng sẽ bỏ qua khi hiển thị trên mobile\r\n return columns.filter(column => (item[column.field] !== undefined\r\n && item[column.field] !== null\r\n && item[column.field] !== '')\r\n || column.htmlTemplate\r\n || column.type === 'children'\r\n || (column.type === 'string' && column.commands?.length > 0));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridCommand } from '../grid.model';\r\n@Pipe({\r\n name: 'mobileCommandFilter'\r\n})\r\nexport class MobileCommandFilterPipe implements PipeTransform {\r\n async transform(commands: SdGridCommand[], item: GridItem): Promise<SdGridCommand[]> {\r\n const results: SdGridCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n if ('children' in command) {\r\n let flag = true;\r\n const { hiddenByItem } = command;\r\n if (hiddenByItem) {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (await hidden) {\r\n flag = false;\r\n }\r\n } else {\r\n if (hidden) {\r\n flag = false;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n for (const childCommand of command.children) {\r\n if (!childCommand.hiddenByItem) {\r\n results.push(childCommand);\r\n } else {\r\n const hidden = childCommand.hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(childCommand);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n const { hiddenByItem } = command;\r\n if (!hiddenByItem) {\r\n results.push(command);\r\n } else {\r\n const hidden = hiddenByItem(item);\r\n if (hidden instanceof Promise) {\r\n if (!await hidden) {\r\n results.push(command);\r\n }\r\n } else {\r\n if (!hidden) {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\n\r\n@Pipe({\r\n name: 'mobileViewHtmlTempate'\r\n})\r\nexport class MobileViewHtmlTemplatePipe implements PipeTransform {\r\n transform(rowData: GridItem, columns: SdGridColumn[], htmlTemplate: (rowData: any, columns?: SdGridColumn[]) => string): string {\r\n return htmlTemplate(rowData, columns);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GridItem, SdGridColumn } from '../grid.model';\r\nimport { DecimalPipe } from '@angular/common';\r\n@Pipe({\r\n name: 'valueTransform'\r\n})\r\nexport class ValueTransformPipe implements PipeTransform {\r\n constructor(private decimalPipe: DecimalPipe) {}\r\n transform(value: any, rowData: GridItem, column: SdGridColumn): string {\r\n if (column.transform) {\r\n return column.transform(value, rowData);\r\n } else if (column.type === 'number' && Number.isNumber(value)) {\r\n return this.decimalPipe.transform(value, '1.0-2');\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridColumn, GridItem } from '../grid.model';\r\n@Pipe({\r\n name: 'editorPopupVisible'\r\n})\r\nexport class EditorPopupVisiblePipe implements PipeTransform {\r\n transform(column: SdGridColumn, item: GridItem): boolean {\r\n if (column.type === 'children') {\r\n return false;\r\n }\r\n if (typeof (column.editor?.hidden) === 'boolean' && column.editor.hidden) {\r\n return false;\r\n }\r\n if (typeof (column.editor?.hidden) === 'function' && column.editor.hidden(item)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSubHeaderDef]'\r\n})\r\nexport class SdSubHeaderDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { SdUploadExcel, SdUploadExcelColumn, SdUploadExcelOption } from '@sd-angular/core/upload-excel';\r\nimport { SdGridColumn } from '../../grid.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-import-excel',\r\n templateUrl: './grid-import-excel.component.html'\r\n})\r\nexport class SdGridImportExcel {\r\n @Input() key: string;\r\n @Input() accept: (item: any[], successItems: any[], errorItems: any[], warningItems: []) => void | Promise<void>;\r\n @Input() set columns(gridColumns: SdGridColumn[]) {\r\n const columns: SdUploadExcelColumn[] = [];\r\n gridColumns.forEach(column => {\r\n if (column.ignoreImport) {\r\n return;\r\n }\r\n if (column.type === 'string' || column.type === 'color') {\r\n columns.push({\r\n type: 'string',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'number') {\r\n columns.push({\r\n type: 'number',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'bool') {\r\n columns.push({\r\n type: 'bool',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'date') {\r\n columns.push({\r\n type: 'date',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'datetime' || column.type === 'time') {\r\n columns.push({\r\n type: 'datetime',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width\r\n });\r\n } else if (column.type === 'values') {\r\n columns.push({\r\n type: 'values',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n values: column.values.map(e => e.value),\r\n });\r\n } else if (column.type === 'radio') {\r\n columns.push({\r\n type: 'radio',\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n values: column.values.map(e => e[column.valueField])\r\n });\r\n }\r\n if (column.type === 'children' && column.children?.length) {\r\n column.children.forEach(childColumn => {\r\n if (childColumn.ignoreImport) {\r\n return;\r\n }\r\n if (childColumn.type === 'string' || childColumn.type === 'color') {\r\n columns.push({\r\n type: 'string',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'number') {\r\n columns.push({\r\n type: 'number',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'bool') {\r\n columns.push({\r\n type: 'bool',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'date') {\r\n columns.push({\r\n type: 'date',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'datetime' || childColumn.type === 'time') {\r\n columns.push({\r\n type: 'datetime',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width\r\n });\r\n } else if (childColumn.type === 'values') {\r\n columns.push({\r\n type: 'values',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width,\r\n values: childColumn.values.map(e => e.value),\r\n });\r\n } else if (childColumn.type === 'radio') {\r\n columns.push({\r\n type: 'radio',\r\n field: childColumn.field,\r\n title: childColumn.title,\r\n width: childColumn.width,\r\n values: childColumn.values.map(e => e[childColumn.valueField])\r\n });\r\n }\r\n });\r\n }\r\n });\r\n this.option = {\r\n key: `GridImport${this.key}`,\r\n columns,\r\n onAccept: this.accept\r\n };\r\n }\r\n option: SdUploadExcelOption;\r\n @ViewChild(SdUploadExcel) control: SdUploadExcel;\r\n constructor() { }\r\n\r\n open = () => {\r\n this.control?.open();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdGrid } from './grid.component';\r\nimport { SdDynamicItems } from './pipes/dynamic-items.pipe';\r\nimport { SdGridConfig } from './components/grid-config/grid-config.component';\r\nimport { SdGridDesktopColumnEdit } from './components/grid-desktop-column-edit/grid-desktop-column-edit.component';\r\nimport { SdGridDesktopColumnView } from './components/grid-desktop-column-view/grid-desktop-column-view.component';\r\nimport { SdGridDesktopInlineFilter } from './components/grid-desktop-inline-filter/grid-desktop-inline-filter.component';\r\nimport { SdGridMobileItemView } from './components/grid-mobile-item-view/grid-mobile-item-view.component';\r\nimport { SdGridPopupEditor } from './components/grid-popup-editor/grid-popup-editor.component';\r\nimport { SdGridPopupExportExcel } from './components/grid-popup-export-excel/grid-popup-export-excel.component';\r\nimport { SdGridPopupFilter } from './components/grid-popup-filter/grid-popup-filter.component';\r\nimport { SdGridPopupQuickFilterDetail } from './components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component';\r\nimport { SdGridSubInformation } from './components/grid-sub-information/grid-sub-information.component';\r\nimport { GridDesktopColumnChildrenViewComponent } from './components/grid-desktop-column-children-view/grid-desktop-column-children-view.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CellDesktopClassNamePipe } from './pipes/cell-desktop-class-name.pipe';\r\nimport { CellMobileClassNamePipe } from './pipes/cell-mobile-class-name.pipe';\r\nimport { ColumnCommandFilterPipe } from './pipes/column-command-filter.pipe';\r\nimport { ColumnHtmlTemplatePipe } from './pipes/column-html-template.pipe';\r\nimport { ColumnTitlePipe } from './pipes/column-title.pipe';\r\nimport { ColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { CommandDisabledPipe } from './pipes/command-disabled.pipe';\r\nimport { CommandFilterPipe } from './pipes/command-filter.pipe';\r\nimport { CommandHidden } from './pipes/command-hidden.pipe';\r\nimport { CommandIconPipe } from './pipes/command-icon.pipe';\r\nimport { CommandTitlePipe } from './pipes/command-title.pipe';\r\nimport { EditorDynamicItemPipe } from './pipes/editor-dynamic-item.pipe';\r\nimport { EditorHandlerPipe } from './pipes/editor-handler.pipe';\r\nimport { EditorSubInformationHandlerPipe } from './pipes/editor-sub-information-handler.pipe';\r\nimport { EditorValidatePipe } from './pipes/editor-validate.pipe';\r\nimport { FilterMobilePipe } from './pipes/filter-mobile.pipe';\r\nimport { MobileCommandFilterPipe } from './pipes/mobile-command-filter';\r\nimport { MobileViewHtmlTemplatePipe } from './pipes/mobile-view-html-template.pipe';\r\nimport { ValueTransformPipe } from './pipes/value-transform.pipe';\r\nimport { EditorPopupVisiblePipe } from './pipes/editor-popup-visible.pipe';\r\nimport { SdCellDefDirective } from './directives/cell-def.directive';\r\nimport { SdCellEditorDefDirective } from './directives/cell-editor-def.directive';\r\nimport { SdCellFooterDevDirective } from './directives/cell-footer-def.directive';\r\nimport { SdSubHeaderDefDirective } from './directives/sub-information-header-def.directive';\r\nimport { SdGridImportExcel } from './components/grid-import-excel/grid-import-excel.component';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { HandlerLocal } from './models/handler-local';\r\nimport { HandlerDotnet } from './models/handler-dotnet';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SdUploadExcelModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n SdGrid,\r\n SdGridConfig,\r\n SdGridDesktopColumnEdit,\r\n SdGridDesktopColumnView,\r\n SdGridDesktopInlineFilter,\r\n SdGridMobileItemView,\r\n SdGridPopupEditor,\r\n SdGridPopupExportExcel,\r\n SdGridPopupFilter,\r\n SdGridPopupQuickFilterDetail,\r\n SdGridSubInformation,\r\n SdGridImportExcel,\r\n\r\n GridDesktopColumnChildrenViewComponent,\r\n CellDesktopClassNamePipe,\r\n CellMobileClassNamePipe,\r\n ColumnCommandFilterPipe,\r\n ColumnHtmlTemplatePipe,\r\n ColumnTitlePipe,\r\n ColumnValuesPipe,\r\n CommandDisabledPipe,\r\n CommandFilterPipe,\r\n CommandHidden,\r\n CommandIconPipe,\r\n CommandTitlePipe,\r\n SdDynamicItems,\r\n EditorDynamicItemPipe,\r\n EditorHandlerPipe,\r\n EditorSubInformationHandlerPipe,\r\n EditorValidatePipe,\r\n FilterMobilePipe,\r\n MobileCommandFilterPipe,\r\n MobileViewHtmlTemplatePipe,\r\n ValueTransformPipe,\r\n EditorPopupVisiblePipe,\r\n\r\n SdCellDefDirective,\r\n SdCellEditorDefDirective,\r\n SdCellFooterDevDirective,\r\n SdSubHeaderDefDirective,\r\n ],\r\n exports: [\r\n SdGrid,\r\n SdCellDefDirective,\r\n SdCellEditorDefDirective,\r\n SdCellFooterDevDirective,\r\n SdSubHeaderDefDirective,\r\n ],\r\n providers: [\r\n HandlerLocal,\r\n HandlerDotnet,\r\n EditorHandlerPipe\r\n ]\r\n})\r\nexport class SdGridModule {\r\n}\r\n","export class QuickFilter {\r\n code: string;\r\n filter: {\r\n [field: string]: any\r\n };\r\n externalFilter: {\r\n [field: string]: any\r\n };\r\n}\r\n\r\nexport interface FilterConfiguration {\r\n selectedQuickFilter: string;\r\n quickFilters: QuickFilter[];\r\n inlineExternal: {\r\n [key: string]: boolean;\r\n };\r\n inlineColumn: {\r\n [key: string]: boolean;\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Pipe","InjectionToken","Directive","TemplateRef","Input","Injectable","DatePipe","QueryList","Subscription","$","startWith","merge","Component","ChangeDetectionStrategy","Inject","Optional","ChangeDetectorRef","DeviceDetectorService","SdTranslateService","SdLoadingService","SdApiService","SdExcelService","SdNotifyService","ViewChildren","ViewChild","ContentChildren","MatPaginator","EventEmitter","SdSettingService","Output","hash","ViewEncapsulation","SdUtilityService","DecimalPipe","SdUploadExcel","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatFormFieldModule","MatPaginatorModule","MatTableModule","MatMenuModule","MatIconModule","MatButtonModule","MatTooltipModule","MatProgressSpinnerModule","MatChipsModule","MatRadioModule","MatSlideToggleModule","MatSelectModule","MatCheckboxModule","SdUploadExcelModule","SdFormModule","SdServiceModule"],"mappings":"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"}
|