tnx-shared 5.2.17 → 5.2.18
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/classes/base/component-base.d.ts +1 -1
- package/classes/base/data-form-base.d.ts +1 -1
- package/classes/base/data-list-base.d.ts +1 -1
- package/classes/base/list-base.d.ts +1 -1
- package/classes/base/tree-list-base.d.ts +1 -1
- package/classes/public-function.d.ts +3 -2
- package/components/access-denied-component/access-denied-v1/access-denied-v1.component.d.ts +1 -1
- package/components/access-denied-component/access-denied.component.d.ts +1 -1
- package/components/add-news/add-news.component.d.ts +1 -1
- package/components/address/address.component.d.ts +1 -1
- package/components/after-view-checked/after-view-checked.component.d.ts +1 -1
- package/components/autocomplete-datasource/autocomplete-datasource.component.d.ts +1 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts +1 -1
- package/components/avatar-uploader/avatar-uploader.component.d.ts +1 -1
- package/components/chat/chat-box/chat-box.component.d.ts +1 -1
- package/components/chat/chat-send-message-box/chat-send-message-box.component.d.ts +1 -1
- package/components/check-box-list/check-box-list.component.d.ts +1 -1
- package/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.d.ts +1 -1
- package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts +1 -1
- package/components/common-app-component/app-root-menu/app-root-menu.component.d.ts +1 -1
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts +1 -1
- package/components/common-app-component/app-topbar-v2/app-topbar-v2.component.d.ts +1 -1
- package/components/common-app-component/app.footer.component.d.ts +1 -1
- package/components/common-app-component/app.menu.component.d.ts +2 -2
- package/components/common-app-component/app.profile.component.d.ts +1 -1
- package/components/common-app-component/app.topbar.component.d.ts +1 -1
- package/components/common-app-component/common-app-component.d.ts +1 -1
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts +1 -1
- package/components/common-dashboard/common-dashboard.component.d.ts +1 -1
- package/components/congviec-picker/congviec-picker.component.d.ts +1 -1
- package/components/crud/advance-search/advance-search.component.d.ts +1 -1
- package/components/crud/check-ready/check-ready.component.d.ts +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts +1 -1
- package/components/crud/crud-list/crud-list.component.d.ts +1 -1
- package/components/crud/table-detail-form/table-detail-form.component.d.ts +1 -1
- package/components/crud/tn-table.component.d.ts +1 -1
- package/components/crud/tree-table/tree-table.component.d.ts +1 -1
- package/components/datetime-picker/datetime-picker.component.d.ts +1 -1
- package/components/datetime-picker-range/datetime-picker-range.component.d.ts +1 -1
- package/components/dropdown/dropdown.component.d.ts +1 -1
- package/components/dropdown/quick-add-form/quick-add-form.component.d.ts +1 -1
- package/components/entity-permission/entity-permission.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-box/entity-picker-box.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.d.ts +1 -1
- package/components/entity-picker/entity-picker.component.d.ts +1 -1
- package/components/equation-editor/equation-editor.component.d.ts +1 -1
- package/components/file-explorer/file-explorer.component.d.ts +1 -1
- package/components/file-explorer/file-form/file-form.component.d.ts +1 -1
- package/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.d.ts +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +1 -1
- package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/file-tai-lieu.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.d.ts +1 -1
- package/components/file-explorer/file-version-list/file-version-list.component.d.ts +1 -1
- package/components/file-explorer/file-viewer/file-viewer.component.d.ts +1 -1
- package/components/file-explorer/folder-form/folder-form.component.d.ts +1 -1
- package/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.d.ts +1 -1
- package/components/file-explorer/signature-detail/signature-detail.component.d.ts +1 -1
- package/components/file-upload/file-upload.component.d.ts +1 -1
- package/components/key-value/key-value.component.d.ts +1 -1
- package/components/mask/mask.component.d.ts +1 -1
- package/components/not-found/not-found.component.d.ts +1 -1
- package/components/number-picker-range/number-picker-range.component.d.ts +1 -1
- package/components/paging-next-back-only/paging-next-back-only.component.d.ts +1 -1
- package/components/permission-utils/permission-utils.component.d.ts +1 -1
- package/components/qr-code-generator/qr-code-generator.component.d.ts +1 -1
- package/components/query-builders/query-builder/query-builder.component.d.ts +1 -1
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts +1 -1
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts +1 -1
- package/components/radio-button-list/radio-button-list.component.d.ts +1 -1
- package/components/report-queue/report-queue.component.d.ts +1 -1
- package/components/service-file-upload/service-file-upload.component.d.ts +1 -1
- package/components/settings/settings-row/settings-row.component.d.ts +1 -1
- package/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.d.ts +1 -1
- package/components/settings/settings-workflow/settings-workflow.component.d.ts +1 -1
- package/components/settings/settings.component.d.ts +1 -1
- package/components/share-link-by-permission/share-link-by-permission.component.d.ts +1 -1
- package/components/splash-component/splash-component-v1/splash-component-v1.component.d.ts +1 -1
- package/components/splash-component/splash-component-v2/splash-component-v2.component.d.ts +1 -1
- package/components/splash-component/splash-component.component.d.ts +1 -1
- package/components/statemachines/dynamic-node/dynamic-node.component.d.ts +1 -1
- package/components/statemachines/state/state.component.d.ts +1 -1
- package/components/statemachines/state-metadata/state-metadata.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts +1 -1
- package/components/statemachines/statemachines-designer/statemachines-designer.component.d.ts +1 -1
- package/components/tn-app-help/helper-current-page/helper-current-page.component.d.ts +1 -1
- package/components/tn-app-help/tn-app-help.component.d.ts +1 -1
- package/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.d.ts +1 -1
- package/components/tn-app-notification/tn-app-notification.component.d.ts +1 -1
- package/components/tn-checkbox/tn-checkbox.component.d.ts +1 -1
- package/components/tn-color-picker/tn-color-picker.component.d.ts +1 -1
- package/components/tn-custom-scrollbar/tn-custom-scrollbar.component.d.ts +1 -1
- package/components/tn-dialog/tn-dialog.component.d.ts +1 -1
- package/components/tn-tabview/tn-tabview.component.d.ts +1 -1
- package/components/tn-template/tn-template.component.d.ts +1 -1
- package/components/tn-tinymce/tn-tinymce.component.d.ts +1 -1
- package/components/universal-link-processor/universal-link-processor.component.d.ts +1 -1
- package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +1 -1
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.d.ts +1 -1
- package/components/user-picker/user-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.d.ts +1 -1
- package/components/vanban-picker/vanban-picker.component.d.ts +1 -1
- package/components/workflow/cho-y-kien-form/cho-y-kien-form.component.d.ts +1 -1
- package/components/workflow/permission-sharing/permission-sharing.component.d.ts +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +1 -1
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +1 -1
- package/components/workflow/simple-workflow-form/simple-workflow-form.component.d.ts +1 -1
- package/components/workflow/start-workflow/start-workflow.component.d.ts +1 -1
- package/components/workflow/workflow-history/workflow-history.component.d.ts +1 -1
- package/components/workflow/workflow-history-dialog/workflow-history-dialog.component.d.ts +1 -1
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts +1 -1
- package/components/workflow/workflow-permission/workflow-permission.component.d.ts +1 -1
- package/components/workflow/workflow-permission-form/workflow-permission-form.component.d.ts +1 -1
- package/components/workflow/workflow-picker/workflow-picker.component.d.ts +1 -1
- package/components/workflow/workflow-setting/workflow-setting.component.d.ts +1 -1
- package/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.d.ts +1 -1
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts +1 -1
- package/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.d.ts +1 -1
- package/congviec/cauhinh-workflow/cauhinh-workflow.component.d.ts +1 -1
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +1 -1
- package/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.d.ts +1 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts +1 -1
- package/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.d.ts +1 -1
- package/congviec/congviec/congviec.component.d.ts +1 -1
- package/congviec/congviec-test/congviec.component.d.ts +1 -1
- package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.d.ts +1 -1
- package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.d.ts +1 -1
- package/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.d.ts +1 -1
- package/congviec/dm-loai-congviec/dm-loai-congviec.component.d.ts +1 -1
- package/congviec/dm-priority/dm-priority-form/dm-priority-form.component.d.ts +1 -1
- package/congviec/dm-priority/dm-priority.component.d.ts +1 -1
- package/directives/authorize.directive.d.ts +1 -1
- package/directives/prevent-shift-tab.directive.d.ts +1 -1
- package/directives/primeng/tn-table.directive.d.ts +5 -5
- package/directives/tn-template.directive.d.ts +1 -1
- package/esm2020/app-context/application-context.service.mjs +3 -3
- package/esm2020/app-context/component-context.service.mjs +3 -3
- package/esm2020/classes/base/component-base.mjs +3 -3
- package/esm2020/classes/base/data-form-base.mjs +3 -3
- package/esm2020/classes/base/data-list-base.mjs +3 -3
- package/esm2020/classes/base/list-base.mjs +3 -3
- package/esm2020/classes/base/tree-list-base.mjs +3 -3
- package/esm2020/components/access-denied-component/access-denied-v1/access-denied-v1.component.mjs +3 -3
- package/esm2020/components/access-denied-component/access-denied.component.mjs +6 -6
- package/esm2020/components/add-news/add-news.component.mjs +6 -6
- package/esm2020/components/address/address.component.mjs +5 -5
- package/esm2020/components/address/services/address.service.mjs +3 -3
- package/esm2020/components/after-view-checked/after-view-checked.component.mjs +4 -4
- package/esm2020/components/autocomplete-datasource/autocomplete-datasource.component.mjs +7 -7
- package/esm2020/components/autocomplete-picker/autocomplete-picker.component.mjs +11 -11
- package/esm2020/components/avatar-uploader/avatar-uploader.component.mjs +6 -6
- package/esm2020/components/chat/chat-box/chat-box.component.mjs +7 -7
- package/esm2020/components/chat/chat-send-message-box/chat-send-message-box.component.mjs +10 -10
- package/esm2020/components/chat/services/chat.service.mjs +3 -3
- package/esm2020/components/chat/services/content.service.mjs +3 -3
- package/esm2020/components/chat/services/message-board.service.mjs +3 -3
- package/esm2020/components/chat/services/status.service.mjs +3 -3
- package/esm2020/components/check-box-list/check-box-list.component.mjs +8 -8
- package/esm2020/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.mjs +7 -7
- package/esm2020/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.mjs +6 -6
- package/esm2020/components/cocautochuc/services/cocautochuc.service.mjs +3 -3
- package/esm2020/components/common-app-component/app-root-menu/app-root-menu.component.mjs +4 -4
- package/esm2020/components/common-app-component/app-topbar-v1/app-topbar-v1.component.mjs +11 -11
- package/esm2020/components/common-app-component/app-topbar-v2/app-topbar-v2.component.mjs +9 -9
- package/esm2020/components/common-app-component/app.footer.component.mjs +3 -3
- package/esm2020/components/common-app-component/app.menu.component.mjs +11 -17
- package/esm2020/components/common-app-component/app.profile.component.mjs +5 -5
- package/esm2020/components/common-app-component/app.topbar.component.mjs +11 -11
- package/esm2020/components/common-app-component/common-app-component.mjs +15 -15
- package/esm2020/components/common-app-component/default-setting-form/default-data-settings.component.mjs +7 -7
- package/esm2020/components/common-dashboard/common-dashboard.component.mjs +3 -3
- package/esm2020/components/congviec-picker/congviec-picker.component.mjs +7 -7
- package/esm2020/components/congviec-picker/services/congviec.service.mjs +3 -3
- package/esm2020/components/congviec-picker/services/taskworkflowhistories.service.mjs +3 -3
- package/esm2020/components/crud/advance-search/advance-search.component.mjs +14 -14
- package/esm2020/components/crud/check-ready/check-ready.component.mjs +4 -4
- package/esm2020/components/crud/crud-form/crud-form.component.mjs +26 -26
- package/esm2020/components/crud/crud-list/crud-list.component.mjs +25 -25
- package/esm2020/components/crud/table-detail-form/table-detail-form.component.mjs +6 -6
- package/esm2020/components/crud/tn-table.component.mjs +3 -3
- package/esm2020/components/crud/tree-table/tree-table.component.mjs +23 -23
- package/esm2020/components/datetime-picker/datetime-picker.component.mjs +7 -7
- package/esm2020/components/datetime-picker-range/datetime-picker-range.component.mjs +6 -6
- package/esm2020/components/dropdown/dropdown.component.mjs +11 -11
- package/esm2020/components/dropdown/quick-add-form/quick-add-form.component.mjs +6 -6
- package/esm2020/components/dropdown/services/dropdown.service.mjs +3 -3
- package/esm2020/components/entity-permission/entity-permission.component.mjs +9 -9
- package/esm2020/components/entity-permission/services.cs/entity-permission.service.mjs +3 -3
- package/esm2020/components/entity-picker/entity-picker-box/entity-picker-box.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker.component.mjs +10 -10
- package/esm2020/components/equation-editor/equation-editor.component.mjs +6 -6
- package/esm2020/components/file-explorer/file-explorer.component.mjs +6 -6
- package/esm2020/components/file-explorer/file-form/file-form.component.mjs +7 -7
- package/esm2020/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.mjs +8 -8
- package/esm2020/components/file-explorer/file-manager/file-manager.component.mjs +22 -22
- package/esm2020/components/file-explorer/file-picker-dialog/file-picker-dialog.component.mjs +7 -7
- package/esm2020/components/file-explorer/file-tai-lieu/file-tai-lieu.component.mjs +9 -9
- package/esm2020/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.mjs +4 -4
- package/esm2020/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.mjs +4 -4
- package/esm2020/components/file-explorer/file-version-list/file-version-list.component.mjs +9 -9
- package/esm2020/components/file-explorer/file-viewer/file-viewer.component.mjs +9 -9
- package/esm2020/components/file-explorer/folder-form/folder-form.component.mjs +7 -7
- package/esm2020/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.mjs +6 -6
- package/esm2020/components/file-explorer/services/danhmuc-dungchung.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/download-link.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-data.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-explorer-new.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-explorer.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-object.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-version.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/folder.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/ky-so-sim-chu-ky-user.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/ky-so-sim-signPDF.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/my-drive.service.mjs +3 -3
- package/esm2020/components/file-explorer/signature-detail/signature-detail.component.mjs +3 -3
- package/esm2020/components/file-upload/file-upload.component.mjs +9 -9
- package/esm2020/components/key-value/key-value.component.mjs +3 -3
- package/esm2020/components/mask/mask.component.mjs +7 -7
- package/esm2020/components/not-found/not-found.component.mjs +3 -3
- package/esm2020/components/number-picker-range/number-picker-range.component.mjs +7 -7
- package/esm2020/components/paging-next-back-only/paging-next-back-only.component.mjs +8 -8
- package/esm2020/components/permission-utils/permission-utils.component.mjs +9 -9
- package/esm2020/components/qr-code-generator/qr-code-generator.component.mjs +4 -4
- package/esm2020/components/query-builders/query-builder/query-builder.component.mjs +8 -8
- package/esm2020/components/query-builders/query-builder-group/query-builder-group.component.mjs +10 -10
- package/esm2020/components/query-builders/query-builder-rule/query-builder-rule.component.mjs +18 -18
- package/esm2020/components/query-builders/services/dm-chucvu.service.mjs +3 -3
- package/esm2020/components/radio-button-list/radio-button-list.component.mjs +6 -6
- package/esm2020/components/report-queue/report-queue.component.mjs +8 -8
- package/esm2020/components/service-file-upload/service-file-upload.component.mjs +10 -10
- package/esm2020/components/settings/settings-row/settings-row.component.mjs +8 -8
- package/esm2020/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.mjs +4 -4
- package/esm2020/components/settings/settings-workflow/settings-workflow.component.mjs +9 -9
- package/esm2020/components/settings/settings.component.mjs +14 -14
- package/esm2020/components/share-link-by-permission/share-link-by-permission.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component-v1/splash-component-v1.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component-v2/splash-component-v2.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component.component.mjs +9 -9
- package/esm2020/components/statemachines/dynamic-node/dynamic-node.component.mjs +3 -3
- package/esm2020/components/statemachines/services/node.service.mjs +3 -3
- package/esm2020/components/statemachines/services/statemachines.service.mjs +3 -3
- package/esm2020/components/statemachines/state/state.component.mjs +4 -4
- package/esm2020/components/statemachines/state-metadata/state-metadata.component.mjs +7 -7
- package/esm2020/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.mjs +9 -9
- package/esm2020/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.mjs +7 -7
- package/esm2020/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-designer/statemachines-designer.component.mjs +13 -13
- package/esm2020/components/tn-app-help/helper-current-page/helper-current-page.component.mjs +3 -3
- package/esm2020/components/tn-app-help/services/path-name.service.mjs +3 -3
- package/esm2020/components/tn-app-help/tn-app-help.component.mjs +7 -7
- package/esm2020/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.mjs +4 -4
- package/esm2020/components/tn-app-notification/tn-app-notification.component.mjs +5 -5
- package/esm2020/components/tn-checkbox/tn-checkbox.component.mjs +6 -6
- package/esm2020/components/tn-color-picker/tn-color-picker.component.mjs +7 -7
- package/esm2020/components/tn-custom-scrollbar/tn-custom-scrollbar.component.mjs +6 -6
- package/esm2020/components/tn-dialog/tn-dialog.component.mjs +8 -8
- package/esm2020/components/tn-tabview/tn-tabview.component.mjs +6 -6
- package/esm2020/components/tn-template/tn-template.component.mjs +4 -4
- package/esm2020/components/tn-tinymce/tn-tinymce.component.mjs +9 -9
- package/esm2020/components/universal-link-processor/universal-link-processor.component.mjs +4 -4
- package/esm2020/components/user-picker/user-picker-box/user-picker-box.component.mjs +9 -9
- package/esm2020/components/user-picker/user-picker-dialog/user-picker-dialog.component.mjs +4 -4
- package/esm2020/components/user-picker/user-picker.component.mjs +12 -12
- package/esm2020/components/vanban-picker/services/vanban-den.service.mjs +3 -3
- package/esm2020/components/vanban-picker/services/vanban-di.service.mjs +3 -3
- package/esm2020/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.mjs +10 -10
- package/esm2020/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.mjs +10 -10
- package/esm2020/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.mjs +6 -6
- package/esm2020/components/vanban-picker/vanban-picker.component.mjs +10 -10
- package/esm2020/components/workflow/cho-y-kien-form/cho-y-kien-form.component.mjs +7 -7
- package/esm2020/components/workflow/permission-sharing/permission-sharing.component.mjs +7 -7
- package/esm2020/components/workflow/process-workflow-form/process-workflow-form.component.mjs +9 -9
- package/esm2020/components/workflow/process-workflow-target/process-workflow-target.component.mjs +4 -4
- package/esm2020/components/workflow/services/canbo-hoso.service.mjs +3 -3
- package/esm2020/components/workflow/services/dm-loai-congviec.service.mjs +3 -3
- package/esm2020/components/workflow/services/entity-workflow-history.service.mjs +3 -3
- package/esm2020/components/workflow/services/entity-workflow-setting.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-history.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-permission-detail.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-permission.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-settings.service.mjs +3 -3
- package/esm2020/components/workflow/simple-workflow-form/simple-workflow-form.component.mjs +7 -7
- package/esm2020/components/workflow/start-workflow/start-workflow.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-history/workflow-history.component.mjs +6 -6
- package/esm2020/components/workflow/workflow-history-dialog/workflow-history-dialog.component.mjs +4 -4
- package/esm2020/components/workflow/workflow-history-new/workflow-history-new.component.mjs +10 -10
- package/esm2020/components/workflow/workflow-permission/workflow-permission.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-permission-form/workflow-permission-form.component.mjs +7 -7
- package/esm2020/components/workflow/workflow-picker/workflow-picker.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-setting/workflow-setting.component.mjs +5 -5
- package/esm2020/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.mjs +4 -4
- package/esm2020/components/workflow/workflow-setting-new/workflow-setting-new.component.mjs +7 -7
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.mjs +5 -5
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.component.mjs +3 -3
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.module.mjs +10 -12
- package/esm2020/congviec/cauhinh-workflow/services/cauhinh-workflow.service.mjs +3 -3
- package/esm2020/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.mjs +14 -14
- package/esm2020/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.mjs +4 -4
- package/esm2020/congviec/congviec/congviec-form/congviec-form.component.mjs +9 -9
- package/esm2020/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.mjs +9 -9
- package/esm2020/congviec/congviec/congviec.component.mjs +11 -11
- package/esm2020/congviec/congviec/services/congviec-dinhkem.service.mjs +3 -3
- package/esm2020/congviec/congviec/services/congviec.service.mjs +3 -3
- package/esm2020/congviec/congviec/services/congvieclienquan.service.mjs +3 -3
- package/esm2020/congviec/congviec-test/congviec.component.mjs +3 -3
- package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.mjs +7 -7
- package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.mjs +6 -6
- package/esm2020/congviec/dm-linhvuc-congviec/services/dm-linhvuc-congviec.service.mjs +3 -3
- package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.mjs +7 -7
- package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec.component.mjs +6 -6
- package/esm2020/congviec/dm-loai-congviec/services/dm-loai-congviec.service.mjs +3 -3
- package/esm2020/congviec/dm-priority/dm-priority-form/dm-priority-form.component.mjs +4 -4
- package/esm2020/congviec/dm-priority/dm-priority.component.mjs +5 -5
- package/esm2020/congviec/dm-priority/dm-priority.module.mjs +9 -9
- package/esm2020/congviec/dm-priority/services/dm-priority.service.mjs +3 -3
- package/esm2020/directives/authorize.directive.mjs +3 -3
- package/esm2020/directives/prevent-shift-tab.directive.mjs +3 -3
- package/esm2020/directives/primeng/tn-table.directive.mjs +17 -17
- package/esm2020/directives/tn-template.directive.mjs +3 -3
- package/esm2020/dynamic-components/dynamic-component.service.mjs +3 -3
- package/esm2020/intercepters/log.interceptor.mjs +3 -3
- package/esm2020/intercepters/permission-utils.interceptor.mjs +3 -3
- package/esm2020/intercepters/send-access-token.interceptor.mjs +3 -3
- package/esm2020/intercepters/trace.interceptor.mjs +3 -3
- package/esm2020/pipes/approval.pipe.mjs +3 -3
- package/esm2020/pipes/boolean-format.pipe.mjs +3 -3
- package/esm2020/pipes/convertMoneyToWord.pipe.mjs +3 -3
- package/esm2020/pipes/file-icon.pipe.mjs +3 -3
- package/esm2020/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/pipes/highlight.pipe.mjs +3 -3
- package/esm2020/pipes/html-format.pipe.mjs +3 -3
- package/esm2020/pipes/masterData.pipe.mjs +3 -3
- package/esm2020/pipes/multiple-reference-data-format.pipe.mjs +3 -3
- package/esm2020/pipes/organization-format.pipe.mjs +3 -3
- package/esm2020/pipes/organization-name-format.pipe.mjs +3 -3
- package/esm2020/pipes/organizations-format.pipe.mjs +3 -3
- package/esm2020/pipes/reference-data-format.pipe.mjs +3 -3
- package/esm2020/pipes/safe-html.pipe.mjs +3 -3
- package/esm2020/pipes/safe-style.pipe.mjs +3 -3
- package/esm2020/pipes/safe-url.pipe.mjs +3 -3
- package/esm2020/pipes/secure.pipe.mjs +3 -3
- package/esm2020/pipes/string-format.pipe.mjs +3 -3
- package/esm2020/pipes/summary.pipe.mjs +3 -3
- package/esm2020/pipes/tn-date.pipe.mjs +3 -3
- package/esm2020/pipes/user-format.pipe.mjs +3 -3
- package/esm2020/pipes/users-format.pipe.mjs +3 -3
- package/esm2020/services/app-list.service.mjs +3 -3
- package/esm2020/services/article.service.mjs +3 -3
- package/esm2020/services/authen.service.mjs +3 -3
- package/esm2020/services/calculation-engine.service.mjs +3 -3
- package/esm2020/services/canbo-hoso.service.mjs +3 -3
- package/esm2020/services/check-control-visible.service.mjs +3 -3
- package/esm2020/services/common.service.mjs +3 -3
- package/esm2020/services/conditional-builder.service.mjs +3 -3
- package/esm2020/services/crud.service.mjs +3 -3
- package/esm2020/services/custom-router.service.mjs +3 -3
- package/esm2020/services/customize-ui.service.mjs +3 -3
- package/esm2020/services/danhmuc-api.service.mjs +3 -3
- package/esm2020/services/dhvinh-guard.service.mjs +3 -3
- package/esm2020/services/dm-chucvu.service.mjs +3 -3
- package/esm2020/services/dom.service.mjs +3 -3
- package/esm2020/services/eform.service.mjs +3 -3
- package/esm2020/services/entity-metadata.service.mjs +3 -3
- package/esm2020/services/entity-picker.service.mjs +3 -3
- package/esm2020/services/environment.service.mjs +3 -3
- package/esm2020/services/exception-handler.service.mjs +3 -3
- package/esm2020/services/export.service.mjs +3 -3
- package/esm2020/services/file-manager.service.mjs +3 -3
- package/esm2020/services/file-object-v4.service.mjs +3 -3
- package/esm2020/services/generic-guard-child.service.mjs +3 -3
- package/esm2020/services/generic-guard.service.mjs +3 -3
- package/esm2020/services/global.service.mjs +3 -3
- package/esm2020/services/guard-sv.service.mjs +3 -3
- package/esm2020/services/guard.service.mjs +3 -3
- package/esm2020/services/high-performance.service.mjs +3 -3
- package/esm2020/services/image.service.mjs +3 -3
- package/esm2020/services/list-helper.service.mjs +3 -3
- package/esm2020/services/localCache.service.mjs +3 -3
- package/esm2020/services/master-data.service.mjs +3 -3
- package/esm2020/services/menu.service.mjs +3 -3
- package/esm2020/services/newscategory.service.mjs +3 -3
- package/esm2020/services/notification.service.mjs +3 -3
- package/esm2020/services/notifier.service.mjs +3 -3
- package/esm2020/services/organization.service.mjs +3 -3
- package/esm2020/services/permission.service.mjs +3 -3
- package/esm2020/services/position.service.mjs +3 -3
- package/esm2020/services/print.service.mjs +3 -3
- package/esm2020/services/random-data.service.mjs +3 -3
- package/esm2020/services/role.service.mjs +3 -3
- package/esm2020/services/signalr.service.mjs +3 -3
- package/esm2020/services/storage-updated.service.mjs +3 -3
- package/esm2020/services/storage.service.mjs +3 -3
- package/esm2020/services/template-text-v4.service.mjs +3 -3
- package/esm2020/services/template-v4.service.mjs +3 -3
- package/esm2020/services/template.service.mjs +3 -3
- package/esm2020/services/templateinstance.service.mjs +3 -3
- package/esm2020/services/tn-client.service.mjs +3 -3
- package/esm2020/services/unique-number.service.mjs +3 -3
- package/esm2020/services/user-group-real.service.mjs +3 -3
- package/esm2020/services/user-group.service.mjs +3 -3
- package/esm2020/services/user-v5.service.mjs +3 -3
- package/esm2020/services/user.service.mjs +3 -3
- package/esm2020/services/virtual-base.service.mjs +3 -3
- package/esm2020/tnx-shared.module.mjs +6 -6
- package/fesm2015/tnx-shared.mjs +7269 -7277
- package/fesm2015/tnx-shared.mjs.map +1 -1
- package/fesm2020/tnx-shared.mjs +9215 -9223
- package/fesm2020/tnx-shared.mjs.map +1 -1
- package/{tnx-shared.d.ts → index.d.ts} +0 -0
- package/package.json +4 -4
- package/pipes/approval.pipe.d.ts +1 -1
- package/pipes/boolean-format.pipe.d.ts +1 -1
- package/pipes/convertMoneyToWord.pipe.d.ts +1 -1
- package/pipes/file-icon.pipe.d.ts +1 -1
- package/pipes/file-size.pipe.d.ts +1 -1
- package/pipes/highlight.pipe.d.ts +1 -1
- package/pipes/html-format.pipe.d.ts +1 -1
- package/pipes/masterData.pipe.d.ts +1 -1
- package/pipes/multiple-reference-data-format.pipe.d.ts +1 -1
- package/pipes/organization-format.pipe.d.ts +1 -1
- package/pipes/organization-name-format.pipe.d.ts +1 -1
- package/pipes/organizations-format.pipe.d.ts +1 -1
- package/pipes/reference-data-format.pipe.d.ts +1 -1
- package/pipes/safe-html.pipe.d.ts +1 -1
- package/pipes/safe-style.pipe.d.ts +1 -1
- package/pipes/safe-url.pipe.d.ts +1 -1
- package/pipes/secure.pipe.d.ts +1 -1
- package/pipes/string-format.pipe.d.ts +1 -1
- package/pipes/summary.pipe.d.ts +1 -1
- package/pipes/tn-date.pipe.d.ts +1 -1
- package/pipes/user-format.pipe.d.ts +1 -1
- package/pipes/users-format.pipe.d.ts +1 -1
package/esm2020/components/query-builders/query-builder-group/query-builder-group.component.mjs
CHANGED
|
@@ -2,12 +2,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { Operator } from '../../../classes/base/enums';
|
|
3
3
|
import { Filter } from '../../../models/grid-info';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "
|
|
7
|
-
import * as i3 from "@angular/
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "
|
|
10
|
-
import * as i6 from "tn-custom-primeng/
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "tn-custom-primeng/button";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
8
|
+
import * as i4 from "tn-custom-primeng/tooltip";
|
|
9
|
+
import * as i5 from "@angular/forms";
|
|
10
|
+
import * as i6 from "tn-custom-primeng/inputswitch";
|
|
11
11
|
export class QueryBuilderGroupComponent {
|
|
12
12
|
constructor() {
|
|
13
13
|
this.dataSourceFields = [];
|
|
@@ -38,9 +38,9 @@ export class QueryBuilderGroupComponent {
|
|
|
38
38
|
this.query.queryArr.splice(i, 1);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
QueryBuilderGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
QueryBuilderGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
41
|
+
QueryBuilderGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: QueryBuilderGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
QueryBuilderGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: QueryBuilderGroupComponent, selector: "query-builder-group", inputs: { dataSourceFields: "dataSourceFields", operators: "operators", controlValue: "controlValue", query: "query", canRemove: "canRemove", isRoot: "isRoot", templateFieldPicker: "templateFieldPicker" }, outputs: { onRemove: "onRemove" }, ngImport: i0, template: "<div class=\"tn__group-or-rule-container group-container\">\r\n <div class=\"tn__group-or-rule group\" [ngClass]=\"{'root-group': isRoot, 'and-logic': query.operator}\">\r\n <div class=\"tn__group-header\">\r\n <div class=\"tn__group-operator\">\r\n <p-inputSwitch [(ngModel)]=\"query.operator\"></p-inputSwitch>\r\n <span class=\"tn__group-operator-label\">\r\n <ng-container *ngIf=\"query.operator\">Th\u1ECFa m\u00E3n <a [routerLink]=\"\"\r\n (click)=\"query.operator = !query.operator\"><b>t\u1EA5t\r\n c\u1EA3</b></a>\r\n c\u00E1c \u0111i\u1EC1u ki\u1EC7n trong nh\u00F3m:</ng-container>\r\n <ng-container *ngIf=\"!query.operator\">Th\u1ECFa m\u00E3n <a [routerLink]=\"\"\r\n (click)=\"query.operator = !query.operator\"><b>m\u1ED9t\r\n trong</b></a> c\u00E1c \u0111i\u1EC1u ki\u1EC7n trong nh\u00F3m:</ng-container>\r\n </span>\r\n </div>\r\n <div class=\"tn__group-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-plus-circle\" class=\"p-button-text p-button-rounded\"\r\n pTooltip=\"Th\u00EAm \u0111i\u1EC1u ki\u1EC7n\" tooltipPosition=\"top\" (click)=\"addNewRule()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-table\" class=\"p-button-text p-button-rounded\"\r\n pTooltip=\"Th\u00EAm nh\u00F3m\" tooltipPosition=\"top\" (click)=\"addNewGroup()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" [disabled]=\"!canRemove\"\r\n class=\"p-button-text p-button-danger p-button-rounded\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let q of query.queryArr\" class=\"tn__group-children\">\r\n <!-- <query-builder-rule *ngIf=\"!q.isGroup()\" [dataSourceFields]=\"dataSourceFields\" [operators]=\"operators\"\r\n [controlValue]=\"controlValue\" [templateFieldPicker]=\"templateFieldPicker\" [query]=\"q\"\r\n (onRemove)=\"onChildRemove($event)\">\r\n </query-builder-rule> -->\r\n <query-builder-group *ngIf=\"q.isGroup()\" [dataSourceFields]=\"dataSourceFields\" [operators]=\"operators\"\r\n [controlValue]=\"controlValue\" [templateFieldPicker]=\"templateFieldPicker\" [query]=\"q\" [canRemove]=\"true\"\r\n (onRemove)=\"onChildRemove($event)\">\r\n </query-builder-group>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep query-builder-group .tn__group-or-rule-container{margin-top:2px;margin-bottom:2px}::ng-deep query-builder-group .tn__group-or-rule-container:first-child{margin-top:0;margin-bottom:0}::ng-deep query-builder-group .tn__group-or-rule{border-radius:3px;position:relative}::ng-deep query-builder-group .tn__group-header{display:flex;align-items:center;margin-top:2px;margin-bottom:2px;padding:5px 5px 2px}::ng-deep query-builder-group .tn__group-header .p-selectbutton .p-button{height:26px}::ng-deep query-builder-group .tn__group-operator{width:70%;z-index:1}::ng-deep query-builder-group .tn__group-operator-label{margin-left:5px;vertical-align:bottom;line-height:26px}::ng-deep query-builder-group .tn__group-operator-label b{color:#495057}::ng-deep query-builder-group .tn__group-action{display:flex;margin-left:2px;flex:1;justify-content:flex-end;transition:opacity .2s}::ng-deep query-builder-group .tn__group-children{margin-top:2px;margin-bottom:2px;margin-right:-1px;padding-left:24px;position:relative}::ng-deep query-builder-group .tn__group-children:before,::ng-deep query-builder-group .tn__group-children:after{content:\"\";position:absolute;left:10px;width:14px;height:calc(50% + 13px);border-color:#ced4da;border-style:solid;box-sizing:border-box}::ng-deep query-builder-group .tn__group-children:before{top:-13px;border-width:0 0 2px 2px}::ng-deep query-builder-group .tn__group-children:after{top:50%;border-width:0 0 0 2px}::ng-deep query-builder-group .tn__group-children:last-child:after{display:none}::ng-deep query-builder-group .tn__group-or-rule.group{border:1px solid #8dd0ff;box-shadow:1px 3px 6px 4px #5d7a9e69;margin-top:5px;margin-bottom:5px;padding-bottom:5px;z-index:1}::ng-deep query-builder-group .tn__group-or-rule.group.root-group{border:none;padding:0 10px 10px;box-shadow:unset}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children:before,::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children:after{border-color:#2196f3}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-header .tn__group-operator b{color:#2196f3}::ng-deep query-builder-group .tn__group-or-rule.rule{flex:1;display:flex;background-color:#fff;border:1px solid transparent;padding:2px;margin-right:1px}@media (max-width: 640px){::ng-deep query-builder-group .tn__group-header{flex-direction:column;align-items:stretch;position:relative}::ng-deep query-builder-group .tn__group-header:before{content:\"\";display:block;position:absolute;width:2px;background-color:#ced4da;top:10px;bottom:4px;left:10px}::ng-deep query-builder-group .tn__group-header:last-of-type:before{display:none}::ng-deep query-builder-group .tn__group-operator{width:auto;display:flex}::ng-deep query-builder-group .tn__group-children{padding-bottom:5px}::ng-deep query-builder-group .tn__group-children:before,::ng-deep query-builder-group .tn__group-children:after{width:12px}::ng-deep query-builder-group .tn__group-children:before{top:-31px}::ng-deep query-builder-group .tn__group-children:after{top:calc(50% - 18px)}::ng-deep query-builder-group query-builder-rule{display:block;position:relative}::ng-deep query-builder-group query-builder-rule:before{content:\"\";position:absolute;width:2px;background-color:#ced4da;top:3px;bottom:34px;left:-4px;z-index:10}::ng-deep query-builder-group .tn__group-or-rule.rule{align-items:flex-end;flex-direction:column}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-header:before,::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children>query-builder-rule:before{background-color:#2196f3}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.InputSwitch, selector: "p-inputSwitch", inputs: ["disabled", "style", "styleClass", "tabindex", "inputId", "name", "readonly", "ariaLabelledBy"], outputs: ["onChange"] }, { kind: "component", type: QueryBuilderGroupComponent, selector: "query-builder-group", inputs: ["dataSourceFields", "operators", "controlValue", "query", "canRemove", "isRoot", "templateFieldPicker"], outputs: ["onRemove"] }] });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: QueryBuilderGroupComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'query-builder-group', template: "<div class=\"tn__group-or-rule-container group-container\">\r\n <div class=\"tn__group-or-rule group\" [ngClass]=\"{'root-group': isRoot, 'and-logic': query.operator}\">\r\n <div class=\"tn__group-header\">\r\n <div class=\"tn__group-operator\">\r\n <p-inputSwitch [(ngModel)]=\"query.operator\"></p-inputSwitch>\r\n <span class=\"tn__group-operator-label\">\r\n <ng-container *ngIf=\"query.operator\">Th\u1ECFa m\u00E3n <a [routerLink]=\"\"\r\n (click)=\"query.operator = !query.operator\"><b>t\u1EA5t\r\n c\u1EA3</b></a>\r\n c\u00E1c \u0111i\u1EC1u ki\u1EC7n trong nh\u00F3m:</ng-container>\r\n <ng-container *ngIf=\"!query.operator\">Th\u1ECFa m\u00E3n <a [routerLink]=\"\"\r\n (click)=\"query.operator = !query.operator\"><b>m\u1ED9t\r\n trong</b></a> c\u00E1c \u0111i\u1EC1u ki\u1EC7n trong nh\u00F3m:</ng-container>\r\n </span>\r\n </div>\r\n <div class=\"tn__group-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-plus-circle\" class=\"p-button-text p-button-rounded\"\r\n pTooltip=\"Th\u00EAm \u0111i\u1EC1u ki\u1EC7n\" tooltipPosition=\"top\" (click)=\"addNewRule()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-table\" class=\"p-button-text p-button-rounded\"\r\n pTooltip=\"Th\u00EAm nh\u00F3m\" tooltipPosition=\"top\" (click)=\"addNewGroup()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" [disabled]=\"!canRemove\"\r\n class=\"p-button-text p-button-danger p-button-rounded\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let q of query.queryArr\" class=\"tn__group-children\">\r\n <!-- <query-builder-rule *ngIf=\"!q.isGroup()\" [dataSourceFields]=\"dataSourceFields\" [operators]=\"operators\"\r\n [controlValue]=\"controlValue\" [templateFieldPicker]=\"templateFieldPicker\" [query]=\"q\"\r\n (onRemove)=\"onChildRemove($event)\">\r\n </query-builder-rule> -->\r\n <query-builder-group *ngIf=\"q.isGroup()\" [dataSourceFields]=\"dataSourceFields\" [operators]=\"operators\"\r\n [controlValue]=\"controlValue\" [templateFieldPicker]=\"templateFieldPicker\" [query]=\"q\" [canRemove]=\"true\"\r\n (onRemove)=\"onChildRemove($event)\">\r\n </query-builder-group>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep query-builder-group .tn__group-or-rule-container{margin-top:2px;margin-bottom:2px}::ng-deep query-builder-group .tn__group-or-rule-container:first-child{margin-top:0;margin-bottom:0}::ng-deep query-builder-group .tn__group-or-rule{border-radius:3px;position:relative}::ng-deep query-builder-group .tn__group-header{display:flex;align-items:center;margin-top:2px;margin-bottom:2px;padding:5px 5px 2px}::ng-deep query-builder-group .tn__group-header .p-selectbutton .p-button{height:26px}::ng-deep query-builder-group .tn__group-operator{width:70%;z-index:1}::ng-deep query-builder-group .tn__group-operator-label{margin-left:5px;vertical-align:bottom;line-height:26px}::ng-deep query-builder-group .tn__group-operator-label b{color:#495057}::ng-deep query-builder-group .tn__group-action{display:flex;margin-left:2px;flex:1;justify-content:flex-end;transition:opacity .2s}::ng-deep query-builder-group .tn__group-children{margin-top:2px;margin-bottom:2px;margin-right:-1px;padding-left:24px;position:relative}::ng-deep query-builder-group .tn__group-children:before,::ng-deep query-builder-group .tn__group-children:after{content:\"\";position:absolute;left:10px;width:14px;height:calc(50% + 13px);border-color:#ced4da;border-style:solid;box-sizing:border-box}::ng-deep query-builder-group .tn__group-children:before{top:-13px;border-width:0 0 2px 2px}::ng-deep query-builder-group .tn__group-children:after{top:50%;border-width:0 0 0 2px}::ng-deep query-builder-group .tn__group-children:last-child:after{display:none}::ng-deep query-builder-group .tn__group-or-rule.group{border:1px solid #8dd0ff;box-shadow:1px 3px 6px 4px #5d7a9e69;margin-top:5px;margin-bottom:5px;padding-bottom:5px;z-index:1}::ng-deep query-builder-group .tn__group-or-rule.group.root-group{border:none;padding:0 10px 10px;box-shadow:unset}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children:before,::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children:after{border-color:#2196f3}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-header .tn__group-operator b{color:#2196f3}::ng-deep query-builder-group .tn__group-or-rule.rule{flex:1;display:flex;background-color:#fff;border:1px solid transparent;padding:2px;margin-right:1px}@media (max-width: 640px){::ng-deep query-builder-group .tn__group-header{flex-direction:column;align-items:stretch;position:relative}::ng-deep query-builder-group .tn__group-header:before{content:\"\";display:block;position:absolute;width:2px;background-color:#ced4da;top:10px;bottom:4px;left:10px}::ng-deep query-builder-group .tn__group-header:last-of-type:before{display:none}::ng-deep query-builder-group .tn__group-operator{width:auto;display:flex}::ng-deep query-builder-group .tn__group-children{padding-bottom:5px}::ng-deep query-builder-group .tn__group-children:before,::ng-deep query-builder-group .tn__group-children:after{width:12px}::ng-deep query-builder-group .tn__group-children:before{top:-31px}::ng-deep query-builder-group .tn__group-children:after{top:calc(50% - 18px)}::ng-deep query-builder-group query-builder-rule{display:block;position:relative}::ng-deep query-builder-group query-builder-rule:before{content:\"\";position:absolute;width:2px;background-color:#ced4da;top:3px;bottom:34px;left:-4px;z-index:10}::ng-deep query-builder-group .tn__group-or-rule.rule{align-items:flex-end;flex-direction:column}::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-header:before,::ng-deep query-builder-group .tn__group-or-rule.and-logic>.tn__group-children>query-builder-rule:before{background-color:#2196f3}}\n"] }]
|
|
46
46
|
}], ctorParameters: function () { return []; }, propDecorators: { dataSourceFields: [{
|
|
@@ -160,4 +160,4 @@ function genQuery(filters, query) {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTywwQkFBMEI7SUFlbkM7UUFiUyxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDdEMsb0VBQW9FO1FBQzNELGNBQVMsR0FBVSxFQUFFLENBQUM7UUFJdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWhFLGlCQUFZLEdBQUcsRUFBRSxDQUFDO0lBSWxCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUdELFVBQVU7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztR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QUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFDSTtZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7WUFDNUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QjtLQUNKO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2VudW1zJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3F1ZXJ5LWJ1aWxkZXItZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVyeUJ1aWxkZXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgZGF0YVNvdXJjZUZpZWxkczogYW55W10gPSBbXTtcclxuICAgIC8vIERhbmggc8OhY2ggY8OhYyBvcGVyYXRvciBj4buRIMSR4buLbmgsIGTDuW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBjdXN0b20gZm9ybVxyXG4gICAgQElucHV0KCkgb3BlcmF0b3JzOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gY29udHJvbCB2YWx1ZSBj4buRIMSR4buLbmgsIGTDuW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBjdXN0b20gZm9ybVxyXG4gICAgQElucHV0KCkgY29udHJvbFZhbHVlOiBGb3JtQ29udHJvbEJhc2U7XHJcbiAgICBASW5wdXQoKSBxdWVyeTogUXVlcnlHcm91cDtcclxuICAgIEBJbnB1dCgpIGNhblJlbW92ZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaXNSb290ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZUZpZWxkUGlja2VyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQE91dHB1dCgpIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNvbHVtblNjaGVtYSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgYWRkTmV3UnVsZSgpIHtcclxuICAgICAgICB0aGlzLnF1ZXJ5LmFkZFJ1bGUobmV3IFF1ZXJ5UnVsZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGROZXdHcm91cCgpIHtcclxuICAgICAgICBjb25zdCBxdWVyeUdyb3VwID0gbmV3IFF1ZXJ5R3JvdXAodHJ1ZSk7XHJcbiAgICAgICAgcXVlcnlHcm91cC5hZGRSdWxlKG5ldyBRdWVyeVJ1bGUoKSk7XHJcbiAgICAgICAgdGhpcy5xdWVyeS5hZGRHcm91cChxdWVyeUdyb3VwKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVHcm91cCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2FuUmVtb3ZlKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHRoaXMucXVlcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hpbGRSZW1vdmUocXVlcnkpIHtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5xdWVyeS5xdWVyeUFyci5pbmRleE9mKHF1ZXJ5KTtcclxuICAgICAgICB0aGlzLnF1ZXJ5LnF1ZXJ5QXJyLnNwbGljZShpLCAxKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElRdWVyeSB7XHJcbiAgICBnZXRRdWVyeSgpOiBGaWx0ZXI7XHJcbiAgICBpc0dyb3VwKCk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVyeUdyb3VwIGltcGxlbWVudHMgSVF1ZXJ5IHtcclxuICAgIG5vdCA9IGZhbHNlO1xyXG4gICAgb3BlcmF0b3IgPSB0cnVlO1xyXG4gICAgcXVlcnlBcnI6IElRdWVyeVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3BlcmF0b3I6IGJvb2xlYW4gPSB0cnVlLCBub3Q6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICAgICAgICB0aGlzLm5vdCA9IG5vdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRSdWxlKHJ1bGU6IFF1ZXJ5UnVsZSkge1xyXG4gICAgICAgIHRoaXMucXVlcnlBcnIucHVzaChydWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRHcm91cChncm91cDogUXVlcnlHcm91cCkge1xyXG4gICAgICAgIHRoaXMucXVlcnlBcnIucHVzaChncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UXVlcnkoKTogRmlsdGVyIHtcclxuICAgICAgICBpZiAodGhpcy5xdWVyeUFyci5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5xdWVyeUFyci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5xdWVyeUFyclswXS5nZXRRdWVyeSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IEZpbHRlcigpO1xyXG4gICAgICAgIGZpbHRlci5sb2dpYyA9IHRoaXMub3BlcmF0b3IgPyAnYW5kJyA6ICdvcic7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnF1ZXJ5QXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRtcEZpbHRlciA9IHRoaXMucXVlcnlBcnJbaV0uZ2V0UXVlcnkoKTtcclxuICAgICAgICAgICAgaWYgKHRtcEZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyLmZpbHRlcnMucHVzaCh0bXBGaWx0ZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWx0ZXIuZmlsdGVycy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmlsdGVyLmZpbHRlcnMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5maWx0ZXJzWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlzR3JvdXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVyeVJ1bGUgaW1wbGVtZW50cyBJUXVlcnkge1xyXG4gICAgZmllbGQ6IHN0cmluZztcclxuICAgIGNvbXBhcmVUeXBlOiBPcGVyYXRvcjtcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgICBmdW5jR2V0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nID0gJycsIGNvbXBhcmVUeXBlOiBPcGVyYXRvciA9IE9wZXJhdG9yLmVxdWFsLCB2YWx1ZTogc3RyaW5nID0gJycpIHtcclxuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgdGhpcy5jb21wYXJlVHlwZSA9IGNvbXBhcmVUeXBlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRRdWVyeSgpOiBGaWx0ZXIge1xyXG4gICAgICAgIGlmICh0aGlzLmZpZWxkID09IG51bGwgfHwgdGhpcy5maWVsZCA9PSAnJ1xyXG4gICAgICAgICAgICB8fCB0aGlzLmNvbXBhcmVUeXBlID09IG51bGxcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzQ3VycmVudFVzZXJcclxuICAgICAgICAgICAgJiYgdGhpcy5jb21wYXJlVHlwZSAhPSBPcGVyYXRvci5pc0N1cnJlbnRDYW5Cb1xyXG4gICAgICAgICAgICAmJiB0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzTm90TnVsbFxyXG4gICAgICAgICAgICAmJiB0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzTnVsbFxyXG4gICAgICAgICAgICAmJiAodGhpcy52YWx1ZSA9PSBudWxsIHx8IHRoaXMudmFsdWUgPT0gJycpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bmNHZXRWYWx1ZSkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZnVuY0dldFZhbHVlKHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlcihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5jb21wYXJlVHlwZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNHcm91cCgpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5RdWVyeUZyb21GaWx0ZXJzKGZpbHRlcnMpIHtcclxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFF1ZXJ5R3JvdXAoKTtcclxuICAgIGlmICghZmlsdGVyc1swXS5sb2dpYykge1xyXG4gICAgICAgIHF1ZXJ5Lm9wZXJhdG9yID0gdHJ1ZTtcclxuICAgICAgICBnZW5RdWVyeShmaWx0ZXJzLCBxdWVyeSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBxdWVyeS5vcGVyYXRvciA9IGZpbHRlcnNbMF0ubG9naWMgPT0gJ2FuZCc7XHJcbiAgICAgICAgZ2VuUXVlcnkoZmlsdGVyc1swXS5maWx0ZXJzLCBxdWVyeSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdlblF1ZXJ5KGZpbHRlcnM6IEZpbHRlcltdLCBxdWVyeTogUXVlcnlHcm91cCkge1xyXG4gICAgaWYgKCFmaWx0ZXJzKSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBmID0gZmlsdGVyc1tpXTtcclxuICAgICAgICBpZiAoZi5sb2dpYyA9PSBudWxsIHx8IGYuZmlsdGVycyA9PSBudWxsIHx8IGYuZmlsdGVycy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICBxdWVyeS5hZGRSdWxlKG5ldyBRdWVyeVJ1bGUoZi5maWVsZCwgZi5vcGVyYXRvciwgSlNPTi5wYXJzZShmLnZhbHVlKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcWcgPSBuZXcgUXVlcnlHcm91cChmLmxvZ2ljID09ICdhbmQnKTtcclxuICAgICAgICAgICAgZ2VuUXVlcnkoZi5maWx0ZXJzLCBxZyk7XHJcbiAgICAgICAgICAgIHF1ZXJ5LmFkZEdyb3VwKHFnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRuX19ncm91cC1vci1ydWxlLWNvbnRhaW5lciBncm91cC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtb3ItcnVsZSBncm91cFwiIFtuZ0NsYXNzXT1cInsncm9vdC1ncm91cCc6IGlzUm9vdCwgJ2FuZC1sb2dpYyc6IHF1ZXJ5Lm9wZXJhdG9yfVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtb3BlcmF0b3JcIj5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0U3dpdGNoIFsobmdNb2RlbCldPVwicXVlcnkub3BlcmF0b3JcIj48L3AtaW5wdXRTd2l0Y2g+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRuX19ncm91cC1vcGVyYXRvci1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeS5vcGVyYXRvclwiPlRo4buPYSBtw6NuIDxhIFtyb3V0ZXJMaW5rXT1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlcnkub3BlcmF0b3IgPSAhcXVlcnkub3BlcmF0b3JcIj48Yj504bqldFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGPhuqM8L2I+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjw6FjIMSRaeG7gXUga2nhu4duIHRyb25nIG5ow7NtOjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcXVlcnkub3BlcmF0b3JcIj5UaOG7j2EgbcOjbiA8YSBbcm91dGVyTGlua109XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXJ5Lm9wZXJhdG9yID0gIXF1ZXJ5Lm9wZXJhdG9yXCI+PGI+beG7mXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cm9uZzwvYj48L2E+IGPDoWMgxJFp4buBdSBraeG7h24gdHJvbmcgbmjDs206PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG5fX2dyb3VwLWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBpY29uPVwicGkgcGktcGx1cy1jaXJjbGVcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJUaMOqbSDEkWnhu4F1IGtp4buHblwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiIChjbGljayk9XCJhZGROZXdSdWxlKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXRhYmxlXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBUb29sdGlwPVwiVGjDqm0gbmjDs21cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwiYWRkTmV3R3JvdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBpY29uPVwicGkgcGktdHJhc2hcIiBbZGlzYWJsZWRdPVwiIWNhblJlbW92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi1yb3VuZGVkXCIgcFRvb2x0aXA9XCJYw7NhXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3JvdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxIG9mIHF1ZXJ5LnF1ZXJ5QXJyXCIgY2xhc3M9XCJ0bl9fZ3JvdXAtY2hpbGRyZW5cIj5cclxuICAgICAgICAgICAgPCEtLSA8cXVlcnktYnVpbGRlci1ydWxlICpuZ0lmPVwiIXEuaXNHcm91cCgpXCIgW2RhdGFTb3VyY2VGaWVsZHNdPVwiZGF0YVNvdXJjZUZpZWxkc1wiIFtvcGVyYXRvcnNdPVwib3BlcmF0b3JzXCJcclxuICAgICAgICAgICAgICAgIFtjb250cm9sVmFsdWVdPVwiY29udHJvbFZhbHVlXCIgW3RlbXBsYXRlRmllbGRQaWNrZXJdPVwidGVtcGxhdGVGaWVsZFBpY2tlclwiIFtxdWVyeV09XCJxXCJcclxuICAgICAgICAgICAgICAgIChvblJlbW92ZSk9XCJvbkNoaWxkUmVtb3ZlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9xdWVyeS1idWlsZGVyLXJ1bGU+IC0tPlxyXG4gICAgICAgICAgICA8cXVlcnktYnVpbGRlci1ncm91cCAqbmdJZj1cInEuaXNHcm91cCgpXCIgW2RhdGFTb3VyY2VGaWVsZHNdPVwiZGF0YVNvdXJjZUZpZWxkc1wiIFtvcGVyYXRvcnNdPVwib3BlcmF0b3JzXCJcclxuICAgICAgICAgICAgICAgIFtjb250cm9sVmFsdWVdPVwiY29udHJvbFZhbHVlXCIgW3RlbXBsYXRlRmllbGRQaWNrZXJdPVwidGVtcGxhdGVGaWVsZFBpY2tlclwiIFtxdWVyeV09XCJxXCIgW2NhblJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIChvblJlbW92ZSk9XCJvbkNoaWxkUmVtb3ZlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9xdWVyeS1idWlsZGVyLWdyb3VwPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTywwQkFBMEI7SUFlbkM7UUFiUyxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDdEMsb0VBQW9FO1FBQzNELGNBQVMsR0FBVSxFQUFFLENBQUM7UUFJdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWhFLGlCQUFZLEdBQUcsRUFBRSxDQUFDO0lBSWxCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUdELFVBQVU7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztR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QUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFDSTtZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7WUFDNUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QjtLQUNKO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2VudW1zJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3F1ZXJ5LWJ1aWxkZXItZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVyeUJ1aWxkZXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgZGF0YVNvdXJjZUZpZWxkczogYW55W10gPSBbXTtcclxuICAgIC8vIERhbmggc8OhY2ggY8OhYyBvcGVyYXRvciBj4buRIMSR4buLbmgsIGTDuW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBjdXN0b20gZm9ybVxyXG4gICAgQElucHV0KCkgb3BlcmF0b3JzOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gY29udHJvbCB2YWx1ZSBj4buRIMSR4buLbmgsIGTDuW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBjdXN0b20gZm9ybVxyXG4gICAgQElucHV0KCkgY29udHJvbFZhbHVlOiBGb3JtQ29udHJvbEJhc2U7XHJcbiAgICBASW5wdXQoKSBxdWVyeTogUXVlcnlHcm91cDtcclxuICAgIEBJbnB1dCgpIGNhblJlbW92ZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaXNSb290ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZUZpZWxkUGlja2VyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQE91dHB1dCgpIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNvbHVtblNjaGVtYSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgYWRkTmV3UnVsZSgpIHtcclxuICAgICAgICB0aGlzLnF1ZXJ5LmFkZFJ1bGUobmV3IFF1ZXJ5UnVsZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGROZXdHcm91cCgpIHtcclxuICAgICAgICBjb25zdCBxdWVyeUdyb3VwID0gbmV3IFF1ZXJ5R3JvdXAodHJ1ZSk7XHJcbiAgICAgICAgcXVlcnlHcm91cC5hZGRSdWxlKG5ldyBRdWVyeVJ1bGUoKSk7XHJcbiAgICAgICAgdGhpcy5xdWVyeS5hZGRHcm91cChxdWVyeUdyb3VwKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVHcm91cCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2FuUmVtb3ZlKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHRoaXMucXVlcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hpbGRSZW1vdmUocXVlcnkpIHtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5xdWVyeS5xdWVyeUFyci5pbmRleE9mKHF1ZXJ5KTtcclxuICAgICAgICB0aGlzLnF1ZXJ5LnF1ZXJ5QXJyLnNwbGljZShpLCAxKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElRdWVyeSB7XHJcbiAgICBnZXRRdWVyeSgpOiBGaWx0ZXI7XHJcbiAgICBpc0dyb3VwKCk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVyeUdyb3VwIGltcGxlbWVudHMgSVF1ZXJ5IHtcclxuICAgIG5vdCA9IGZhbHNlO1xyXG4gICAgb3BlcmF0b3IgPSB0cnVlO1xyXG4gICAgcXVlcnlBcnI6IElRdWVyeVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3BlcmF0b3I6IGJvb2xlYW4gPSB0cnVlLCBub3Q6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICAgICAgICB0aGlzLm5vdCA9IG5vdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRSdWxlKHJ1bGU6IFF1ZXJ5UnVsZSkge1xyXG4gICAgICAgIHRoaXMucXVlcnlBcnIucHVzaChydWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRHcm91cChncm91cDogUXVlcnlHcm91cCkge1xyXG4gICAgICAgIHRoaXMucXVlcnlBcnIucHVzaChncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UXVlcnkoKTogRmlsdGVyIHtcclxuICAgICAgICBpZiAodGhpcy5xdWVyeUFyci5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5xdWVyeUFyci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5xdWVyeUFyclswXS5nZXRRdWVyeSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IEZpbHRlcigpO1xyXG4gICAgICAgIGZpbHRlci5sb2dpYyA9IHRoaXMub3BlcmF0b3IgPyAnYW5kJyA6ICdvcic7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnF1ZXJ5QXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRtcEZpbHRlciA9IHRoaXMucXVlcnlBcnJbaV0uZ2V0UXVlcnkoKTtcclxuICAgICAgICAgICAgaWYgKHRtcEZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyLmZpbHRlcnMucHVzaCh0bXBGaWx0ZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWx0ZXIuZmlsdGVycy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmlsdGVyLmZpbHRlcnMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5maWx0ZXJzWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlzR3JvdXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVyeVJ1bGUgaW1wbGVtZW50cyBJUXVlcnkge1xyXG4gICAgZmllbGQ6IHN0cmluZztcclxuICAgIGNvbXBhcmVUeXBlOiBPcGVyYXRvcjtcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgICBmdW5jR2V0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nID0gJycsIGNvbXBhcmVUeXBlOiBPcGVyYXRvciA9IE9wZXJhdG9yLmVxdWFsLCB2YWx1ZTogc3RyaW5nID0gJycpIHtcclxuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgdGhpcy5jb21wYXJlVHlwZSA9IGNvbXBhcmVUeXBlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRRdWVyeSgpOiBGaWx0ZXIge1xyXG4gICAgICAgIGlmICh0aGlzLmZpZWxkID09IG51bGwgfHwgdGhpcy5maWVsZCA9PSAnJ1xyXG4gICAgICAgICAgICB8fCB0aGlzLmNvbXBhcmVUeXBlID09IG51bGxcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzQ3VycmVudFVzZXJcclxuICAgICAgICAgICAgJiYgdGhpcy5jb21wYXJlVHlwZSAhPSBPcGVyYXRvci5pc0N1cnJlbnRDYW5Cb1xyXG4gICAgICAgICAgICAmJiB0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzTm90TnVsbFxyXG4gICAgICAgICAgICAmJiB0aGlzLmNvbXBhcmVUeXBlICE9IE9wZXJhdG9yLmlzTnVsbFxyXG4gICAgICAgICAgICAmJiAodGhpcy52YWx1ZSA9PSBudWxsIHx8IHRoaXMudmFsdWUgPT0gJycpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bmNHZXRWYWx1ZSkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZnVuY0dldFZhbHVlKHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlcihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5jb21wYXJlVHlwZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNHcm91cCgpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5RdWVyeUZyb21GaWx0ZXJzKGZpbHRlcnMpIHtcclxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFF1ZXJ5R3JvdXAoKTtcclxuICAgIGlmICghZmlsdGVyc1swXS5sb2dpYykge1xyXG4gICAgICAgIHF1ZXJ5Lm9wZXJhdG9yID0gdHJ1ZTtcclxuICAgICAgICBnZW5RdWVyeShmaWx0ZXJzLCBxdWVyeSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBxdWVyeS5vcGVyYXRvciA9IGZpbHRlcnNbMF0ubG9naWMgPT0gJ2FuZCc7XHJcbiAgICAgICAgZ2VuUXVlcnkoZmlsdGVyc1swXS5maWx0ZXJzLCBxdWVyeSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdlblF1ZXJ5KGZpbHRlcnM6IEZpbHRlcltdLCBxdWVyeTogUXVlcnlHcm91cCkge1xyXG4gICAgaWYgKCFmaWx0ZXJzKSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBmID0gZmlsdGVyc1tpXTtcclxuICAgICAgICBpZiAoZi5sb2dpYyA9PSBudWxsIHx8IGYuZmlsdGVycyA9PSBudWxsIHx8IGYuZmlsdGVycy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICBxdWVyeS5hZGRSdWxlKG5ldyBRdWVyeVJ1bGUoZi5maWVsZCwgZi5vcGVyYXRvciwgSlNPTi5wYXJzZShmLnZhbHVlKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcWcgPSBuZXcgUXVlcnlHcm91cChmLmxvZ2ljID09ICdhbmQnKTtcclxuICAgICAgICAgICAgZ2VuUXVlcnkoZi5maWx0ZXJzLCBxZyk7XHJcbiAgICAgICAgICAgIHF1ZXJ5LmFkZEdyb3VwKHFnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRuX19ncm91cC1vci1ydWxlLWNvbnRhaW5lciBncm91cC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtb3ItcnVsZSBncm91cFwiIFtuZ0NsYXNzXT1cInsncm9vdC1ncm91cCc6IGlzUm9vdCwgJ2FuZC1sb2dpYyc6IHF1ZXJ5Lm9wZXJhdG9yfVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0bl9fZ3JvdXAtb3BlcmF0b3JcIj5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0U3dpdGNoIFsobmdNb2RlbCldPVwicXVlcnkub3BlcmF0b3JcIj48L3AtaW5wdXRTd2l0Y2g+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRuX19ncm91cC1vcGVyYXRvci1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeS5vcGVyYXRvclwiPlRo4buPYSBtw6NuIDxhIFtyb3V0ZXJMaW5rXT1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlcnkub3BlcmF0b3IgPSAhcXVlcnkub3BlcmF0b3JcIj48Yj504bqldFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGPhuqM8L2I+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjw6FjIMSRaeG7gXUga2nhu4duIHRyb25nIG5ow7NtOjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcXVlcnkub3BlcmF0b3JcIj5UaOG7j2EgbcOjbiA8YSBbcm91dGVyTGlua109XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXJ5Lm9wZXJhdG9yID0gIXF1ZXJ5Lm9wZXJhdG9yXCI+PGI+beG7mXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cm9uZzwvYj48L2E+IGPDoWMgxJFp4buBdSBraeG7h24gdHJvbmcgbmjDs206PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG5fX2dyb3VwLWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBpY29uPVwicGkgcGktcGx1cy1jaXJjbGVcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJUaMOqbSDEkWnhu4F1IGtp4buHblwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiIChjbGljayk9XCJhZGROZXdSdWxlKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXRhYmxlXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBUb29sdGlwPVwiVGjDqm0gbmjDs21cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwiYWRkTmV3R3JvdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBpY29uPVwicGkgcGktdHJhc2hcIiBbZGlzYWJsZWRdPVwiIWNhblJlbW92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi1yb3VuZGVkXCIgcFRvb2x0aXA9XCJYw7NhXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3JvdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxIG9mIHF1ZXJ5LnF1ZXJ5QXJyXCIgY2xhc3M9XCJ0bl9fZ3JvdXAtY2hpbGRyZW5cIj5cclxuICAgICAgICAgICAgPCEtLSA8cXVlcnktYnVpbGRlci1ydWxlICpuZ0lmPVwiIXEuaXNHcm91cCgpXCIgW2RhdGFTb3VyY2VGaWVsZHNdPVwiZGF0YVNvdXJjZUZpZWxkc1wiIFtvcGVyYXRvcnNdPVwib3BlcmF0b3JzXCJcclxuICAgICAgICAgICAgICAgIFtjb250cm9sVmFsdWVdPVwiY29udHJvbFZhbHVlXCIgW3RlbXBsYXRlRmllbGRQaWNrZXJdPVwidGVtcGxhdGVGaWVsZFBpY2tlclwiIFtxdWVyeV09XCJxXCJcclxuICAgICAgICAgICAgICAgIChvblJlbW92ZSk9XCJvbkNoaWxkUmVtb3ZlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9xdWVyeS1idWlsZGVyLXJ1bGU+IC0tPlxyXG4gICAgICAgICAgICA8cXVlcnktYnVpbGRlci1ncm91cCAqbmdJZj1cInEuaXNHcm91cCgpXCIgW2RhdGFTb3VyY2VGaWVsZHNdPVwiZGF0YVNvdXJjZUZpZWxkc1wiIFtvcGVyYXRvcnNdPVwib3BlcmF0b3JzXCJcclxuICAgICAgICAgICAgICAgIFtjb250cm9sVmFsdWVdPVwiY29udHJvbFZhbHVlXCIgW3RlbXBsYXRlRmllbGRQaWNrZXJdPVwidGVtcGxhdGVGaWVsZFBpY2tlclwiIFtxdWVyeV09XCJxXCIgW2NhblJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIChvblJlbW92ZSk9XCJvbkNoaWxkUmVtb3ZlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9xdWVyeS1idWlsZGVyLWdyb3VwPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
package/esm2020/components/query-builders/query-builder-rule/query-builder-rule.component.mjs
CHANGED
|
@@ -3,21 +3,21 @@ import { Operator } from '../../../classes/base/enums';
|
|
|
3
3
|
import { isValidDate } from '../../../classes/environment-schema';
|
|
4
4
|
import { AutoCompleteControlSchema } from '../../../classes/form-schema-with-service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "tn-custom-primeng/
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "../../
|
|
14
|
-
import * as i9 from "../../autocomplete-
|
|
15
|
-
import * as i10 from "../../
|
|
16
|
-
import * as i11 from "
|
|
17
|
-
import * as i12 from "
|
|
18
|
-
import * as i13 from "
|
|
19
|
-
import * as i14 from "
|
|
20
|
-
import * as i15 from "
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "tn-custom-primeng/button";
|
|
8
|
+
import * as i3 from "tn-custom-primeng/dropdown";
|
|
9
|
+
import * as i4 from "tn-custom-primeng/tooltip";
|
|
10
|
+
import * as i5 from "@angular/forms";
|
|
11
|
+
import * as i6 from "tn-custom-primeng/checkbox";
|
|
12
|
+
import * as i7 from "tn-custom-primeng/inputtext";
|
|
13
|
+
import * as i8 from "../../after-view-checked/after-view-checked.component";
|
|
14
|
+
import * as i9 from "../../autocomplete-picker/autocomplete-picker.component";
|
|
15
|
+
import * as i10 from "../../cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component";
|
|
16
|
+
import * as i11 from "../../datetime-picker/datetime-picker.component";
|
|
17
|
+
import * as i12 from "../../dropdown/dropdown.component";
|
|
18
|
+
import * as i13 from "../../mask/mask.component";
|
|
19
|
+
import * as i14 from "../../user-picker/user-picker.component";
|
|
20
|
+
import * as i15 from "../../autocomplete-datasource/autocomplete-datasource.component";
|
|
21
21
|
export class QueryBuilderRuleComponent {
|
|
22
22
|
constructor() {
|
|
23
23
|
this.dataSourceFields = [];
|
|
@@ -163,9 +163,9 @@ export class QueryBuilderRuleComponent {
|
|
|
163
163
|
this.changingControl = false;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
QueryBuilderRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
167
|
-
QueryBuilderRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: QueryBuilderRuleComponent, selector: "query-builder-rule", inputs: { dataSourceFields: "dataSourceFields", operators: "operators", controlValue: "controlValue", query: "query", templateFieldPicker: "templateFieldPicker" }, outputs: { onRemove: "onRemove" }, ngImport: i0, template: "<div class=\"tn__group-or-rule-container rule-container\">\r\n <div class=\"tn__group-or-rule rule\">\r\n <div class=\"tn__rule-body\">\r\n <ng-container *ngIf=\"templateFieldPicker\">\r\n <div class=\"tn__rule-field\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templateFieldPicker; context: {$implicit: query, handleChangedField: setDatasourceOperators}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!templateFieldPicker\">\r\n <ng-container *ngTemplateOutlet=\"fieldPicker; context: {$implicit: query}\"></ng-container>\r\n </ng-container>\r\n <div class=\"tn__rule-operator\">\r\n <p-dropdown appendTo=\"body\" [options]=\"operators\" optionLabel=\"ten\" optionValue=\"id\"\r\n placeholder=\"Ch\u1ECDn to\u00E1n t\u1EED\" [(ngModel)]=\"query.compareType\" (onChange)=\"handleChangeOperator()\">\r\n </p-dropdown>\r\n </div>\r\n <div *ngIf=\"!changingControl\" class=\"tn__rule-value\">\r\n <ng-container *ngIf=\"control\">\r\n <ng-container [ngSwitch]=\"controlType\">\r\n <ng-container *ngSwitchCase=\"'textbox'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: false}\">\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'custom'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: disabled}\">\r\n </ng-template>\r\n </ng-container>\r\n <!-- <p-multiSelect *ngSwitchCase=\"'dropdown'\" [placeholder]=\"control.placeholder\"\r\n [appendTo]=\"'body'\" [options]=\"control.dataSource\" [disabled]=\"disabled\" optionLabel=\"ten\"\r\n optionValue=\"id\" [(ngModel)]=\"query.value\">\r\n </p-multiSelect> -->\r\n <dropdown *ngSwitchCase=\"'dropdown'\" [control]=\"control\" [dataSource]=\"control.dataSource\"\r\n [itemSelectedStyleClass]=\"'min'\" [(value)]=\"query.value\">\r\n </dropdown>\r\n <div *ngSwitchCase=\"'datetime'\" class=\"datetime-value-container\">\r\n <p-checkbox [binary]=\"true\" [label]=\"'T\u00F9y bi\u1EBFn'\" [(ngModel)]=\"custom\"></p-checkbox>\r\n <datetime-picker *ngIf=\"!custom\" [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </datetime-picker>\r\n <input *ngIf=\"custom\" pInputText placeholder=\"VD: [now] + 1d - 2h + 3m - 4s\"\r\n [(ngModel)]=\"query.value\" />\r\n </div>\r\n\r\n <tn-mask *ngSwitchCase=\"'number'\" [disabled]=\"disabled\" [maskType]=\"control.maskType\"\r\n [placeholder]=\"control.placeholder\" [(ngModel)]=\"query.value\">\r\n </tn-mask>\r\n <user-picker *ngSwitchCase=\"'user'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\" [multiple]=\"control.multiple\">\r\n </user-picker>\r\n <cocautochuc-picker-list *ngSwitchCase=\"'cocautochuc'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </cocautochuc-picker-list>\r\n <autocomplete-picker *ngSwitchCase=\"'role'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'groupuser'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'chucVu'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'autocomplete-picker'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <app-autocomplete-datasource *ngSwitchCase=\"'autocomplete'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\" [suggestions]=\"control.dataSource\">\r\n </app-autocomplete-datasource>\r\n <ng-container *ngSwitchDefault>\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!control\">\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </div>\r\n <after-view-checked *ngIf=\"changingControl\" (loaded)=\"handleLoaded()\"></after-view-checked>\r\n </div>\r\n <div class=\"tn__rule-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #fieldPicker let-query>\r\n <ng-container *ngIf=\"controlType == 'custom'\">\r\n <input type=\"text\" [class]=\"'tn__rule-field'\" pInputText placeholder=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\"\r\n [(ngModel)]=\"query.fieldValue\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"controlType != 'custom'\">\r\n <p-dropdown [appendTo]=\"'body'\" [options]=\"dataSourceFields\" [class]=\"'tn__rule-field'\" optionLabel=\"ten\"\r\n optionValue=\"id\" placeholder=\"Ch\u1ECDn tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(ngModel)]=\"query.field\"\r\n (onChange)=\"handleChangeField($event)\">\r\n </p-dropdown>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #textBoxValue let-query>\r\n <input [disabled]=\"disabled\" type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [(ngModel)]=\"query.value\" />\r\n</ng-template>", styles: ["::ng-deep query-builder-rule .tn__rule-body{display:flex;width:calc(100% - 34px);align-items:center}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:5px}::ng-deep query-builder-rule .tn__rule-body>*:last-child{margin-right:0}::ng-deep query-builder-rule .tn__rule-field{height:26px}::ng-deep query-builder-rule .tn__rule-value{min-height:26px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value{width:calc(50% - 80px);flex:0 0 calc(50% - 80px)}::ng-deep query-builder-rule .tn__rule-field.p-dropdown,::ng-deep query-builder-rule .tn__rule-field tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-field .p-dropdown,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete,::ng-deep query-builder-rule .tn__rule-field .p-multiselect,::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .p-calendar,::ng-deep query-builder-rule .tn__rule-value.p-dropdown,::ng-deep query-builder-rule .tn__rule-value tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-value .p-dropdown,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete,::ng-deep query-builder-rule .tn__rule-value .p-multiselect,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .p-calendar{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .custom-autocomplete-button,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .custom-autocomplete-button{padding:2px 12px;min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-dropdown,::ng-deep query-builder-rule .tn__rule-field .tn-dropdown.p-multiselect.p-component,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown.p-multiselect.p-component{min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-autocomplete .p-autocomplete-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-autocomplete .p-autocomplete-dropdown{height:26px;width:26px}::ng-deep query-builder-rule .tn__rule-field .p-calendar .p-button.p-button-icon-only,::ng-deep query-builder-rule .tn__rule-value .p-calendar .p-button.p-button-icon-only{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token{padding:0 .5rem;font-size:.9rem;margin:1px 2px}::ng-deep query-builder-rule .tn__rule-operator{width:145px;flex:0 0 145px;height:26px}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown .p-inputtext{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-action{flex:0 0 auto;white-space:nowrap}::ng-deep query-builder-rule .tn__rule-action button{height:26px!important;width:26px!important;margin-left:2px!important;margin-right:6px!important}::ng-deep query-builder-rule .datetime-value-container{display:flex;align-items:center}::ng-deep query-builder-rule .datetime-value-container p-checkbox{flex:0 0 auto;margin-right:5px}@media (max-width: 640px){::ng-deep query-builder-rule .tn__rule-body{flex-direction:column;padding-right:5px}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:0;margin-bottom:5px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value,::ng-deep query-builder-rule .tn__rule-operator{width:100%;flex:1 1 auto}}\n"], components: [{ type: i1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "resetFilterOnHide", "dropdownIcon", "autoDisplayFirst", "emptyFilterMessage", "maxItemDisplay", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "autofocusFilter", "autofocusSelectedItem", "delayFilter", "disabled", "options", "filterValue", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "virtualScroll", "itemSize", "ariaFilterLabel", "ariaLabelledBy", "maxlength", "tooltipStyleClass", "modifyOptionsWhenFilter"], outputs: ["onChange", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { type: i2.DropdownComponent, selector: "dropdown", inputs: ["showClear", "disableDisplayFieldServerSearch", "filter", "control", "defaultLabel", "appendTo", "dataSource", "value", "itemSelectedStyleClass"], outputs: ["onChanged", "onCollapse", "onExpand", "onDropdownClick", "onShow", "onShowSmartEvent", "onHide", "onHideSmartEvent", "onFocus", "onBlur", "onReady", "onDataSourceLoaded", "valueChange", "adjustValue"] }, { type: i3.Checkbox, selector: "p-checkbox", inputs: ["checkboxIcon", "disabled", "value", "name", "binary", "label", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "readonly", "required"], outputs: ["onChange"] }, { type: i4.DatetimePickerComponent, selector: "datetime-picker", inputs: ["control", "disabled"], outputs: ["onSelect", "onChanged", "onFocus", "onBlur", "onClose"] }, { type: i5.MaskComponent, selector: "tn-mask", inputs: ["maskType", "placeholder", "disabled", "suffix", "prefix", "min", "max", "decimalPlaces", "viewMode", "inputStyleClass"], outputs: ["onFocus", "onBlur", "onChanged"] }, { type: i6.UserPickerComponent, selector: "user-picker", inputs: ["control", "popupSize", "multiple", "disabled", "readOnlyValues"], outputs: ["onSelect", "onUnSelect", "onChanged", "onFocus", "onBlur", "onReady"] }, { type: i7.CoCauToChucPickerListComponent, selector: "cocautochuc-picker-list", inputs: ["control", "disabled", "readOnlyValues"], outputs: ["onChanged", "onSelect", "onUnSelect", "onClear", "onFocus", "onBlur", "onReady"] }, { type: i8.AutoCompletePickerComponent, selector: "autocomplete-picker", inputs: ["control", "disabled", "popupSize", "readOnlyValues"], outputs: ["onSelect", "onUnSelect", "onChanged", "onFocus", "onBlur", "onReady"] }, { type: i9.AutocompleteDatasourceComponent, selector: "app-autocomplete-datasource", inputs: ["suggestions", "control"], outputs: ["onValueChanged"] }, { type: i10.AfterViewCheckedComponent, selector: "after-view-checked", inputs: ["renderKey"], outputs: ["loaded", "loading", "unloading", "reRender"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i13.InputText, selector: "[pInputText]" }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i14.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { type: i15.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }] });
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
QueryBuilderRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: QueryBuilderRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
+
QueryBuilderRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: QueryBuilderRuleComponent, selector: "query-builder-rule", inputs: { dataSourceFields: "dataSourceFields", operators: "operators", controlValue: "controlValue", query: "query", templateFieldPicker: "templateFieldPicker" }, outputs: { onRemove: "onRemove" }, ngImport: i0, template: "<div class=\"tn__group-or-rule-container rule-container\">\r\n <div class=\"tn__group-or-rule rule\">\r\n <div class=\"tn__rule-body\">\r\n <ng-container *ngIf=\"templateFieldPicker\">\r\n <div class=\"tn__rule-field\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templateFieldPicker; context: {$implicit: query, handleChangedField: setDatasourceOperators}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!templateFieldPicker\">\r\n <ng-container *ngTemplateOutlet=\"fieldPicker; context: {$implicit: query}\"></ng-container>\r\n </ng-container>\r\n <div class=\"tn__rule-operator\">\r\n <p-dropdown appendTo=\"body\" [options]=\"operators\" optionLabel=\"ten\" optionValue=\"id\"\r\n placeholder=\"Ch\u1ECDn to\u00E1n t\u1EED\" [(ngModel)]=\"query.compareType\" (onChange)=\"handleChangeOperator()\">\r\n </p-dropdown>\r\n </div>\r\n <div *ngIf=\"!changingControl\" class=\"tn__rule-value\">\r\n <ng-container *ngIf=\"control\">\r\n <ng-container [ngSwitch]=\"controlType\">\r\n <ng-container *ngSwitchCase=\"'textbox'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: false}\">\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'custom'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: disabled}\">\r\n </ng-template>\r\n </ng-container>\r\n <!-- <p-multiSelect *ngSwitchCase=\"'dropdown'\" [placeholder]=\"control.placeholder\"\r\n [appendTo]=\"'body'\" [options]=\"control.dataSource\" [disabled]=\"disabled\" optionLabel=\"ten\"\r\n optionValue=\"id\" [(ngModel)]=\"query.value\">\r\n </p-multiSelect> -->\r\n <dropdown *ngSwitchCase=\"'dropdown'\" [control]=\"control\" [dataSource]=\"control.dataSource\"\r\n [itemSelectedStyleClass]=\"'min'\" [(value)]=\"query.value\">\r\n </dropdown>\r\n <div *ngSwitchCase=\"'datetime'\" class=\"datetime-value-container\">\r\n <p-checkbox [binary]=\"true\" [label]=\"'T\u00F9y bi\u1EBFn'\" [(ngModel)]=\"custom\"></p-checkbox>\r\n <datetime-picker *ngIf=\"!custom\" [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </datetime-picker>\r\n <input *ngIf=\"custom\" pInputText placeholder=\"VD: [now] + 1d - 2h + 3m - 4s\"\r\n [(ngModel)]=\"query.value\" />\r\n </div>\r\n\r\n <tn-mask *ngSwitchCase=\"'number'\" [disabled]=\"disabled\" [maskType]=\"control.maskType\"\r\n [placeholder]=\"control.placeholder\" [(ngModel)]=\"query.value\">\r\n </tn-mask>\r\n <user-picker *ngSwitchCase=\"'user'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\" [multiple]=\"control.multiple\">\r\n </user-picker>\r\n <cocautochuc-picker-list *ngSwitchCase=\"'cocautochuc'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </cocautochuc-picker-list>\r\n <autocomplete-picker *ngSwitchCase=\"'role'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'groupuser'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'chucVu'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'autocomplete-picker'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <app-autocomplete-datasource *ngSwitchCase=\"'autocomplete'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\" [suggestions]=\"control.dataSource\">\r\n </app-autocomplete-datasource>\r\n <ng-container *ngSwitchDefault>\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!control\">\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </div>\r\n <after-view-checked *ngIf=\"changingControl\" (loaded)=\"handleLoaded()\"></after-view-checked>\r\n </div>\r\n <div class=\"tn__rule-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #fieldPicker let-query>\r\n <ng-container *ngIf=\"controlType == 'custom'\">\r\n <input type=\"text\" [class]=\"'tn__rule-field'\" pInputText placeholder=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\"\r\n [(ngModel)]=\"query.fieldValue\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"controlType != 'custom'\">\r\n <p-dropdown [appendTo]=\"'body'\" [options]=\"dataSourceFields\" [class]=\"'tn__rule-field'\" optionLabel=\"ten\"\r\n optionValue=\"id\" placeholder=\"Ch\u1ECDn tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(ngModel)]=\"query.field\"\r\n (onChange)=\"handleChangeField($event)\">\r\n </p-dropdown>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #textBoxValue let-query>\r\n <input [disabled]=\"disabled\" type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [(ngModel)]=\"query.value\" />\r\n</ng-template>", styles: ["::ng-deep query-builder-rule .tn__rule-body{display:flex;width:calc(100% - 34px);align-items:center}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:5px}::ng-deep query-builder-rule .tn__rule-body>*:last-child{margin-right:0}::ng-deep query-builder-rule .tn__rule-field{height:26px}::ng-deep query-builder-rule .tn__rule-value{min-height:26px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value{width:calc(50% - 80px);flex:0 0 calc(50% - 80px)}::ng-deep query-builder-rule .tn__rule-field.p-dropdown,::ng-deep query-builder-rule .tn__rule-field tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-field .p-dropdown,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete,::ng-deep query-builder-rule .tn__rule-field .p-multiselect,::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .p-calendar,::ng-deep query-builder-rule .tn__rule-value.p-dropdown,::ng-deep query-builder-rule .tn__rule-value tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-value .p-dropdown,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete,::ng-deep query-builder-rule .tn__rule-value .p-multiselect,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .p-calendar{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .custom-autocomplete-button,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .custom-autocomplete-button{padding:2px 12px;min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-dropdown,::ng-deep query-builder-rule .tn__rule-field .tn-dropdown.p-multiselect.p-component,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown.p-multiselect.p-component{min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-autocomplete .p-autocomplete-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-autocomplete .p-autocomplete-dropdown{height:26px;width:26px}::ng-deep query-builder-rule .tn__rule-field .p-calendar .p-button.p-button-icon-only,::ng-deep query-builder-rule .tn__rule-value .p-calendar .p-button.p-button-icon-only{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token{padding:0 .5rem;font-size:.9rem;margin:1px 2px}::ng-deep query-builder-rule .tn__rule-operator{width:145px;flex:0 0 145px;height:26px}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown .p-inputtext{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-action{flex:0 0 auto;white-space:nowrap}::ng-deep query-builder-rule .tn__rule-action button{height:26px!important;width:26px!important;margin-left:2px!important;margin-right:6px!important}::ng-deep query-builder-rule .datetime-value-container{display:flex;align-items:center}::ng-deep query-builder-rule .datetime-value-container p-checkbox{flex:0 0 auto;margin-right:5px}@media (max-width: 640px){::ng-deep query-builder-rule .tn__rule-body{flex-direction:column;padding-right:5px}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:0;margin-bottom:5px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value,::ng-deep query-builder-rule .tn__rule-operator{width:100%;flex:1 1 auto}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i3.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "resetFilterOnHide", "dropdownIcon", "autoDisplayFirst", "emptyFilterMessage", "maxItemDisplay", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "autofocusFilter", "autofocusSelectedItem", "delayFilter", "disabled", "options", "filterValue", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "virtualScroll", "itemSize", "ariaFilterLabel", "ariaLabelledBy", "maxlength", "tooltipStyleClass", "modifyOptionsWhenFilter"], outputs: ["onChange", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.Checkbox, selector: "p-checkbox", inputs: ["checkboxIcon", "disabled", "value", "name", "binary", "label", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "readonly", "required"], outputs: ["onChange"] }, { kind: "directive", type: i7.InputText, selector: "[pInputText]" }, { kind: "component", type: i8.AfterViewCheckedComponent, selector: "after-view-checked", inputs: ["renderKey"], outputs: ["loaded", "loading", "unloading", "reRender"] }, { kind: "component", type: i9.AutoCompletePickerComponent, selector: "autocomplete-picker", inputs: ["control", "disabled", "popupSize", "readOnlyValues"], outputs: ["onSelect", "onUnSelect", "onChanged", "onFocus", "onBlur", "onReady"] }, { kind: "component", type: i10.CoCauToChucPickerListComponent, selector: "cocautochuc-picker-list", inputs: ["control", "disabled", "readOnlyValues"], outputs: ["onChanged", "onSelect", "onUnSelect", "onClear", "onFocus", "onBlur", "onReady"] }, { kind: "component", type: i11.DatetimePickerComponent, selector: "datetime-picker", inputs: ["control", "disabled"], outputs: ["onSelect", "onChanged", "onFocus", "onBlur", "onClose"] }, { kind: "component", type: i12.DropdownComponent, selector: "dropdown", inputs: ["showClear", "disableDisplayFieldServerSearch", "filter", "control", "defaultLabel", "appendTo", "dataSource", "value", "itemSelectedStyleClass"], outputs: ["onChanged", "onCollapse", "onExpand", "onDropdownClick", "onShow", "onShowSmartEvent", "onHide", "onHideSmartEvent", "onFocus", "onBlur", "onReady", "onDataSourceLoaded", "valueChange", "adjustValue"] }, { kind: "component", type: i13.MaskComponent, selector: "tn-mask", inputs: ["maskType", "placeholder", "disabled", "suffix", "prefix", "min", "max", "decimalPlaces", "viewMode", "inputStyleClass"], outputs: ["onFocus", "onBlur", "onChanged"] }, { kind: "component", type: i14.UserPickerComponent, selector: "user-picker", inputs: ["control", "popupSize", "multiple", "disabled", "readOnlyValues"], outputs: ["onSelect", "onUnSelect", "onChanged", "onFocus", "onBlur", "onReady"] }, { kind: "component", type: i15.AutocompleteDatasourceComponent, selector: "app-autocomplete-datasource", inputs: ["suggestions", "control"], outputs: ["onValueChanged"] }] });
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: QueryBuilderRuleComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
170
|
args: [{ selector: 'query-builder-rule', template: "<div class=\"tn__group-or-rule-container rule-container\">\r\n <div class=\"tn__group-or-rule rule\">\r\n <div class=\"tn__rule-body\">\r\n <ng-container *ngIf=\"templateFieldPicker\">\r\n <div class=\"tn__rule-field\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templateFieldPicker; context: {$implicit: query, handleChangedField: setDatasourceOperators}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!templateFieldPicker\">\r\n <ng-container *ngTemplateOutlet=\"fieldPicker; context: {$implicit: query}\"></ng-container>\r\n </ng-container>\r\n <div class=\"tn__rule-operator\">\r\n <p-dropdown appendTo=\"body\" [options]=\"operators\" optionLabel=\"ten\" optionValue=\"id\"\r\n placeholder=\"Ch\u1ECDn to\u00E1n t\u1EED\" [(ngModel)]=\"query.compareType\" (onChange)=\"handleChangeOperator()\">\r\n </p-dropdown>\r\n </div>\r\n <div *ngIf=\"!changingControl\" class=\"tn__rule-value\">\r\n <ng-container *ngIf=\"control\">\r\n <ng-container [ngSwitch]=\"controlType\">\r\n <ng-container *ngSwitchCase=\"'textbox'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: false}\">\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'custom'\">\r\n <ng-template\r\n *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query, _disabled: disabled}\">\r\n </ng-template>\r\n </ng-container>\r\n <!-- <p-multiSelect *ngSwitchCase=\"'dropdown'\" [placeholder]=\"control.placeholder\"\r\n [appendTo]=\"'body'\" [options]=\"control.dataSource\" [disabled]=\"disabled\" optionLabel=\"ten\"\r\n optionValue=\"id\" [(ngModel)]=\"query.value\">\r\n </p-multiSelect> -->\r\n <dropdown *ngSwitchCase=\"'dropdown'\" [control]=\"control\" [dataSource]=\"control.dataSource\"\r\n [itemSelectedStyleClass]=\"'min'\" [(value)]=\"query.value\">\r\n </dropdown>\r\n <div *ngSwitchCase=\"'datetime'\" class=\"datetime-value-container\">\r\n <p-checkbox [binary]=\"true\" [label]=\"'T\u00F9y bi\u1EBFn'\" [(ngModel)]=\"custom\"></p-checkbox>\r\n <datetime-picker *ngIf=\"!custom\" [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </datetime-picker>\r\n <input *ngIf=\"custom\" pInputText placeholder=\"VD: [now] + 1d - 2h + 3m - 4s\"\r\n [(ngModel)]=\"query.value\" />\r\n </div>\r\n\r\n <tn-mask *ngSwitchCase=\"'number'\" [disabled]=\"disabled\" [maskType]=\"control.maskType\"\r\n [placeholder]=\"control.placeholder\" [(ngModel)]=\"query.value\">\r\n </tn-mask>\r\n <user-picker *ngSwitchCase=\"'user'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\" [multiple]=\"control.multiple\">\r\n </user-picker>\r\n <cocautochuc-picker-list *ngSwitchCase=\"'cocautochuc'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </cocautochuc-picker-list>\r\n <autocomplete-picker *ngSwitchCase=\"'role'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'groupuser'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'chucVu'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'autocomplete-picker'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <app-autocomplete-datasource *ngSwitchCase=\"'autocomplete'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\" [suggestions]=\"control.dataSource\">\r\n </app-autocomplete-datasource>\r\n <ng-container *ngSwitchDefault>\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!control\">\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </div>\r\n <after-view-checked *ngIf=\"changingControl\" (loaded)=\"handleLoaded()\"></after-view-checked>\r\n </div>\r\n <div class=\"tn__rule-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #fieldPicker let-query>\r\n <ng-container *ngIf=\"controlType == 'custom'\">\r\n <input type=\"text\" [class]=\"'tn__rule-field'\" pInputText placeholder=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\"\r\n [(ngModel)]=\"query.fieldValue\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"controlType != 'custom'\">\r\n <p-dropdown [appendTo]=\"'body'\" [options]=\"dataSourceFields\" [class]=\"'tn__rule-field'\" optionLabel=\"ten\"\r\n optionValue=\"id\" placeholder=\"Ch\u1ECDn tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(ngModel)]=\"query.field\"\r\n (onChange)=\"handleChangeField($event)\">\r\n </p-dropdown>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #textBoxValue let-query>\r\n <input [disabled]=\"disabled\" type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [(ngModel)]=\"query.value\" />\r\n</ng-template>", styles: ["::ng-deep query-builder-rule .tn__rule-body{display:flex;width:calc(100% - 34px);align-items:center}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:5px}::ng-deep query-builder-rule .tn__rule-body>*:last-child{margin-right:0}::ng-deep query-builder-rule .tn__rule-field{height:26px}::ng-deep query-builder-rule .tn__rule-value{min-height:26px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value{width:calc(50% - 80px);flex:0 0 calc(50% - 80px)}::ng-deep query-builder-rule .tn__rule-field.p-dropdown,::ng-deep query-builder-rule .tn__rule-field tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-field .p-dropdown,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete,::ng-deep query-builder-rule .tn__rule-field .p-multiselect,::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .p-calendar,::ng-deep query-builder-rule .tn__rule-value.p-dropdown,::ng-deep query-builder-rule .tn__rule-value tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-value .p-dropdown,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete,::ng-deep query-builder-rule .tn__rule-value .p-multiselect,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .p-calendar{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .custom-autocomplete-button,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .custom-autocomplete-button{padding:2px 12px;min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-dropdown,::ng-deep query-builder-rule .tn__rule-field .tn-dropdown.p-multiselect.p-component,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown.p-multiselect.p-component{min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-autocomplete .p-autocomplete-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-autocomplete .p-autocomplete-dropdown{height:26px;width:26px}::ng-deep query-builder-rule .tn__rule-field .p-calendar .p-button.p-button-icon-only,::ng-deep query-builder-rule .tn__rule-value .p-calendar .p-button.p-button-icon-only{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token{padding:0 .5rem;font-size:.9rem;margin:1px 2px}::ng-deep query-builder-rule .tn__rule-operator{width:145px;flex:0 0 145px;height:26px}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown{width:100%;height:100%}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown .p-inputtext{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-action{flex:0 0 auto;white-space:nowrap}::ng-deep query-builder-rule .tn__rule-action button{height:26px!important;width:26px!important;margin-left:2px!important;margin-right:6px!important}::ng-deep query-builder-rule .datetime-value-container{display:flex;align-items:center}::ng-deep query-builder-rule .datetime-value-container p-checkbox{flex:0 0 auto;margin-right:5px}@media (max-width: 640px){::ng-deep query-builder-rule .tn__rule-body{flex-direction:column;padding-right:5px}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:0;margin-bottom:5px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value,::ng-deep query-builder-rule .tn__rule-operator{width:100%;flex:1 1 auto}}\n"] }]
|
|
171
171
|
}], ctorParameters: function () { return []; }, propDecorators: { dataSourceFields: [{
|
|
@@ -11,9 +11,9 @@ export class DM_ChucVuService extends BaseService {
|
|
|
11
11
|
this.serviceUri = `${this.endPoint}/DM_ChucVu`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
DM_ChucVuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
DM_ChucVuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
DM_ChucVuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DM_ChucVuService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
DM_ChucVuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DM_ChucVuService, providedIn: 'root' });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DM_ChucVuService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -4,9 +4,9 @@ import { appendDefaultFilter } from '../../utils/common';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../services/crud.service";
|
|
6
6
|
import * as i2 from "ngx-device-detector";
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "@angular/
|
|
9
|
-
import * as i5 from "
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "tn-custom-primeng/radiobutton";
|
|
10
10
|
export class RadioButtonListComponent {
|
|
11
11
|
constructor(_crudService, _deviceDetectorService) {
|
|
12
12
|
this._crudService = _crudService;
|
|
@@ -219,9 +219,9 @@ export class RadioButtonListComponent {
|
|
|
219
219
|
this.fireChangedEvent();
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
|
-
RadioButtonListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
223
|
-
RadioButtonListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
222
|
+
RadioButtonListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RadioButtonListComponent, deps: [{ token: i1.CrudService }, { token: i2.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
223
|
+
RadioButtonListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: RadioButtonListComponent, selector: "radio-button-list", inputs: { control: "control", dataSource: "dataSource", value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange", onChanged: "onChanged", onDataSourceLoaded: "onDataSourceLoaded", adjustValue: "adjustValue", onReady: "onReady" }, ngImport: i0, template: "<div class=\"p-grid tn-check-box-list\" [class.flex-end]=\"control.align == 'right'\"\r\n [class.flex-center]=\"control.align == 'center'\">\r\n <div [class]=\"classCheckBox\" *ngFor=\"let chk of dataSourceInternal\">\r\n <p-radioButton [disabled]=\"disabled ? true : null\" [label]=\"chk.label\" [value]=\"chk.value\"\r\n [(ngModel)]=\"_value\" (onClick)=\"change($event)\">\r\n </p-radioButton>\r\n </div>\r\n</div>\r\n", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.btn-clear{height:30px;cursor:pointer;border:none;background:#337ab7;color:#fff;border-radius:3px;padding:0 10px;margin:1px .5em 0}.p-col-horizontal{padding:.5em}::ng-deep .tn-check-box-list{position:relative}::ng-deep .tn-check-box-list.flex-end{justify-content:flex-end}::ng-deep .tn-check-box-list.flex-center{justify-content:center}::ng-deep .tn-check-box-list label{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["disabled", "name", "value", "formControlName", "label", "tabindex", "inputId", "ariaLabelledBy", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] });
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RadioButtonListComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
226
226
|
args: [{ selector: 'radio-button-list', template: "<div class=\"p-grid tn-check-box-list\" [class.flex-end]=\"control.align == 'right'\"\r\n [class.flex-center]=\"control.align == 'center'\">\r\n <div [class]=\"classCheckBox\" *ngFor=\"let chk of dataSourceInternal\">\r\n <p-radioButton [disabled]=\"disabled ? true : null\" [label]=\"chk.label\" [value]=\"chk.value\"\r\n [(ngModel)]=\"_value\" (onClick)=\"change($event)\">\r\n </p-radioButton>\r\n </div>\r\n</div>\r\n", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.btn-clear{height:30px;cursor:pointer;border:none;background:#337ab7;color:#fff;border-radius:3px;padding:0 10px;margin:1px .5em 0}.p-col-horizontal{padding:.5em}::ng-deep .tn-check-box-list{position:relative}::ng-deep .tn-check-box-list.flex-end{justify-content:flex-end}::ng-deep .tn-check-box-list.flex-center{justify-content:center}::ng-deep .tn-check-box-list label{cursor:pointer}\n"] }]
|
|
227
227
|
}], ctorParameters: function () { return [{ type: i1.CrudService }, { type: i2.DeviceDetectorService }]; }, propDecorators: { control: [{
|
|
@@ -10,11 +10,11 @@ import * as i4 from "../../services/template.service";
|
|
|
10
10
|
import * as i5 from "../../services/signalr.service";
|
|
11
11
|
import * as i6 from "../../services/high-performance.service";
|
|
12
12
|
import * as i7 from "../../services/crud.service";
|
|
13
|
-
import * as i8 from "
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "@angular/
|
|
16
|
-
import * as i11 from "tn-custom-primeng/
|
|
17
|
-
import * as i12 from "
|
|
13
|
+
import * as i8 from "@angular/common";
|
|
14
|
+
import * as i9 from "tn-custom-primeng/tooltip";
|
|
15
|
+
import * as i10 from "@angular/forms";
|
|
16
|
+
import * as i11 from "tn-custom-primeng/checkbox";
|
|
17
|
+
import * as i12 from "../tn-custom-scrollbar/tn-custom-scrollbar.component";
|
|
18
18
|
import * as i13 from "@ngx-translate/core";
|
|
19
19
|
export class ReportQueueComponent {
|
|
20
20
|
constructor(_notifierService, _commonService, _fileService, _tempateService, _signalRService, _highPerformanceService, _crudService) {
|
|
@@ -270,9 +270,9 @@ export class ReportQueueComponent {
|
|
|
270
270
|
this.popupHeight = height > this.maxHeight ? this.maxHeight : height;
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
|
-
ReportQueueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
274
|
-
ReportQueueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
273
|
+
ReportQueueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ReportQueueComponent, deps: [{ token: i1.NotifierService }, { token: i2.CommonService }, { token: i3.FileExplorerService }, { token: i4.TemplateService }, { token: i5.SignalRService }, { token: i6.HighPerformanceService }, { token: i7.CrudService }], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
+
ReportQueueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ReportQueueComponent, selector: "report-queue", inputs: { parentDataModel: "parentDataModel", name: "name", header: "header", autoDownload: "autoDownload" }, viewQueries: [{ propertyName: "scrollbar", first: true, predicate: ["scrollbar"], descendants: true }], ngImport: i0, template: "<div class=\"rq-container\" *ngIf=\"showQueue()\">\r\n <div class=\"rq-header\">\r\n <div>{{header | translate}}</div>\r\n <div>\r\n\r\n <p-checkbox [(ngModel)]=\"autoDownload\" binary=\"true\" pTooltip=\"T\u1EF1 \u0111\u1ED9ng t\u1EA3i\" tooltipPosition=\"left\">\r\n </p-checkbox>\r\n\r\n <a href=\"javascript:;\" (click)=\"toggleExpand()\" pTooltip=\"{{expand ? 'Thu g\u1ECDn' : 'M\u1EDF r\u1ED9ng'}}\"\r\n tooltipPosition=\"left\">\r\n <i class=\"fas\" [ngClass]=\"{'fa-compress' : expand, 'fa-expand': !expand}\"></i>\r\n </a>\r\n\r\n <a href=\"javascript:;\" (click)=\"close()\" pTooltip=\"\u0110\u00F3ng\">\r\n <i class=\"fas fa-times\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"rq-body\" *ngIf=\"expand\">\r\n <tn-custom-scrollbar [style]=\"{'height.px': popupHeight}\" #scrollbar>\r\n <div class=\"re-job\" *ngFor=\"let job of _queue\">\r\n <div class=\"re-job-title\">\r\n <div>{{getName(job)}}</div>\r\n <div>\r\n <a href=\"javascript:;\" (click)=\"cancelJob(job)\">\r\n <i class=\"fas fa-times\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"re-job-result\"\r\n [ngClass]=\"{'job-success': job._status == statuses.Success, 'job-error': job._status == statuses.Error, 'job-exporting' : job._status == statuses.Exporting, 'job-downloaded': job._status == statuses.Downloaded}\">\r\n <span *ngIf=\"job._status != statuses.Success && job._status != statuses.Exporting\">\r\n {{dicStatus.get(job._status) | translate}}\r\n </span>\r\n\r\n <span *ngIf=\"job._status == statuses.Exporting\">\r\n <div class=\"loader\"></div>\r\n {{dicStatus.get(job._status) | translate}}\r\n </span>\r\n\r\n <a href=\"javascript:;\" (click)=\"download(job)\" class=\"job-success\"\r\n *ngIf=\"job._status == statuses.Success\">\r\n <i class=\"fas fa-download\"></i> {{dicStatus.get(job._status) | translate}}\r\n </a>\r\n </div>\r\n </div>\r\n </tn-custom-scrollbar>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .rq-container{width:350px;border:1px solid #3192e1;border-radius:3px;background-color:#fff}::ng-deep .rq-container .rq-header{background-color:#3192e1;padding:5px 10px;display:flex;border-radius:3px 3px 0 0;color:#fff;font-weight:400;font-size:15px}::ng-deep .rq-container .rq-header>div:first-child{flex-grow:1}::ng-deep .rq-container .rq-header>div:last-child>a{font-weight:200;margin-left:10px;color:#fff}::ng-deep .rq-container .rq-header>div:last-child>a>i{font-size:13px}::ng-deep .rq-container .rq-header>div:last-child .ui-chkbox-box{width:14px;height:14px;margin-top:-2px}::ng-deep .rq-container .rq-header>div:last-child .ui-chkbox-icon{font-size:13px;line-height:13px}::ng-deep .rq-container .rq-body .re-job{padding:6px 10px;display:flex;flex-direction:column}::ng-deep .rq-container .rq-body .re-job:first-child{padding-top:6px}::ng-deep .rq-container .rq-body .re-job .re-job-title{display:flex;font-size:13px}::ng-deep .rq-container .rq-body .re-job .re-job-title>div:first-child{flex-grow:1;padding-bottom:3px}::ng-deep .rq-container .rq-body .re-job .re-job-title>div a{color:#3192e1}::ng-deep .rq-container .rq-body .re-job .re-job-result{font-size:11px}::ng-deep .rq-container .rq-body .re-job .re-job-result>span{display:flex;align-items:center;height:20px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-exporting{color:#3192e1}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-exporting>span>div{margin-right:5px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-success{color:#1ab91a}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-success>a>i{margin-right:2px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-error{color:#e95353}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-downloaded{color:#b2b2b2}::ng-deep .loader{border:2px solid #bcdbf5;border-radius:50%;border-top:2px solid #3192e1;width:12px;height:12px;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{position:absolute;bottom:1px;right:2px;z-index:1000}\n"], dependencies: [{ kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.Checkbox, selector: "p-checkbox", inputs: ["checkboxIcon", "disabled", "value", "name", "binary", "label", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "readonly", "required"], outputs: ["onChange"] }, { kind: "component", type: i12.TnCustomScrollbarComponent, selector: "tn-custom-scrollbar", inputs: ["style", "useDefaultScrollBar", "autoMode", "class", "config", "whiteBackGround", "showScrollHorizontal"], outputs: ["scrollY", "scrollUp", "scrollDown", "scrollLeft", "scrollRight", "scrollYReachEnd", "scrollYReachStart", "scrollXReachEnd", "scrollXReachStart"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
|
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ReportQueueComponent, decorators: [{
|
|
276
276
|
type: Component,
|
|
277
277
|
args: [{ selector: 'report-queue', template: "<div class=\"rq-container\" *ngIf=\"showQueue()\">\r\n <div class=\"rq-header\">\r\n <div>{{header | translate}}</div>\r\n <div>\r\n\r\n <p-checkbox [(ngModel)]=\"autoDownload\" binary=\"true\" pTooltip=\"T\u1EF1 \u0111\u1ED9ng t\u1EA3i\" tooltipPosition=\"left\">\r\n </p-checkbox>\r\n\r\n <a href=\"javascript:;\" (click)=\"toggleExpand()\" pTooltip=\"{{expand ? 'Thu g\u1ECDn' : 'M\u1EDF r\u1ED9ng'}}\"\r\n tooltipPosition=\"left\">\r\n <i class=\"fas\" [ngClass]=\"{'fa-compress' : expand, 'fa-expand': !expand}\"></i>\r\n </a>\r\n\r\n <a href=\"javascript:;\" (click)=\"close()\" pTooltip=\"\u0110\u00F3ng\">\r\n <i class=\"fas fa-times\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"rq-body\" *ngIf=\"expand\">\r\n <tn-custom-scrollbar [style]=\"{'height.px': popupHeight}\" #scrollbar>\r\n <div class=\"re-job\" *ngFor=\"let job of _queue\">\r\n <div class=\"re-job-title\">\r\n <div>{{getName(job)}}</div>\r\n <div>\r\n <a href=\"javascript:;\" (click)=\"cancelJob(job)\">\r\n <i class=\"fas fa-times\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"re-job-result\"\r\n [ngClass]=\"{'job-success': job._status == statuses.Success, 'job-error': job._status == statuses.Error, 'job-exporting' : job._status == statuses.Exporting, 'job-downloaded': job._status == statuses.Downloaded}\">\r\n <span *ngIf=\"job._status != statuses.Success && job._status != statuses.Exporting\">\r\n {{dicStatus.get(job._status) | translate}}\r\n </span>\r\n\r\n <span *ngIf=\"job._status == statuses.Exporting\">\r\n <div class=\"loader\"></div>\r\n {{dicStatus.get(job._status) | translate}}\r\n </span>\r\n\r\n <a href=\"javascript:;\" (click)=\"download(job)\" class=\"job-success\"\r\n *ngIf=\"job._status == statuses.Success\">\r\n <i class=\"fas fa-download\"></i> {{dicStatus.get(job._status) | translate}}\r\n </a>\r\n </div>\r\n </div>\r\n </tn-custom-scrollbar>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .rq-container{width:350px;border:1px solid #3192e1;border-radius:3px;background-color:#fff}::ng-deep .rq-container .rq-header{background-color:#3192e1;padding:5px 10px;display:flex;border-radius:3px 3px 0 0;color:#fff;font-weight:400;font-size:15px}::ng-deep .rq-container .rq-header>div:first-child{flex-grow:1}::ng-deep .rq-container .rq-header>div:last-child>a{font-weight:200;margin-left:10px;color:#fff}::ng-deep .rq-container .rq-header>div:last-child>a>i{font-size:13px}::ng-deep .rq-container .rq-header>div:last-child .ui-chkbox-box{width:14px;height:14px;margin-top:-2px}::ng-deep .rq-container .rq-header>div:last-child .ui-chkbox-icon{font-size:13px;line-height:13px}::ng-deep .rq-container .rq-body .re-job{padding:6px 10px;display:flex;flex-direction:column}::ng-deep .rq-container .rq-body .re-job:first-child{padding-top:6px}::ng-deep .rq-container .rq-body .re-job .re-job-title{display:flex;font-size:13px}::ng-deep .rq-container .rq-body .re-job .re-job-title>div:first-child{flex-grow:1;padding-bottom:3px}::ng-deep .rq-container .rq-body .re-job .re-job-title>div a{color:#3192e1}::ng-deep .rq-container .rq-body .re-job .re-job-result{font-size:11px}::ng-deep .rq-container .rq-body .re-job .re-job-result>span{display:flex;align-items:center;height:20px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-exporting{color:#3192e1}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-exporting>span>div{margin-right:5px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-success{color:#1ab91a}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-success>a>i{margin-right:2px}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-error{color:#e95353}::ng-deep .rq-container .rq-body .re-job .re-job-result.job-downloaded{color:#b2b2b2}::ng-deep .loader{border:2px solid #bcdbf5;border-radius:50%;border-top:2px solid #3192e1;width:12px;height:12px;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{position:absolute;bottom:1px;right:2px;z-index:1000}\n"] }]
|
|
278
278
|
}], ctorParameters: function () { return [{ type: i1.NotifierService }, { type: i2.CommonService }, { type: i3.FileExplorerService }, { type: i4.TemplateService }, { type: i5.SignalRService }, { type: i6.HighPerformanceService }, { type: i7.CrudService }]; }, propDecorators: { parentDataModel: [{
|
|
@@ -17,12 +17,12 @@ import * as i6 from "../../services/user.service";
|
|
|
17
17
|
import * as i7 from "../../services/notifier.service";
|
|
18
18
|
import * as i8 from "../file-explorer/services/download-link.service";
|
|
19
19
|
import * as i9 from "../file-explorer/services/file-explorer.service";
|
|
20
|
-
import * as i10 from "
|
|
21
|
-
import * as i11 from "tn-custom-primeng/
|
|
22
|
-
import * as i12 from "
|
|
23
|
-
import * as i13 from "
|
|
24
|
-
import * as i14 from "tn-custom-primeng/
|
|
25
|
-
import * as i15 from "
|
|
20
|
+
import * as i10 from "@angular/common";
|
|
21
|
+
import * as i11 from "tn-custom-primeng/button";
|
|
22
|
+
import * as i12 from "tn-custom-primeng/tooltip";
|
|
23
|
+
import * as i13 from "tn-custom-primeng/contextmenu";
|
|
24
|
+
import * as i14 from "tn-custom-primeng/fileupload";
|
|
25
|
+
import * as i15 from "../file-explorer/file-viewer/file-viewer.component";
|
|
26
26
|
export class ServiceFileUploadComponent extends ComponentBase {
|
|
27
27
|
constructor(_fileObjectService, _signalRService, _environmentService, _tnClientService, _authenService, _userService, _notifierService, _downloadLinkService, _fileExplorerService, _injector) {
|
|
28
28
|
super(_injector);
|
|
@@ -380,16 +380,16 @@ export class ServiceFileUploadComponent extends ComponentBase {
|
|
|
380
380
|
// }
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
|
-
ServiceFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
384
|
-
ServiceFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
383
|
+
ServiceFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ServiceFileUploadComponent, deps: [{ token: i1.FileObjectService }, { token: i2.SignalRService }, { token: i3.EnvironmentService }, { token: i4.TnClientService }, { token: i5.AuthenService }, { token: i6.UserService }, { token: i7.NotifierService }, { token: i8.DownloadLinkService }, { token: i9.FileExplorerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
+
ServiceFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ServiceFileUploadComponent, selector: "service-file-upload", inputs: { control: "control", serviceCode: "serviceCode", entity: "entity", entityKey: "entityKey", chooseLabel: "chooseLabel" }, outputs: { onSelect: "onSelect", onRemove: "onRemove", onChanged: "onChanged" }, providers: [
|
|
385
385
|
{
|
|
386
386
|
provide: NG_VALUE_ACCESSOR,
|
|
387
387
|
useExisting: forwardRef(() => ServiceFileUploadComponent),
|
|
388
388
|
multi: true
|
|
389
389
|
},
|
|
390
390
|
ComponentContextService
|
|
391
|
-
], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true }, { propertyName: "file", first: true, predicate: ["file"], descendants: true }, { propertyName: "fileDetailCommand", first: true, predicate: ["fileDetailCommand"], descendants: true }, { propertyName: "fileViewerNew", first: true, predicate: ["fileViewerNew"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"fl-icon\">\r\n <i *ngIf=\"loading\" class=\"pi pi-spin pi-spinner\"></i>\r\n <i *ngIf=\"!loading\" class=\"pi pi-file-o\"></i>\r\n </div>\r\n\r\n <div class=\"fl-file-name\" (click)=\"openFileViewer()\">\r\n <div>\r\n <ng-container *ngIf=\"!showNoti\">\r\n <span pTooltip=\"{{selectedFileName}}\">{{selectedFileNameShort}}</span>\r\n <span *ngIf=\"extension\">.{{extension}} </span>\r\n </ng-container>\r\n <span *ngIf=\"showNoti\"> {{notification}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fl-buttons\">\r\n <button *ngIf=\"!hasFile && !readonly\" pTooltip=\"Ch\u1ECDn file\" class=\"fl-choose\"\r\n class=\"link-or-action p-button-text p-button-rounded fl-choose\" tooltipPosition=\"top\" pButton type=\"button\"\r\n icon=\"pi pi-plus\" (click)=\"onOpenSelect()\"></button>\r\n\r\n <button *ngIf=\"hasFile && !readonly\" (click)=\"onRemoveFile()\"\r\n class=\"link-or-action p-button-text p-button-rounded p-button-danger fl-remove\" pTooltip=\"X\u00F3a file\"\r\n tooltipPosition=\"top\" pButton type=\"button\" icon=\"pi pi-trash\"></button>\r\n\r\n <button [disabled]=\"!menu || !menu.length\" type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event)\"></button>\r\n </div>\r\n\r\n <div style=\"display: none;\">\r\n <p-fileUpload #file [accept]=\"accept\" class=\"file-upload\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file[]\"\r\n [maxFileSize]=\"control.maxFileSize\" pTooltip=\"Ch\u1ECDn t\u1EEB m\u00E1y t\u00EDnh\" toolStipPosition=\"top\" multiple=\"single\"\r\n [invalidFileSizeMessageSummary]=\"control.invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"control.invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"control.invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"control.invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"control.invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"control.invalidFileLimitMessageDetail\" (onSelect)=\"onSelectFile($event)\">\r\n </p-fileUpload>\r\n </div>\r\n\r\n</div>\r\n\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"menu\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"this.forms.fileViewer.show = false;\">\r\n</file-viewer>", styles: ["::ng-deep .file-upload{display:flex;border:1px solid #ced4da;border-radius:4px}::ng-deep .file-upload .fl-icon{flex:0 0 30px;display:flex;font-size:20px;justify-content:center;align-items:center;border-right:1px solid #ced4da}::ng-deep .file-upload .fl-icon>i{font-size:16px!important}::ng-deep .file-upload .fl-file-name{display:flex;align-items:center;flex-grow:1;cursor:pointer;opacity:.8;padding:0 10px;color:#109bf8;overflow:hidden}::ng-deep .file-upload .fl-file-name>div{width:100%;display:flex}::ng-deep .file-upload .fl-file-name>div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .file-upload .fl-file-name:hover{opacity:1}::ng-deep .file-upload .fl-buttons{flex:0 0 80px;display:flex;border-right:1px solid #ced4da;align-items:center;justify-content:space-evenly;border-left:1px solid #ced4da}\n"],
|
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
391
|
+
], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true }, { propertyName: "file", first: true, predicate: ["file"], descendants: true }, { propertyName: "fileDetailCommand", first: true, predicate: ["fileDetailCommand"], descendants: true }, { propertyName: "fileViewerNew", first: true, predicate: ["fileViewerNew"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"fl-icon\">\r\n <i *ngIf=\"loading\" class=\"pi pi-spin pi-spinner\"></i>\r\n <i *ngIf=\"!loading\" class=\"pi pi-file-o\"></i>\r\n </div>\r\n\r\n <div class=\"fl-file-name\" (click)=\"openFileViewer()\">\r\n <div>\r\n <ng-container *ngIf=\"!showNoti\">\r\n <span pTooltip=\"{{selectedFileName}}\">{{selectedFileNameShort}}</span>\r\n <span *ngIf=\"extension\">.{{extension}} </span>\r\n </ng-container>\r\n <span *ngIf=\"showNoti\"> {{notification}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fl-buttons\">\r\n <button *ngIf=\"!hasFile && !readonly\" pTooltip=\"Ch\u1ECDn file\" class=\"fl-choose\"\r\n class=\"link-or-action p-button-text p-button-rounded fl-choose\" tooltipPosition=\"top\" pButton type=\"button\"\r\n icon=\"pi pi-plus\" (click)=\"onOpenSelect()\"></button>\r\n\r\n <button *ngIf=\"hasFile && !readonly\" (click)=\"onRemoveFile()\"\r\n class=\"link-or-action p-button-text p-button-rounded p-button-danger fl-remove\" pTooltip=\"X\u00F3a file\"\r\n tooltipPosition=\"top\" pButton type=\"button\" icon=\"pi pi-trash\"></button>\r\n\r\n <button [disabled]=\"!menu || !menu.length\" type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event)\"></button>\r\n </div>\r\n\r\n <div style=\"display: none;\">\r\n <p-fileUpload #file [accept]=\"accept\" class=\"file-upload\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file[]\"\r\n [maxFileSize]=\"control.maxFileSize\" pTooltip=\"Ch\u1ECDn t\u1EEB m\u00E1y t\u00EDnh\" toolStipPosition=\"top\" multiple=\"single\"\r\n [invalidFileSizeMessageSummary]=\"control.invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"control.invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"control.invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"control.invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"control.invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"control.invalidFileLimitMessageDetail\" (onSelect)=\"onSelectFile($event)\">\r\n </p-fileUpload>\r\n </div>\r\n\r\n</div>\r\n\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"menu\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"this.forms.fileViewer.show = false;\">\r\n</file-viewer>", styles: ["::ng-deep .file-upload{display:flex;border:1px solid #ced4da;border-radius:4px}::ng-deep .file-upload .fl-icon{flex:0 0 30px;display:flex;font-size:20px;justify-content:center;align-items:center;border-right:1px solid #ced4da}::ng-deep .file-upload .fl-icon>i{font-size:16px!important}::ng-deep .file-upload .fl-file-name{display:flex;align-items:center;flex-grow:1;cursor:pointer;opacity:.8;padding:0 10px;color:#109bf8;overflow:hidden}::ng-deep .file-upload .fl-file-name>div{width:100%;display:flex}::ng-deep .file-upload .fl-file-name>div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .file-upload .fl-file-name:hover{opacity:1}::ng-deep .file-upload .fl-buttons{flex:0 0 80px;display:flex;border-right:1px solid #ced4da;align-items:center;justify-content:space-evenly;border-left:1px solid #ced4da}\n"], dependencies: [{ kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i12.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i13.ContextMenu, selector: "p-contextMenu", inputs: ["autoZIndex", "baseZIndex", "triggerEvent", "model", "global", "target", "style", "styleClass", "appendTo"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.FileUpload, selector: "p-fileUpload", inputs: ["method", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "previewWidth", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "files", "name", "url", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "style", "styleClass", "chooseLabel", "uploadLabel", "cancelLabel", "headers", "customUpload", "fileLimit"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler"] }, { kind: "component", type: i15.FileViewerComponent, selector: "file-viewer", inputs: ["model", "readonly", "showPrint", "showDownload", "showDelete"], outputs: ["onClose", "onRename", "onDelete"] }] });
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ServiceFileUploadComponent, decorators: [{
|
|
393
393
|
type: Component,
|
|
394
394
|
args: [{ selector: 'service-file-upload', providers: [
|
|
395
395
|
{
|