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
|
@@ -11,11 +11,11 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
import * as i1 from "ngx-device-detector";
|
|
12
12
|
import * as i2 from "../../services/notifier.service";
|
|
13
13
|
import * as i3 from "../file-explorer/services/file-explorer.service";
|
|
14
|
-
import * as i4 from "
|
|
15
|
-
import * as i5 from "
|
|
14
|
+
import * as i4 from "@angular/common";
|
|
15
|
+
import * as i5 from "tn-custom-primeng/button";
|
|
16
16
|
import * as i6 from "../equation-editor/equation-editor.component";
|
|
17
|
-
import * as i7 from "
|
|
18
|
-
import * as i8 from "tn-custom-
|
|
17
|
+
import * as i7 from "../tn-dialog/tn-dialog.component";
|
|
18
|
+
import * as i8 from "../tn-custom-scrollbar/tn-custom-scrollbar.component";
|
|
19
19
|
import * as i9 from "@ngx-translate/core";
|
|
20
20
|
export class TnTinymceComponent extends ComponentBase {
|
|
21
21
|
constructor(injector, _deviceDetectorService, _notifierService, _fileService) {
|
|
@@ -374,16 +374,16 @@ export class TnTinymceComponent extends ComponentBase {
|
|
|
374
374
|
this.editor.insertContent(evt);
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
TnTinymceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
378
|
-
TnTinymceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
377
|
+
TnTinymceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: TnTinymceComponent, deps: [{ token: i0.Injector }, { token: i1.DeviceDetectorService }, { token: i2.NotifierService }, { token: i3.FileExplorerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
378
|
+
TnTinymceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: TnTinymceComponent, selector: "tn-tinymce", inputs: { mode: "mode", disabled: "disabled", required: "required", height: "height", field: "field", languageCode: "languageCode" }, outputs: { keydown: "keydown", onBlur: "onBlur", onChanged: "onChanged" }, providers: [
|
|
379
379
|
{
|
|
380
380
|
provide: NG_VALUE_ACCESSOR,
|
|
381
381
|
useExisting: forwardRef(() => TnTinymceComponent),
|
|
382
382
|
multi: true
|
|
383
383
|
},
|
|
384
384
|
ComponentContextService
|
|
385
|
-
], viewQueries: [{ propertyName: "equationForm", first: true, predicate: EquationEditorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\r\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\">\r\n</textarea>\r\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\r\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\">\r\n <tn-custom-scrollbar #scrollbar>\r\n <equation-editor [data]=\"dataEquation\">\r\n </equation-editor>\r\n </tn-custom-scrollbar>\r\n <ng-template #footer>\r\n <button icon=\"fas fa-check\" [disabled]=\"model.submitting\" pButton type=\"button\" (click)=\"handleOk($event)\"\r\n [label]=\"'Ok' | translate\"></button>\r\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"ui-button-secondary\" type=\"button\"\r\n (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddNews = false\">\r\n <!-- <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news> -->\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\r\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\r\n <!-- <tn-template (onChanged)=\"addTemplate($event)\"></tn-template> -->\r\n</tn-dialog>\r\n\r\n<!-- <tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddFile = false\">\r\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\r\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\r\n </file-picker-dialog>\r\n</tn-dialog> -->", styles: [""],
|
|
386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
385
|
+
], viewQueries: [{ propertyName: "equationForm", first: true, predicate: EquationEditorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\r\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\">\r\n</textarea>\r\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\r\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\">\r\n <tn-custom-scrollbar #scrollbar>\r\n <equation-editor [data]=\"dataEquation\">\r\n </equation-editor>\r\n </tn-custom-scrollbar>\r\n <ng-template #footer>\r\n <button icon=\"fas fa-check\" [disabled]=\"model.submitting\" pButton type=\"button\" (click)=\"handleOk($event)\"\r\n [label]=\"'Ok' | translate\"></button>\r\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"ui-button-secondary\" type=\"button\"\r\n (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddNews = false\">\r\n <!-- <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news> -->\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\r\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\r\n <!-- <tn-template (onChanged)=\"addTemplate($event)\"></tn-template> -->\r\n</tn-dialog>\r\n\r\n<!-- <tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddFile = false\">\r\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\r\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\r\n </file-picker-dialog>\r\n</tn-dialog> -->", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i6.EquationEditorComponent, selector: "equation-editor", inputs: ["data"] }, { kind: "component", type: i7.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "component", type: i8.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: i9.TranslatePipe, name: "translate" }] });
|
|
386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: TnTinymceComponent, decorators: [{
|
|
387
387
|
type: Component,
|
|
388
388
|
args: [{ selector: 'tn-tinymce', providers: [
|
|
389
389
|
{
|
|
@@ -392,7 +392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
|
|
|
392
392
|
multi: true
|
|
393
393
|
},
|
|
394
394
|
ComponentContextService
|
|
395
|
-
], template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\r\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\">\r\n</textarea>\r\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\r\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\">\r\n <tn-custom-scrollbar #scrollbar>\r\n <equation-editor [data]=\"dataEquation\">\r\n </equation-editor>\r\n </tn-custom-scrollbar>\r\n <ng-template #footer>\r\n <button icon=\"fas fa-check\" [disabled]=\"model.submitting\" pButton type=\"button\" (click)=\"handleOk($event)\"\r\n [label]=\"'Ok' | translate\"></button>\r\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"ui-button-secondary\" type=\"button\"\r\n (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddNews = false\">\r\n <!-- <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news> -->\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\r\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\r\n <!-- <tn-template (onChanged)=\"addTemplate($event)\"></tn-template> -->\r\n</tn-dialog>\r\n\r\n<!-- <tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddFile = false\">\r\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\r\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\r\n </file-picker-dialog>\r\n</tn-dialog> -->"
|
|
395
|
+
], template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\r\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\">\r\n</textarea>\r\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\r\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\">\r\n <tn-custom-scrollbar #scrollbar>\r\n <equation-editor [data]=\"dataEquation\">\r\n </equation-editor>\r\n </tn-custom-scrollbar>\r\n <ng-template #footer>\r\n <button icon=\"fas fa-check\" [disabled]=\"model.submitting\" pButton type=\"button\" (click)=\"handleOk($event)\"\r\n [label]=\"'Ok' | translate\"></button>\r\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"ui-button-secondary\" type=\"button\"\r\n (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddNews = false\">\r\n <!-- <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news> -->\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\r\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\r\n <!-- <tn-template (onChanged)=\"addTemplate($event)\"></tn-template> -->\r\n</tn-dialog>\r\n\r\n<!-- <tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\r\n (onHide)=\"isAddFile = false\">\r\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\r\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\r\n </file-picker-dialog>\r\n</tn-dialog> -->" }]
|
|
396
396
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DeviceDetectorService }, { type: i2.NotifierService }, { type: i3.FileExplorerService }]; }, propDecorators: { equationForm: [{
|
|
397
397
|
type: ViewChild,
|
|
398
398
|
args: [EquationEditorComponent]
|
|
@@ -34,10 +34,10 @@ export class UniversalLinkProcessorComponent extends ComponentBase {
|
|
|
34
34
|
ngOnInit() {
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
UniversalLinkProcessorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
UniversalLinkProcessorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
+
UniversalLinkProcessorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UniversalLinkProcessorComponent, deps: [{ token: i0.Injector }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
UniversalLinkProcessorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UniversalLinkProcessorComponent, selector: "universal-link-processor", providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"hasError\">\r\n {{errorMessage}}\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UniversalLinkProcessorComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
|
-
args: [{ selector: 'universal-link-processor', providers: [ComponentContextService], template: "<div *ngIf=\"hasError\">\r\n {{errorMessage}}\r\n</div>"
|
|
41
|
+
args: [{ selector: 'universal-link-processor', providers: [ComponentContextService], template: "<div *ngIf=\"hasError\">\r\n {{errorMessage}}\r\n</div>" }]
|
|
42
42
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ActivatedRoute }]; } });
|
|
43
43
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsLWxpbmstcHJvY2Vzc29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdW5pdmVyc2FsLWxpbmstcHJvY2Vzc29yL3VuaXZlcnNhbC1saW5rLXByb2Nlc3Nvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VuaXZlcnNhbC1saW5rLXByb2Nlc3Nvci91bml2ZXJzYWwtbGluay1wcm9jZXNzb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBUWxFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFhO0lBSTlELFlBQ0ksUUFBa0IsRUFDVixjQUE4QjtRQUV0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGUixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFMMUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQU9kLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUN2QiwyRUFBMkU7b0JBQzNFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUMxRCxHQUFHLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7cUJBQ2xDO2lCQUNKO3FCQUFNO29CQUNILEdBQUcsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDbEM7Z0JBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsd0JBQXdCLENBQUM7YUFDaEQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7NEhBL0JRLCtCQUErQjtnSEFBL0IsK0JBQStCLG1EQUY3QixDQUFDLHVCQUF1QixDQUFDLGlEQ1R4Qyw0REFFTTsyRkRTTywrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0ksMEJBQTBCLGFBR3pCLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlL2NvbXBvbmVudC1iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd1bml2ZXJzYWwtbGluay1wcm9jZXNzb3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VuaXZlcnNhbC1saW5rLXByb2Nlc3Nvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91bml2ZXJzYWwtbGluay1wcm9jZXNzb3IuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5pdmVyc2FsTGlua1Byb2Nlc3NvckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgaGFzRXJyb3IgPSBmYWxzZTtcclxuICAgIGVycm9yTWVzc2FnZSA9ICcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5zb3VyY2VQYXRoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KGRhdGEuc291cmNlUGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTuG6v3UgdHJvbmcgdXJsIMSRw6MgY8OzIHPhurVuIHF1ZXJ5c3RyaW5nIGlkIHRow6wga2jDtG5nIGPhuqduIGPhu5luZyBpZCB2w6BvIHVybCBu4buvYVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmwuaW5kZXhPZignP2lkPScpID09PSAtMSAmJiB1cmwuaW5kZXhPZignJmlkPScpID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgKz0gYCZpZD0ke2RhdGEuZW50aXR5S2V5fWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gYD9pZD0ke2RhdGEuZW50aXR5S2V5fWA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0b3AubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0tow7RuZyB0w6xtIHRo4bqleSBzb3VyY2VwYXRoLCBraMO0bmcgdGjhu4MgY2h1eeG7g24gdHJhbmcnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnxJDGsOG7nW5nIGThuqtuIGtow7RuZyBo4bujcCBs4buHJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaGFzRXJyb3JcIj5cclxuICAgIHt7ZXJyb3JNZXNzYWdlfX1cclxuPC9kaXY+Il19
|
|
@@ -7,12 +7,12 @@ import { appendDefaultFilter } from '../../../utils/common';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../../../services/user-v5.service";
|
|
9
9
|
import * as i2 from "../../../services/organization.service";
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "
|
|
12
|
-
import * as i5 from "tn-custom-primeng/
|
|
13
|
-
import * as i6 from "
|
|
14
|
-
import * as i7 from "
|
|
15
|
-
import * as i8 from "tn-custom-
|
|
10
|
+
import * as i3 from "tn-custom-primeng/api";
|
|
11
|
+
import * as i4 from "angular-split";
|
|
12
|
+
import * as i5 from "tn-custom-primeng/button";
|
|
13
|
+
import * as i6 from "tn-custom-primeng/tree";
|
|
14
|
+
import * as i7 from "../../entity-picker/entity-picker-box/entity-picker-box.component";
|
|
15
|
+
import * as i8 from "../../tn-custom-scrollbar/tn-custom-scrollbar.component";
|
|
16
16
|
import * as i9 from "@ngx-translate/core";
|
|
17
17
|
export class UserPickerBoxComponent extends ComponentBase {
|
|
18
18
|
constructor(_userV5Service, _injector, _organizationService) {
|
|
@@ -164,9 +164,9 @@ export class UserPickerBoxComponent extends ComponentBase {
|
|
|
164
164
|
this.onDone.emit(evt);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
UserPickerBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
168
|
-
UserPickerBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
167
|
+
UserPickerBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerBoxComponent, deps: [{ token: i1.UserV5Service }, { token: i0.Injector }, { token: i2.OrganizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
+
UserPickerBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UserPickerBoxComponent, selector: "user-picker-box", inputs: { multiple: "multiple", disabled: "disabled", enableCaching: "enableCaching", controlSetting: "controlSetting", parentSetting: "parentSetting", advanceData: "advanceData", control: "control", width: "width", height: "height", selectedValue: "selectedValue", readOnlyValues: "readOnlyValues" }, outputs: { onRowSelect: "onRowSelect", onChanged: "onChanged", onSelect: "onSelect", onUnSelect: "onUnSelect", onDone: "onDone" }, providers: [ComponentContextService], viewQueries: [{ propertyName: "entityPickerBox", first: true, predicate: ["entityPickerBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-grid p-m-0 tn-l-user-picker-box\">\r\n <as-split [unit]=\"'pixel'\">\r\n <as-split-area [size]=\"330\">\r\n <tn-custom-scrollbar>\r\n <p-tree [style]=\"{'width': '100%'}\" styleClass=\"tn-tree-beauty tree-organization-picker\"\r\n [value]=\"rootTreeNode\" filterPlaceholder=\"T\u00ECm \u0111\u01A1n v\u1ECB / ph\u00F2ng ban\" selectionMode=\"single\"\r\n [filter]=\"true\" [(selection)]=\"selectedTreeNode\" (onNodeExpand)=\"onNodeExpand($event)\"\r\n (onNodeSelect)=\"nodeSelect($event)\" [emptyMessage]=\"'Kh\u00F4ng t\u00ECm th\u1EA5y k\u1EBFt qu\u1EA3'\">\r\n <ng-template let-node pTemplate=\"default\">\r\n <span id=\"{{node.data}}\" class=\"custom-node\">{{node.label}}</span>\r\n </ng-template>\r\n </p-tree>\r\n </tn-custom-scrollbar>\r\n </as-split-area>\r\n <as-split-area [size]=\"'*'\">\r\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"parentSetting\"\r\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\r\n (onChanged)=\"handleChangedEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\r\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleDone($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n </entity-picker-box>\r\n </as-split-area>\r\n </as-split>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn'\"\r\n (click)=\"handleSelect($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"handleCancelDialog($event)\"></button>\r\n</ng-template>", styles: [".action-btn{border:1px solid #0a89bf;color:#0a89bf;background-color:#fff;font-size:16px;width:40px;cursor:pointer;text-align:center;margin:4px 2px}.content-all{display:flex;flex-direction:column}.content-top{padding:5px 0;overflow:hidden;flex-grow:1}.content-bottom{border-top:1px solid #ddd;padding:5px 0;overflow:hidden;flex:0 0 50%}.tn-l-button-group{padding-bottom:1em}.tn-l-button-group-picker{text-align:center;position:absolute;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.tn-l-user-picker-box{height:100%}.tn-l-left-sidebar-wrapper{height:100%;border-right:1px solid #aaa}.tn-l-left-sidebar-area{height:100%}.tn-l-right-content-wrapper{padding-bottom:0;padding-top:0;height:100%}@media (max-width: 640px){.entityPicker{height:auto}.tn-l-search-button-group{padding-bottom:1em}.tn-l-button-group-picker{position:static;top:auto;left:auto;transform:none;padding-bottom:5px}.tn-l-left-sidebar-wrapper{height:calc(100vh - 300px);border-right:unset;border-bottom:1px solid #aaa}}::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:hidden;padding:0}::ng-deep .user-picker-box-dialog .p-tree{padding:0;border:none}::ng-deep .user-picker-box-dialog .p-tree-wrapper{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container{position:sticky;top:0;z-index:4;padding:.5em;margin-bottom:0;background-color:#fff}::ng-deep .user-picker-box-dialog .p-tree-empty-message{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container .p-tree-filter-icon{right:1em}::ng-deep .user-picker-box-dialog .ps__rail-y{z-index:10}@media (max-width: 640px){::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:auto}::ng-deep .user-picker-box-dialog .tn-dialog-scrollbar>div{min-height:100%!important}::ng-deep .user-picker-box-dialog .tn-l-right-content-wrapper{padding:0}}\n"], dependencies: [{ kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration"], outputs: ["dragStart", "dragEnd", "gutterClick", "gutterDblClick", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "directive", type: i4.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i6.Tree, selector: "p-tree", inputs: ["layout", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loadingIcon", "emptyMessage", "filterBy", "filterMode", "indentation", "trackBy", "selection", "value", "selectionMode", "style", "styleClass", "contextMenu", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "loading", "ariaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterPlaceholder", "filterLocale", "scrollHeight", "virtualScroll", "virtualNodeHeight", "minBufferPx", "maxBufferPx"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onFilter"] }, { kind: "component", type: i7.EntityPickerBoxComponent, selector: "entity-picker-box", inputs: ["parentSetting", "advanceData", "control", "width", "height", "readOnlyValues", "selectedValue"], outputs: ["onContentLeftInit", "onContentRightInit", "onRowSelect", "onChanged", "onSelect", "onUnSelect", "onDone"] }, { kind: "component", type: i8.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: i9.TranslatePipe, name: "translate" }] });
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerBoxComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
171
|
args: [{ selector: 'user-picker-box', providers: [ComponentContextService], template: "<div class=\"p-grid p-m-0 tn-l-user-picker-box\">\r\n <as-split [unit]=\"'pixel'\">\r\n <as-split-area [size]=\"330\">\r\n <tn-custom-scrollbar>\r\n <p-tree [style]=\"{'width': '100%'}\" styleClass=\"tn-tree-beauty tree-organization-picker\"\r\n [value]=\"rootTreeNode\" filterPlaceholder=\"T\u00ECm \u0111\u01A1n v\u1ECB / ph\u00F2ng ban\" selectionMode=\"single\"\r\n [filter]=\"true\" [(selection)]=\"selectedTreeNode\" (onNodeExpand)=\"onNodeExpand($event)\"\r\n (onNodeSelect)=\"nodeSelect($event)\" [emptyMessage]=\"'Kh\u00F4ng t\u00ECm th\u1EA5y k\u1EBFt qu\u1EA3'\">\r\n <ng-template let-node pTemplate=\"default\">\r\n <span id=\"{{node.data}}\" class=\"custom-node\">{{node.label}}</span>\r\n </ng-template>\r\n </p-tree>\r\n </tn-custom-scrollbar>\r\n </as-split-area>\r\n <as-split-area [size]=\"'*'\">\r\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"parentSetting\"\r\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\r\n (onChanged)=\"handleChangedEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\r\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleDone($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n </entity-picker-box>\r\n </as-split-area>\r\n </as-split>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn'\"\r\n (click)=\"handleSelect($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"handleCancelDialog($event)\"></button>\r\n</ng-template>", styles: [".action-btn{border:1px solid #0a89bf;color:#0a89bf;background-color:#fff;font-size:16px;width:40px;cursor:pointer;text-align:center;margin:4px 2px}.content-all{display:flex;flex-direction:column}.content-top{padding:5px 0;overflow:hidden;flex-grow:1}.content-bottom{border-top:1px solid #ddd;padding:5px 0;overflow:hidden;flex:0 0 50%}.tn-l-button-group{padding-bottom:1em}.tn-l-button-group-picker{text-align:center;position:absolute;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.tn-l-user-picker-box{height:100%}.tn-l-left-sidebar-wrapper{height:100%;border-right:1px solid #aaa}.tn-l-left-sidebar-area{height:100%}.tn-l-right-content-wrapper{padding-bottom:0;padding-top:0;height:100%}@media (max-width: 640px){.entityPicker{height:auto}.tn-l-search-button-group{padding-bottom:1em}.tn-l-button-group-picker{position:static;top:auto;left:auto;transform:none;padding-bottom:5px}.tn-l-left-sidebar-wrapper{height:calc(100vh - 300px);border-right:unset;border-bottom:1px solid #aaa}}::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:hidden;padding:0}::ng-deep .user-picker-box-dialog .p-tree{padding:0;border:none}::ng-deep .user-picker-box-dialog .p-tree-wrapper{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container{position:sticky;top:0;z-index:4;padding:.5em;margin-bottom:0;background-color:#fff}::ng-deep .user-picker-box-dialog .p-tree-empty-message{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container .p-tree-filter-icon{right:1em}::ng-deep .user-picker-box-dialog .ps__rail-y{z-index:10}@media (max-width: 640px){::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:auto}::ng-deep .user-picker-box-dialog .tn-dialog-scrollbar>div{min-height:100%!important}::ng-deep .user-picker-box-dialog .tn-l-right-content-wrapper{padding:0}}\n"] }]
|
|
172
172
|
}], ctorParameters: function () { return [{ type: i1.UserV5Service }, { type: i0.Injector }, { type: i2.OrganizationService }]; }, propDecorators: { multiple: [{
|
|
@@ -31,11 +31,11 @@ export class UserPickerDialogComponent extends DataListBase {
|
|
|
31
31
|
super.ngOnInit();
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
UserPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
35
|
-
UserPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
UserPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerDialogComponent, deps: [{ token: i1.UserService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
UserPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UserPickerDialogComponent, selector: "app-user-picker-dialog", inputs: { multiple: "multiple", enableCaching: "enableCaching", control: "control" }, providers: [ComponentContextService], viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<p>\r\n user-picker-dialog works!\r\n</p>\r\n", styles: [""] });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerDialogComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 'app-user-picker-dialog', providers: [ComponentContextService], template: "<p>\r\n user-picker-dialog works!\r\n</p>\r\n"
|
|
38
|
+
args: [{ selector: 'app-user-picker-dialog', providers: [ComponentContextService], template: "<p>\r\n user-picker-dialog works!\r\n</p>\r\n" }]
|
|
39
39
|
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i0.Injector }]; }, propDecorators: { dialog: [{
|
|
40
40
|
type: ViewChild,
|
|
41
41
|
args: ['dialog']
|
|
@@ -14,14 +14,14 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
import * as i1 from "../../services/user-v5.service";
|
|
15
15
|
import * as i2 from "@ngx-translate/core";
|
|
16
16
|
import * as i3 from "../../services/dm-chucvu.service";
|
|
17
|
-
import * as i4 from "
|
|
18
|
-
import * as i5 from "
|
|
19
|
-
import * as i6 from "
|
|
20
|
-
import * as i7 from "
|
|
21
|
-
import * as i8 from "tn-custom-primeng/
|
|
22
|
-
import * as i9 from "
|
|
23
|
-
import * as i10 from "
|
|
24
|
-
import * as i11 from "
|
|
17
|
+
import * as i4 from "@angular/common";
|
|
18
|
+
import * as i5 from "tn-custom-primeng/button";
|
|
19
|
+
import * as i6 from "tn-custom-primeng/tooltip";
|
|
20
|
+
import * as i7 from "@angular/forms";
|
|
21
|
+
import * as i8 from "tn-custom-primeng/autocomplete";
|
|
22
|
+
import * as i9 from "../dropdown/dropdown.component";
|
|
23
|
+
import * as i10 from "../tn-dialog/tn-dialog.component";
|
|
24
|
+
import * as i11 from "./user-picker-box/user-picker-box.component";
|
|
25
25
|
export class UserPickerComponent extends ComponentBase {
|
|
26
26
|
constructor(_injector, _userV5Service, _translateService, _dm_ChucVuService) {
|
|
27
27
|
super(_injector);
|
|
@@ -549,16 +549,16 @@ export class UserPickerComponent extends ComponentBase {
|
|
|
549
549
|
this.onTouched = fn;
|
|
550
550
|
}
|
|
551
551
|
}
|
|
552
|
-
UserPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
553
|
-
UserPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
552
|
+
UserPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerComponent, deps: [{ token: i0.Injector }, { token: i1.UserV5Service }, { token: i2.TranslateService }, { token: i3.DmChucVuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
553
|
+
UserPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UserPickerComponent, selector: "user-picker", inputs: { control: "control", popupSize: "popupSize", multiple: "multiple", disabled: "disabled", readOnlyValues: "readOnlyValues" }, outputs: { onSelect: "onSelect", onUnSelect: "onUnSelect", onChanged: "onChanged", onFocus: "onFocus", onBlur: "onBlur", onReady: "onReady" }, providers: [
|
|
554
554
|
{
|
|
555
555
|
provide: NG_VALUE_ACCESSOR,
|
|
556
556
|
useExisting: forwardRef(() => UserPickerComponent),
|
|
557
557
|
multi: true
|
|
558
558
|
},
|
|
559
559
|
ComponentContextService
|
|
560
|
-
], viewQueries: [{ propertyName: "filterChucVuRef", first: true, predicate: ["filterChucVuRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-inputgroup user-picker\" [class.multiple]=\"multiple\" [class.hasValue]=\"hasValue\">\r\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\r\n <p-autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\" [disabled]=\"disabled\"\r\n [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\" [suggestions]=\"results\" field=\"label\"\r\n [styleClass]=\"control.validators && control.required ? 'rq' : ''\" [multiple]=\"control.multiple\"\r\n [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\" (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\" (onKeyUp)=\"handleKeyUp($event)\"\r\n (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\r\n </p-autoComplete>\r\n </div>\r\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\r\n class=\"fas fa-times\"></i></span>\r\n <button class=\"custom-autocomplete-button\" [disabled]=\"disabled\" tabindex=\"-1\" (click)=\"showPickForm()\" pButton\r\n [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\" type=\"button\"></button>\r\n</div>\r\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"user-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\r\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\r\n <user-picker-box #userPickerBox [controlSetting]=\"control\" [control]=\"controlPicker\" [parentSetting]=\"settingPicker\"\r\n [advanceData]=\"advanceDataPicker\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\r\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\r\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n </user-picker-box>\r\n <ng-template #footer>\r\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, userPickerBox)\"\r\n [label]=\"'Ho\u00E0n th\u00E0nh'\" icon=\"pi pi-check\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<ng-template #filterChucVuRef let-col=\"col\" let-filterData=\"filterData\" let-onSearch=\"onSearch\"\r\n let-onShowFilterDropdownPanel=\"onShowFilterDropdownPanel\" let-onHideFilterDropdownPanel=\"onHideFilterDropdownPanel\">\r\n <dropdown [control]=\"searchSchema.idChucVus\" [(value)]=\"filterData[col.field]\" (onHideSmartEvent)=\"onSearch()\"\r\n (onShow)=\"onShowFilterDropdownPanel($event)\" (onHideSmartEvent)=\"onHideFilterDropdownPanel($event)\">\r\n </dropdown>\r\n</ng-template>", styles: [".user-picker{position:relative}.user-picker .icon-clear{position:absolute;right:36px;top:50%;transform:translateY(-50%);font-size:11px;color:#555;padding:3px;cursor:pointer}::ng-deep .user-picker.has-value:not(.multiple):not(.disabled) p-autocomplete .p-inputtext{padding-right:34px}::ng-deep .user-picker .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.143rem 0}::ng-deep .user-picker .p-autocomplete .p-autocomplete-multiple-container,::ng-deep .user-picker .p-autocomplete .p-autocomplete-input{border-radius:4px 0 0 4px}@media (max-width: 640px){::ng-deep user-picker .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:0 0 3px}::ng-deep user-picker .p-autocomplete-input-token>input{height:21.5px!important}}\n"],
|
|
561
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
560
|
+
], viewQueries: [{ propertyName: "filterChucVuRef", first: true, predicate: ["filterChucVuRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-inputgroup user-picker\" [class.multiple]=\"multiple\" [class.hasValue]=\"hasValue\">\r\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\r\n <p-autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\" [disabled]=\"disabled\"\r\n [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\" [suggestions]=\"results\" field=\"label\"\r\n [styleClass]=\"control.validators && control.required ? 'rq' : ''\" [multiple]=\"control.multiple\"\r\n [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\" (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\" (onKeyUp)=\"handleKeyUp($event)\"\r\n (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\r\n </p-autoComplete>\r\n </div>\r\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\r\n class=\"fas fa-times\"></i></span>\r\n <button class=\"custom-autocomplete-button\" [disabled]=\"disabled\" tabindex=\"-1\" (click)=\"showPickForm()\" pButton\r\n [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\" type=\"button\"></button>\r\n</div>\r\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"user-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\r\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\r\n <user-picker-box #userPickerBox [controlSetting]=\"control\" [control]=\"controlPicker\" [parentSetting]=\"settingPicker\"\r\n [advanceData]=\"advanceDataPicker\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\r\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\r\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n </user-picker-box>\r\n <ng-template #footer>\r\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, userPickerBox)\"\r\n [label]=\"'Ho\u00E0n th\u00E0nh'\" icon=\"pi pi-check\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<ng-template #filterChucVuRef let-col=\"col\" let-filterData=\"filterData\" let-onSearch=\"onSearch\"\r\n let-onShowFilterDropdownPanel=\"onShowFilterDropdownPanel\" let-onHideFilterDropdownPanel=\"onHideFilterDropdownPanel\">\r\n <dropdown [control]=\"searchSchema.idChucVus\" [(value)]=\"filterData[col.field]\" (onHideSmartEvent)=\"onSearch()\"\r\n (onShow)=\"onShowFilterDropdownPanel($event)\" (onHideSmartEvent)=\"onHideFilterDropdownPanel($event)\">\r\n </dropdown>\r\n</ng-template>", styles: [".user-picker{position:relative}.user-picker .icon-clear{position:absolute;right:36px;top:50%;transform:translateY(-50%);font-size:11px;color:#555;padding:3px;cursor:pointer}::ng-deep .user-picker.has-value:not(.multiple):not(.disabled) p-autocomplete .p-inputtext{padding-right:34px}::ng-deep .user-picker .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.143rem 0}::ng-deep .user-picker .p-autocomplete .p-autocomplete-multiple-container,::ng-deep .user-picker .p-autocomplete .p-autocomplete-input{border-radius:4px 0 0 4px}@media (max-width: 640px){::ng-deep user-picker .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:0 0 3px}::ng-deep user-picker .p-autocomplete-input-token>input{height:21.5px!important}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "type", "autoZIndex", "baseZIndex", "dropdownIcon", "unique", "completeOnFocus", "scrollHeight", "dropdownMode", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "suggestions", "disabled", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "ariaLabel", "ariaLabelledBy", "field", "dropdown", "multiple", "tabindex", "dataKey", "emptyMessage", "autofocus"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }, { kind: "component", type: i9.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: i10.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "component", type: i11.UserPickerBoxComponent, selector: "user-picker-box", inputs: ["multiple", "disabled", "enableCaching", "controlSetting", "parentSetting", "advanceData", "control", "width", "height", "selectedValue", "readOnlyValues"], outputs: ["onRowSelect", "onChanged", "onSelect", "onUnSelect", "onDone"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
561
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserPickerComponent, decorators: [{
|
|
562
562
|
type: Component,
|
|
563
563
|
args: [{ selector: 'user-picker', providers: [
|
|
564
564
|
{
|
|
@@ -11,9 +11,9 @@ export class VanBanDenService extends BaseService {
|
|
|
11
11
|
this.serviceUri = `${this.endPoint}/vanbanden`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
VanBanDenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
VanBanDenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
VanBanDenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDenService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
VanBanDenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDenService, providedIn: 'root' });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDenService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -11,9 +11,9 @@ export class VanBanDiService extends BaseService {
|
|
|
11
11
|
this.serviceUri = `${this.endPoint}/VanBanDi`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
VanBanDiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
VanBanDiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
VanBanDiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDiService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
VanBanDiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDiService, providedIn: 'root' });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanDiService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -8,11 +8,11 @@ import { ColumnSchemaBase } from '../../../classes/form-schema-with-service';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../services/vanban-den.service";
|
|
10
10
|
import * as i2 from "../../../services/environment.service";
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "
|
|
15
|
-
import * as i7 from "tn-
|
|
11
|
+
import * as i3 from "@angular/common";
|
|
12
|
+
import * as i4 from "tn-custom-primeng/button";
|
|
13
|
+
import * as i5 from "tn-custom-primeng/tooltip";
|
|
14
|
+
import * as i6 from "../../crud/crud-list/crud-list.component";
|
|
15
|
+
import * as i7 from "../../tn-dialog/tn-dialog.component";
|
|
16
16
|
import * as i8 from "@ngx-translate/core";
|
|
17
17
|
export class VanbanDenPickerComponent extends DataListBase {
|
|
18
18
|
constructor(_injector, _vanBanDenService, _environmentService) {
|
|
@@ -181,11 +181,11 @@ export class VanbanDenPickerComponent extends DataListBase {
|
|
|
181
181
|
this.onPicked.emit(data);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
VanbanDenPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
185
|
-
VanbanDenPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
184
|
+
VanbanDenPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDenPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDenService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
+
VanbanDenPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i6.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { kind: "component", type: VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i7.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDenPickerComponent, decorators: [{
|
|
187
187
|
type: Component,
|
|
188
|
-
args: [{ selector: 'app-vanban-den-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>"
|
|
188
|
+
args: [{ selector: 'app-vanban-den-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>" }]
|
|
189
189
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.VanBanDenService }, { type: i2.EnvironmentService }]; }, propDecorators: { ids: [{
|
|
190
190
|
type: Input
|
|
191
191
|
}], hiddenPicker: [{
|
|
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
|
|
|
195
195
|
}], onRemoved: [{
|
|
196
196
|
type: Output
|
|
197
197
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRlbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7Ozs7QUFXN0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFtQ3RELFlBQ2MsU0FBbUIsRUFDbkIsaUJBQW1DLEVBQzdDLG1CQUF1QztRQUV2QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFKUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUE3QnhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FB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QzdCLENBQUM7O3FIQXRNUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixpS0FGdEIsQ0FBQyx1QkFBdUIsQ0FBQyxpRENmeEMsMHdGQW9DWSwyekNEbkJDLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixhQUd0QixDQUFDLHVCQUF1QixDQUFDOytKQUt2QixHQUFHO3NCQUFmLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBNb2RlbFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYS13aXRoLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGVuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmJhbi1kZW4uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXZhbmJhbi1kZW4tcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYW5iYW5EZW5QaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogbnVtYmVyW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBudW1iZXJbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgaGlkZGVuUGlja2VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uUGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICAgIGVudmlyb25tZW50OiBhbnkgPSB7fTtcclxuICAgIC8qKlxyXG4gICAgICogVOG6oW8gc3Vic2NyaXB0aW9uXHJcbiAgICAgKi9cclxuICAgIHZhbHVlID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcbiAgICB2YWx1ZSQgPSB0aGlzLnZhbHVlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgcmVhZHkgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gICAgcmVhZHkkID0gdGhpcy5yZWFkeS5hc09ic2VydmFibGUoKTtcclxuICAgIHNvdXJjZSA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgdGhpcy52YWx1ZSQsXHJcbiAgICAgICAgdGhpcy5yZWFkeSRcclxuICAgICk7XHJcbiAgICBzdWIgPSB0aGlzLnNvdXJjZS5zdWJzY3JpYmUodmFsdWVzID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrQW5kR2V0RGF0YSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2VhcmNoU2NoZW1hOiBhbnkgPSB7fTtcclxuICAgIHNlYXJjaERhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIHNob3dGb3JtUGlja2VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIF92YW5CYW5EZW5TZXJ2aWNlOiBWYW5CYW5EZW5TZXJ2aWNlLFxyXG4gICAgICAgIF9lbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxvYWREZXRhaWxGcm9tUXVlcnlQYXJhbSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX3ZhbkJhbkRlblNlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuc2hvd0VkaXRMaW5rID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5QYWdlVGl0bGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0RlbicsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2ludCcsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnU+G7kSDEkeG6v24nLFxyXG4gICAgICAgICAgICAgICAgZnVsbE5hbWU6ICdT4buRIMSR4bq/bicsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Phu5EgxJHhur9uJ1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogJ1Phu5EsIGvDvSBoaeG7h3UnLFxyXG4gICAgICAgICAgICAgICAgZnVsbE5hbWU6ICdT4buRLCBrw70gaGnhu4d1JyxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJyxcclxuICAgICAgICAgICAgICAgIGZ1bGxOYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJ1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5RGVuJywgZGF0YVR5cGU6ICdkYXRlJywgbmFtZTogJ05nw6B5IMSR4bq/bicsIGZ1bGxOYW1lOiAnJywgZGVzY3JpcHRpb246ICcnIH0pXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNTBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHJpY2hZZXUnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTI1cHgnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlEZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gWydjb2RlJywgJ25hbWUnXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcub2JqZWN0TmFtZSA9ICcgdsSDbiBi4bqjbiDEkeG6v24nO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb21pc2VHZXREYXRhKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0QnlHcmlkUmVxdWVzdFdpdGhCb2R5T2xkKGdyaWRJbmZvLCAnUGVybWlzc2lvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvPzogR3JpZEluZm8pIHtcclxuICAgICAgICBncmlkSW5mby5zb3J0cyA9IFtcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2lkJywgZGlyOiAtMSB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lkcyAmJiB0aGlzLl9pZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgb3BlcmF0b3IgPSBPcGVyYXRvci5pbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IE9wZXJhdG9yLm5vdEluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMudW5zaGlmdChcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpbnN0YW5jZUlkJywgb3BlcmF0b3IsIHRoaXMuX2lkcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tBbmRHZXREYXRhKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3dGb3JtUGlja1ZhbkJhbigpIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUFkZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUubWF4aW1pemUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cEhlYWRlciA9IGBUaMOqbSBt4bubaSAke3RoaXMuc2V0dGluZy5vYmplY3ROYW1lfWA7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybVBpY2tlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhblNlbGVjdGVkKCkge1xyXG4gICAgICAgIHRoaXMuX3BpY2tWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwaWNrVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKFtyb3dEYXRhXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGlja1ZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25QaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkczogaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pbnN0YW5jZUlkKSxcclxuICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHRoaXMuX3hvYVZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3hvYVZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25SZW1vdmVkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7dGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4udmFuYmFuRG9tYWlufS92YW5iYW5kZW4jX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRlbi1mb3JtIHRuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cInNldHRpbmcucG9wdXBIZWFkZXIgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgKG9uSGlkZSk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlXCI+XHJcbiAgICA8YXBwLXZhbmJhbi1kZW4tcGlja2VyIFtwYXJlbnRNb2RlbF09XCJtb2RlbFwiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIiBbaGlkZGVuUGlja2VyXT1cInRydWVcIiBbaWRzXT1cIl9pZHNcIlxyXG4gICAgICAgIChvblNhdmVkKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2U7Y3J1ZExpc3QucmVsb2FkKClcIiAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgICAob25QaWNrZWQpPVwiaGFuZGxlUGlja2VkKCRldmVudClcIj5cclxuICAgIDwvYXBwLXZhbmJhbi1kZW4tcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRlbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7Ozs7QUFXN0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFtQ3RELFlBQ2MsU0FBbUIsRUFDbkIsaUJBQW1DLEVBQzdDLG1CQUF1QztRQUV2QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFKUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUE3QnhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FB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QzdCLENBQUM7O3FIQXRNUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixpS0FGdEIsQ0FBQyx1QkFBdUIsQ0FBQyxpRENmeEMsMHdGQW9DWSxrK0NEbkJDLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixhQUd0QixDQUFDLHVCQUF1QixDQUFDOytKQUt2QixHQUFHO3NCQUFmLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBNb2RlbFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYS13aXRoLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGVuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmJhbi1kZW4uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXZhbmJhbi1kZW4tcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYW5iYW5EZW5QaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogbnVtYmVyW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBudW1iZXJbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgaGlkZGVuUGlja2VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uUGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICAgIGVudmlyb25tZW50OiBhbnkgPSB7fTtcclxuICAgIC8qKlxyXG4gICAgICogVOG6oW8gc3Vic2NyaXB0aW9uXHJcbiAgICAgKi9cclxuICAgIHZhbHVlID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcbiAgICB2YWx1ZSQgPSB0aGlzLnZhbHVlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgcmVhZHkgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gICAgcmVhZHkkID0gdGhpcy5yZWFkeS5hc09ic2VydmFibGUoKTtcclxuICAgIHNvdXJjZSA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgdGhpcy52YWx1ZSQsXHJcbiAgICAgICAgdGhpcy5yZWFkeSRcclxuICAgICk7XHJcbiAgICBzdWIgPSB0aGlzLnNvdXJjZS5zdWJzY3JpYmUodmFsdWVzID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrQW5kR2V0RGF0YSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2VhcmNoU2NoZW1hOiBhbnkgPSB7fTtcclxuICAgIHNlYXJjaERhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIHNob3dGb3JtUGlja2VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIF92YW5CYW5EZW5TZXJ2aWNlOiBWYW5CYW5EZW5TZXJ2aWNlLFxyXG4gICAgICAgIF9lbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxvYWREZXRhaWxGcm9tUXVlcnlQYXJhbSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX3ZhbkJhbkRlblNlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuc2hvd0VkaXRMaW5rID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5QYWdlVGl0bGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0RlbicsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2ludCcsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnU+G7kSDEkeG6v24nLFxyXG4gICAgICAgICAgICAgICAgZnVsbE5hbWU6ICdT4buRIMSR4bq/bicsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Phu5EgxJHhur9uJ1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogJ1Phu5EsIGvDvSBoaeG7h3UnLFxyXG4gICAgICAgICAgICAgICAgZnVsbE5hbWU6ICdT4buRLCBrw70gaGnhu4d1JyxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJyxcclxuICAgICAgICAgICAgICAgIGZ1bGxOYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJ1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5RGVuJywgZGF0YVR5cGU6ICdkYXRlJywgbmFtZTogJ05nw6B5IMSR4bq/bicsIGZ1bGxOYW1lOiAnJywgZGVzY3JpcHRpb246ICcnIH0pXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNTBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHJpY2hZZXUnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTI1cHgnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlEZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gWydjb2RlJywgJ25hbWUnXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcub2JqZWN0TmFtZSA9ICcgdsSDbiBi4bqjbiDEkeG6v24nO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb21pc2VHZXREYXRhKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0QnlHcmlkUmVxdWVzdFdpdGhCb2R5T2xkKGdyaWRJbmZvLCAnUGVybWlzc2lvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvPzogR3JpZEluZm8pIHtcclxuICAgICAgICBncmlkSW5mby5zb3J0cyA9IFtcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2lkJywgZGlyOiAtMSB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lkcyAmJiB0aGlzLl9pZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgb3BlcmF0b3IgPSBPcGVyYXRvci5pbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IE9wZXJhdG9yLm5vdEluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMudW5zaGlmdChcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpbnN0YW5jZUlkJywgb3BlcmF0b3IsIHRoaXMuX2lkcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tBbmRHZXREYXRhKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3dGb3JtUGlja1ZhbkJhbigpIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUFkZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUubWF4aW1pemUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cEhlYWRlciA9IGBUaMOqbSBt4bubaSAke3RoaXMuc2V0dGluZy5vYmplY3ROYW1lfWA7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybVBpY2tlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhblNlbGVjdGVkKCkge1xyXG4gICAgICAgIHRoaXMuX3BpY2tWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwaWNrVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKFtyb3dEYXRhXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGlja1ZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25QaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkczogaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pbnN0YW5jZUlkKSxcclxuICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHRoaXMuX3hvYVZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3hvYVZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25SZW1vdmVkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7dGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4udmFuYmFuRG9tYWlufS92YW5iYW5kZW4jX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRlbi1mb3JtIHRuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cInNldHRpbmcucG9wdXBIZWFkZXIgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgKG9uSGlkZSk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlXCI+XHJcbiAgICA8YXBwLXZhbmJhbi1kZW4tcGlja2VyIFtwYXJlbnRNb2RlbF09XCJtb2RlbFwiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIiBbaGlkZGVuUGlja2VyXT1cInRydWVcIiBbaWRzXT1cIl9pZHNcIlxyXG4gICAgICAgIChvblNhdmVkKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2U7Y3J1ZExpc3QucmVsb2FkKClcIiAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgICAob25QaWNrZWQpPVwiaGFuZGxlUGlja2VkKCRldmVudClcIj5cclxuICAgIDwvYXBwLXZhbmJhbi1kZW4tcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|