@acorex/components 6.5.70 → 6.5.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/esm2022/acorex-components.mjs +5 -0
- package/esm2022/index.mjs +158 -0
- package/esm2022/lib/accordion/accordion.component.mjs +45 -0
- package/esm2022/lib/accordion/accordion.module.mjs +20 -0
- package/esm2022/lib/base/base-page.class.mjs +95 -0
- package/esm2022/lib/base/components.class.mjs +17 -0
- package/esm2022/lib/base/element.class.mjs +301 -0
- package/esm2022/lib/base/events.class.mjs +17 -0
- package/esm2022/lib/button/button.component.mjs +74 -0
- package/esm2022/lib/button/button.module.mjs +21 -0
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +426 -0
- package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
- package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +59 -0
- package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +16 -0
- package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +226 -0
- package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +68 -0
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +136 -0
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
- package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +49 -0
- package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +102 -0
- package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +214 -0
- package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
- package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +85 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +102 -0
- package/esm2022/lib/checkbox/checkbox.module.mjs +20 -0
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +423 -0
- package/esm2022/lib/color-picker/color-picker.component.mjs +89 -0
- package/esm2022/lib/color-picker/color-picker.module.mjs +24 -0
- package/esm2022/lib/context-menu/context-menu.component.mjs +68 -0
- package/esm2022/lib/context-menu/context-menu.directive.mjs +146 -0
- package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +140 -0
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +119 -0
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +75 -0
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +119 -0
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +267 -0
- package/esm2022/lib/data-filter/filter.class.mjs +46 -0
- package/esm2022/lib/data-filter/filter.module.mjs +88 -0
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +168 -0
- package/esm2022/lib/data-list/core/data-list.component.mjs +37 -0
- package/esm2022/lib/data-list/list/list.component.mjs +134 -0
- package/esm2022/lib/data-list/list/list.module.mjs +22 -0
- package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +84 -0
- package/esm2022/lib/data-source/datasource.component.mjs +47 -0
- package/esm2022/lib/data-source/datasource.module.mjs +18 -0
- package/esm2022/lib/data-source/read-param.mjs +7 -0
- package/esm2022/lib/date-picker/date-picker.component.mjs +718 -0
- package/esm2022/lib/date-picker/date-picker.module.mjs +49 -0
- package/esm2022/lib/dialog/dialog.component.mjs +26 -0
- package/esm2022/lib/dialog/dialog.module.mjs +21 -0
- package/esm2022/lib/dialog/dialog.service.mjs +160 -0
- package/esm2022/lib/drawer/content.component.mjs +18 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +38 -0
- package/esm2022/lib/drawer/drawer.component.mjs +146 -0
- package/esm2022/lib/drawer/drawer.module.mjs +23 -0
- package/esm2022/lib/dropdown/dropdown.component.mjs +186 -0
- package/esm2022/lib/dropdown/dropdown.module.mjs +26 -0
- package/esm2022/lib/fieldset/fieldset.component.mjs +57 -0
- package/esm2022/lib/fieldset/fieldset.module.mjs +19 -0
- package/esm2022/lib/form-group/form-group.component.mjs +37 -0
- package/esm2022/lib/form-group/form-group.module.mjs +21 -0
- package/esm2022/lib/label/label.component.mjs +19 -0
- package/esm2022/lib/label/label.module.mjs +21 -0
- package/esm2022/lib/loading/loading-indicator.component.mjs +18 -0
- package/esm2022/lib/loading/loading-panel.component.mjs +45 -0
- package/esm2022/lib/loading/loading.module.mjs +21 -0
- package/esm2022/lib/loading/loading.service.mjs +47 -0
- package/esm2022/lib/menu/menu-item.component.mjs +50 -0
- package/esm2022/lib/menu/menu.component.mjs +98 -0
- package/esm2022/lib/menu/menu.module.mjs +22 -0
- package/esm2022/lib/menu/menu2.component.mjs +100 -0
- package/esm2022/lib/number-box/number-box.component.mjs +628 -0
- package/esm2022/lib/number-box/number-box.module.mjs +21 -0
- package/esm2022/lib/page/content.component.mjs +27 -0
- package/esm2022/lib/page/footer.component.mjs +19 -0
- package/esm2022/lib/page/page.component.mjs +57 -0
- package/esm2022/lib/page/page.module.mjs +22 -0
- package/esm2022/lib/panel-box/panel-box.component.mjs +87 -0
- package/esm2022/lib/panel-box/panel-box.module.mjs +19 -0
- package/esm2022/lib/password-box/password-box.component.mjs +32 -0
- package/esm2022/lib/password-box/password-box.module.mjs +23 -0
- package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +50 -0
- package/esm2022/lib/popover/overlay.service.mjs +94 -0
- package/esm2022/lib/popover/popover.component.mjs +145 -0
- package/esm2022/lib/popover/popover.module.mjs +19 -0
- package/esm2022/lib/popup/popup.component.mjs +159 -0
- package/esm2022/lib/popup/popup.module.mjs +25 -0
- package/esm2022/lib/popup/popup.service.mjs +94 -0
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +16 -0
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
- package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +65 -0
- package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
- package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +41 -0
- package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +118 -0
- package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +216 -0
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +76 -0
- package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +87 -0
- package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +66 -0
- package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +145 -0
- package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +59 -0
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +76 -0
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +75 -0
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +73 -0
- package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +30 -0
- package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +36 -0
- package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +35 -0
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +47 -0
- package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
- package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +167 -0
- package/esm2022/lib/property-editor/property-editor.class.mjs +108 -0
- package/esm2022/lib/property-editor/property-editor.module.mjs +194 -0
- package/esm2022/lib/query-builder/query-builder-group.component.mjs +129 -0
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +177 -0
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +428 -0
- package/esm2022/lib/query-builder/query-builder.class.mjs +42 -0
- package/esm2022/lib/query-builder/query-builder.component.mjs +92 -0
- package/esm2022/lib/query-builder/query-builder.module.mjs +62 -0
- package/esm2022/lib/query-builder/query-builder.service.mjs +199 -0
- package/esm2022/lib/search-bar/search-bar.component.mjs +293 -0
- package/esm2022/lib/search-bar/search-bar.module.mjs +61 -0
- package/esm2022/lib/searchbox/searchbox.component.mjs +82 -0
- package/esm2022/lib/searchbox/searchbox.module.mjs +24 -0
- package/esm2022/lib/selectbox/selectbox.component.mjs +1025 -0
- package/esm2022/lib/selectbox/selectbox.module.mjs +44 -0
- package/esm2022/lib/selectbox/selectbox2.component.mjs +617 -0
- package/esm2022/lib/selection-list/selection-list.component.mjs +113 -0
- package/esm2022/lib/selection-list/selection-list.module.mjs +21 -0
- package/esm2022/lib/switch/switch.component.mjs +55 -0
- package/esm2022/lib/switch/switch.module.mjs +20 -0
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +75 -0
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +124 -0
- package/esm2022/lib/tab-page/tab-page.module.mjs +21 -0
- package/esm2022/lib/tab-page/tab-page.service.mjs +158 -0
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +38 -0
- package/esm2022/lib/tab-strip/tab-strip.module.mjs +19 -0
- package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +25 -0
- package/esm2022/lib/tab-view/tab-view.component.mjs +110 -0
- package/esm2022/lib/tab-view/tab-view.module.mjs +21 -0
- package/esm2022/lib/tab-view/tab.component.mjs +33 -0
- package/esm2022/lib/textarea/textarea.component.mjs +27 -0
- package/esm2022/lib/textarea/textarea.module.mjs +21 -0
- package/esm2022/lib/textbox/textbox.component.mjs +42 -0
- package/esm2022/lib/textbox/textbox.module.mjs +36 -0
- package/esm2022/lib/time-picker/time-picker.component.mjs +1104 -0
- package/esm2022/lib/time-picker/time-picker.module.mjs +34 -0
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +76 -0
- package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
- package/esm2022/lib/toast/toast.module.mjs +21 -0
- package/esm2022/lib/toast/toast.service.mjs +45 -0
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +77 -0
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +62 -0
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +56 -0
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +37 -0
- package/esm2022/lib/toolbar/toolbar-item.mjs +4 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +13 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +40 -0
- package/esm2022/lib/tooltip/tooltip.directive.mjs +104 -0
- package/esm2022/lib/tooltip/tooltip.module.mjs +19 -0
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +697 -0
- package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +33 -0
- package/esm2022/lib/tree-view/tree-view.component.mjs +854 -0
- package/esm2022/lib/tree-view/tree-view.module.mjs +22 -0
- package/esm2022/lib/upload-file/upload-file.component.mjs +218 -0
- package/esm2022/lib/upload-file/upload-file.events.mjs +2 -0
- package/esm2022/lib/upload-file/upload-file.module.mjs +24 -0
- package/esm2022/lib/validation/validation-form.component.mjs +68 -0
- package/esm2022/lib/validation/validation-rule.widget.mjs +114 -0
- package/esm2022/lib/validation/validation.class.mjs +2 -0
- package/esm2022/lib/validation/validation.component.mjs +89 -0
- package/esm2022/lib/validation/validation.module.mjs +34 -0
- package/{fesm2020 → fesm2022}/acorex-components.mjs +3987 -3087
- package/fesm2022/acorex-components.mjs.map +1 -0
- package/lib/accordion/accordion.component.d.ts +1 -1
- package/lib/base/base-page.class.d.ts +2 -2
- package/lib/base/element.class.d.ts +6 -6
- package/lib/button/button.component.d.ts +1 -1
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +6 -6
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +2 -2
- package/lib/calendar/scheduler/scheduler.class.d.ts +1 -1
- package/lib/calendar/scheduler/scheduler.component.d.ts +1 -1
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +1 -1
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +1 -1
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +1 -1
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +1 -1
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +1 -1
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +1 -1
- package/lib/checkbox/checkbox.component.d.ts +1 -1
- package/lib/color-picker/color-box/color-box.component.d.ts +1 -1
- package/lib/color-picker/color-picker.component.d.ts +1 -1
- package/lib/context-menu/context-menu.component.d.ts +1 -1
- package/lib/context-menu/context-menu.directive.d.ts +3 -3
- package/lib/data-filter/columns/filter-column-date.component.d.ts +1 -1
- package/lib/data-filter/columns/filter-column-number.component.d.ts +1 -1
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +1 -1
- package/lib/data-filter/columns/filter-column-string.component.d.ts +1 -1
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +1 -1
- package/lib/data-filter/filter.class.d.ts +1 -1
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +1 -1
- package/lib/data-list/core/data-list.component.d.ts +1 -1
- package/lib/data-list/list/list.component.d.ts +1 -1
- package/lib/data-list/list/toolbar-list-view.component.d.ts +2 -2
- package/lib/data-source/datasource.component.d.ts +1 -1
- package/lib/date-picker/date-picker.component.d.ts +1 -1
- package/lib/date-picker/date-picker.module.d.ts +2 -2
- package/lib/dialog/dialog.component.d.ts +1 -1
- package/lib/drawer/content.component.d.ts +1 -1
- package/lib/drawer/drawer-container.component.d.ts +1 -1
- package/lib/drawer/drawer.component.d.ts +3 -3
- package/lib/dropdown/dropdown.component.d.ts +1 -1
- package/lib/fieldset/fieldset.component.d.ts +1 -1
- package/lib/form-group/form-group.component.d.ts +1 -1
- package/lib/label/label.component.d.ts +1 -1
- package/lib/loading/loading-indicator.component.d.ts +1 -1
- package/lib/loading/loading-panel.component.d.ts +1 -1
- package/lib/menu/menu-item.component.d.ts +1 -1
- package/lib/menu/menu.component.d.ts +1 -1
- package/lib/menu/menu2.component.d.ts +1 -1
- package/lib/number-box/number-box.component.d.ts +1 -1
- package/lib/page/content.component.d.ts +1 -1
- package/lib/page/footer.component.d.ts +1 -1
- package/lib/page/page.component.d.ts +1 -1
- package/lib/panel-box/panel-box.component.d.ts +1 -1
- package/lib/password-box/password-box.component.d.ts +1 -1
- package/lib/popover/popover.component.d.ts +1 -1
- package/lib/popup/popup.component.d.ts +1 -1
- package/lib/progress-bar/progress-bar.component.d.ts +1 -1
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +1 -1
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +1 -1
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +1 -1
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +1 -1
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +1 -1
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -1
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +1 -1
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +1 -1
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +1 -1
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +1 -1
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +1 -1
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +1 -1
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +1 -1
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +1 -1
- package/lib/property-editor/property-editor-renderer.directive.d.ts +1 -1
- package/lib/property-editor/property-editor.class.d.ts +3 -3
- package/lib/query-builder/query-builder-group.component.d.ts +1 -1
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +1 -1
- package/lib/query-builder/query-builder-rule.component.d.ts +3 -3
- package/lib/query-builder/query-builder.class.d.ts +4 -4
- package/lib/query-builder/query-builder.component.d.ts +1 -1
- package/lib/search-bar/search-bar.component.d.ts +1 -1
- package/lib/searchbox/searchbox.component.d.ts +1 -1
- package/lib/selectbox/selectbox.component.d.ts +1 -1
- package/lib/selectbox/selectbox2.component.d.ts +1 -1
- package/lib/selection-list/selection-list.component.d.ts +2 -2
- package/lib/switch/switch.component.d.ts +1 -1
- package/lib/tab-page/tab-page-Renderer.component.d.ts +1 -1
- package/lib/tab-page/tab-page-host.component.d.ts +1 -1
- package/lib/tab-strip/tab-strip.component.d.ts +1 -1
- package/lib/tab-view/dynamic-tabs.directive.d.ts +1 -1
- package/lib/tab-view/tab-view.component.d.ts +1 -1
- package/lib/tab-view/tab.component.d.ts +1 -1
- package/lib/textarea/textarea.component.d.ts +1 -1
- package/lib/textbox/textbox.component.d.ts +1 -1
- package/lib/textbox/textbox.module.d.ts +2 -2
- package/lib/time-picker/time-picker.component.d.ts +1 -1
- package/lib/time-picker/time-picker.module.d.ts +2 -2
- package/lib/toast/toast-message/toast-message.component.d.ts +1 -1
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +1 -1
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +1 -1
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +1 -1
- package/lib/toolbar/search/toolbar-search.component.d.ts +1 -1
- package/lib/toolbar/title/toolbar-title.component.d.ts +1 -1
- package/lib/toolbar/toolbar.component.d.ts +1 -1
- package/lib/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +1 -1
- package/lib/tree-view/tree-view.component.d.ts +1 -1
- package/lib/upload-file/upload-file.component.d.ts +1 -1
- package/lib/validation/validation-form.component.d.ts +1 -1
- package/lib/validation/validation-rule.widget.d.ts +1 -1
- package/lib/validation/validation.class.d.ts +1 -1
- package/lib/validation/validation.component.d.ts +1 -1
- package/package.json +15 -20
- package/acorex-components.d.ts +0 -5
- package/esm2020/acorex-components.mjs +0 -5
- package/esm2020/lib/accordion/accordion.component.mjs +0 -44
- package/esm2020/lib/accordion/accordion.module.mjs +0 -20
- package/esm2020/lib/base/base-page.class.mjs +0 -94
- package/esm2020/lib/base/components.class.mjs +0 -17
- package/esm2020/lib/base/element.class.mjs +0 -294
- package/esm2020/lib/base/events.class.mjs +0 -11
- package/esm2020/lib/button/button.component.mjs +0 -71
- package/esm2020/lib/button/button.module.mjs +0 -21
- package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +0 -413
- package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
- package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +0 -54
- package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +0 -18
- package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +0 -213
- package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +0 -68
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -132
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
- package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -47
- package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -95
- package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -204
- package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
- package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -77
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -98
- package/esm2020/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2020/lib/color-picker/color-box/color-box.component.mjs +0 -422
- package/esm2020/lib/color-picker/color-picker.component.mjs +0 -82
- package/esm2020/lib/color-picker/color-picker.module.mjs +0 -24
- package/esm2020/lib/context-menu/context-menu.component.mjs +0 -65
- package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -135
- package/esm2020/lib/context-menu/context-menu.module.mjs +0 -20
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +0 -138
- package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +0 -117
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +0 -74
- package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +0 -117
- package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -258
- package/esm2020/lib/data-filter/filter.class.mjs +0 -44
- package/esm2020/lib/data-filter/filter.module.mjs +0 -90
- package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -166
- package/esm2020/lib/data-list/core/data-list.component.mjs +0 -40
- package/esm2020/lib/data-list/list/list.component.mjs +0 -124
- package/esm2020/lib/data-list/list/list.module.mjs +0 -22
- package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +0 -85
- package/esm2020/lib/data-source/datasource.component.mjs +0 -47
- package/esm2020/lib/data-source/datasource.module.mjs +0 -18
- package/esm2020/lib/data-source/read-param.mjs +0 -5
- package/esm2020/lib/date-picker/date-picker.component.mjs +0 -702
- package/esm2020/lib/date-picker/date-picker.module.mjs +0 -25
- package/esm2020/lib/dialog/dialog.component.mjs +0 -24
- package/esm2020/lib/dialog/dialog.module.mjs +0 -21
- package/esm2020/lib/dialog/dialog.service.mjs +0 -150
- package/esm2020/lib/drawer/content.component.mjs +0 -18
- package/esm2020/lib/drawer/drawer-container.component.mjs +0 -36
- package/esm2020/lib/drawer/drawer.component.mjs +0 -142
- package/esm2020/lib/drawer/drawer.module.mjs +0 -23
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -176
- package/esm2020/lib/dropdown/dropdown.module.mjs +0 -26
- package/esm2020/lib/fieldset/fieldset.component.mjs +0 -59
- package/esm2020/lib/fieldset/fieldset.module.mjs +0 -19
- package/esm2020/lib/form-group/form-group.component.mjs +0 -34
- package/esm2020/lib/form-group/form-group.module.mjs +0 -21
- package/esm2020/lib/label/label.component.mjs +0 -19
- package/esm2020/lib/label/label.module.mjs +0 -21
- package/esm2020/lib/loading/loading-indicator.component.mjs +0 -17
- package/esm2020/lib/loading/loading-panel.component.mjs +0 -44
- package/esm2020/lib/loading/loading.module.mjs +0 -21
- package/esm2020/lib/loading/loading.service.mjs +0 -45
- package/esm2020/lib/menu/menu-item.component.mjs +0 -47
- package/esm2020/lib/menu/menu.component.mjs +0 -86
- package/esm2020/lib/menu/menu.module.mjs +0 -22
- package/esm2020/lib/menu/menu2.component.mjs +0 -96
- package/esm2020/lib/number-box/number-box.component.mjs +0 -622
- package/esm2020/lib/number-box/number-box.module.mjs +0 -21
- package/esm2020/lib/page/content.component.mjs +0 -32
- package/esm2020/lib/page/footer.component.mjs +0 -19
- package/esm2020/lib/page/page.component.mjs +0 -53
- package/esm2020/lib/page/page.module.mjs +0 -22
- package/esm2020/lib/panel-box/panel-box.component.mjs +0 -88
- package/esm2020/lib/panel-box/panel-box.module.mjs +0 -19
- package/esm2020/lib/password-box/password-box.component.mjs +0 -31
- package/esm2020/lib/password-box/password-box.module.mjs +0 -23
- package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +0 -48
- package/esm2020/lib/popover/overlay.service.mjs +0 -91
- package/esm2020/lib/popover/popover.component.mjs +0 -133
- package/esm2020/lib/popover/popover.module.mjs +0 -19
- package/esm2020/lib/popup/popup.component.mjs +0 -147
- package/esm2020/lib/popup/popup.module.mjs +0 -25
- package/esm2020/lib/popup/popup.service.mjs +0 -93
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -19
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +0 -61
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
- package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +0 -38
- package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +0 -115
- package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -211
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -78
- package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +0 -51
- package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +0 -63
- package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +0 -140
- package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +0 -61
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -72
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -71
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -69
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
- package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -29
- package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +0 -32
- package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -32
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +0 -43
- package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +0 -157
- package/esm2020/lib/property-editor/property-editor.class.mjs +0 -102
- package/esm2020/lib/property-editor/property-editor.module.mjs +0 -196
- package/esm2020/lib/query-builder/query-builder-group.component.mjs +0 -124
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -172
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +0 -399
- package/esm2020/lib/query-builder/query-builder.class.mjs +0 -20
- package/esm2020/lib/query-builder/query-builder.component.mjs +0 -87
- package/esm2020/lib/query-builder/query-builder.module.mjs +0 -62
- package/esm2020/lib/query-builder/query-builder.service.mjs +0 -197
- package/esm2020/lib/search-bar/search-bar.component.mjs +0 -286
- package/esm2020/lib/search-bar/search-bar.module.mjs +0 -63
- package/esm2020/lib/searchbox/searchbox.component.mjs +0 -79
- package/esm2020/lib/searchbox/searchbox.module.mjs +0 -24
- package/esm2020/lib/selectbox/selectbox.component.mjs +0 -961
- package/esm2020/lib/selectbox/selectbox.module.mjs +0 -44
- package/esm2020/lib/selectbox/selectbox2.component.mjs +0 -574
- package/esm2020/lib/selection-list/selection-list.component.mjs +0 -108
- package/esm2020/lib/selection-list/selection-list.module.mjs +0 -21
- package/esm2020/lib/switch/switch.component.mjs +0 -51
- package/esm2020/lib/switch/switch.module.mjs +0 -20
- package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +0 -71
- package/esm2020/lib/tab-page/tab-page-host.component.mjs +0 -114
- package/esm2020/lib/tab-page/tab-page.module.mjs +0 -21
- package/esm2020/lib/tab-page/tab-page.service.mjs +0 -160
- package/esm2020/lib/tab-strip/tab-strip.component.mjs +0 -36
- package/esm2020/lib/tab-strip/tab-strip.module.mjs +0 -19
- package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +0 -24
- package/esm2020/lib/tab-view/tab-view.component.mjs +0 -105
- package/esm2020/lib/tab-view/tab-view.module.mjs +0 -21
- package/esm2020/lib/tab-view/tab.component.mjs +0 -30
- package/esm2020/lib/textarea/textarea.component.mjs +0 -26
- package/esm2020/lib/textarea/textarea.module.mjs +0 -21
- package/esm2020/lib/textbox/textbox.component.mjs +0 -39
- package/esm2020/lib/textbox/textbox.module.mjs +0 -24
- package/esm2020/lib/time-picker/time-picker.component.mjs +0 -943
- package/esm2020/lib/time-picker/time-picker.module.mjs +0 -22
- package/esm2020/lib/toast/toast-message/toast-message.component.mjs +0 -74
- package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
- package/esm2020/lib/toast/toast.module.mjs +0 -21
- package/esm2020/lib/toast/toast.service.mjs +0 -44
- package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -78
- package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +0 -57
- package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +0 -54
- package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +0 -47
- package/esm2020/lib/toolbar/toolbar-item.mjs +0 -6
- package/esm2020/lib/toolbar/toolbar.component.mjs +0 -13
- package/esm2020/lib/toolbar/toolbar.module.mjs +0 -40
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -100
- package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +0 -646
- package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +0 -35
- package/esm2020/lib/tree-view/tree-view.component.mjs +0 -775
- package/esm2020/lib/tree-view/tree-view.module.mjs +0 -22
- package/esm2020/lib/upload-file/upload-file.component.mjs +0 -208
- package/esm2020/lib/upload-file/upload-file.events.mjs +0 -2
- package/esm2020/lib/upload-file/upload-file.module.mjs +0 -24
- package/esm2020/lib/validation/validation-form.component.mjs +0 -65
- package/esm2020/lib/validation/validation-rule.widget.mjs +0 -111
- package/esm2020/lib/validation/validation.class.mjs +0 -2
- package/esm2020/lib/validation/validation.component.mjs +0 -89
- package/esm2020/lib/validation/validation.module.mjs +0 -34
- package/esm2020/public-api.mjs +0 -158
- package/fesm2015/acorex-components.mjs +0 -16012
- package/fesm2015/acorex-components.mjs.map +0 -1
- package/fesm2020/acorex-components.mjs.map +0 -1
- /package/{public-api.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
import { Component, Input, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
export class AXContextMenuComponent {
|
5
|
+
container;
|
6
|
+
size = 'md';
|
7
|
+
width;
|
8
|
+
items = [];
|
9
|
+
onItemClick = new EventEmitter();
|
10
|
+
onClosed = new EventEmitter();
|
11
|
+
contex;
|
12
|
+
show = false;
|
13
|
+
constructor(container) {
|
14
|
+
this.container = container;
|
15
|
+
}
|
16
|
+
ngAfterViewInit() {
|
17
|
+
}
|
18
|
+
close() {
|
19
|
+
this.show = false;
|
20
|
+
this.onClosed.emit({
|
21
|
+
component: this
|
22
|
+
});
|
23
|
+
}
|
24
|
+
open(_left, _top, _rtl = false) {
|
25
|
+
this.show = true;
|
26
|
+
setTimeout(() => {
|
27
|
+
const containRec = this.container.nativeElement.getBoundingClientRect();
|
28
|
+
let left = _rtl === false ? _left : _left - containRec.width;
|
29
|
+
let top = _top;
|
30
|
+
if (_rtl === false && _left + containRec.width > window.innerWidth) {
|
31
|
+
left = window.innerWidth - containRec.width;
|
32
|
+
}
|
33
|
+
else if (_rtl === true && _left - containRec.width < 0) {
|
34
|
+
left = 0;
|
35
|
+
}
|
36
|
+
if (top + containRec.height > window.innerHeight) {
|
37
|
+
top = _top - containRec.height;
|
38
|
+
}
|
39
|
+
this.container.nativeElement.style.left = left + 'px';
|
40
|
+
this.container.nativeElement.style.top = top + 'px';
|
41
|
+
}, 5);
|
42
|
+
}
|
43
|
+
handleClickItem(item) {
|
44
|
+
if (!item.disable || item.disable === undefined) {
|
45
|
+
this.onItemClick.emit(item);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: { size: "size", width: "width", items: "items" }, outputs: { onItemClick: "onItemClick", onClosed: "onClosed" }, host: { classAttribute: "ax context-menu-container" }, viewQueries: [{ propertyName: "contex", first: true, predicate: ["contex"], descendants: true }], ngImport: i0, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\r\n </div>\r\n </li>\r\n </ng-container>\r\n\r\n</ul> -->\r\n\r\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\r\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveContextMenu let-items>\r\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\r\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\r\n </div>\r\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
50
|
+
}
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuComponent, decorators: [{
|
52
|
+
type: Component,
|
53
|
+
args: [{ selector: 'ax-context-menu', host: { class: 'ax context-menu-container' }, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\r\n </div>\r\n </li>\r\n </ng-container>\r\n\r\n</ul> -->\r\n\r\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\r\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveContextMenu let-items>\r\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\r\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\r\n </div>\r\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>" }]
|
54
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { size: [{
|
55
|
+
type: Input
|
56
|
+
}], width: [{
|
57
|
+
type: Input
|
58
|
+
}], items: [{
|
59
|
+
type: Input
|
60
|
+
}], onItemClick: [{
|
61
|
+
type: Output
|
62
|
+
}], onClosed: [{
|
63
|
+
type: Output
|
64
|
+
}], contex: [{
|
65
|
+
type: ViewChild,
|
66
|
+
args: ['contex']
|
67
|
+
}] } });
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQXVCYjtJQXJCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBSXJDLElBQUksR0FBWSxLQUFLLENBQUM7SUFFdEIsWUFBb0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtJQUN6QyxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxLQUFLO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hFLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xFLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDN0M7aUJBQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDeEQsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUNoRCxHQUFHLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDaEM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRXRELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUdSLENBQUM7SUFJRCxlQUFlLENBQUMsSUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO3VHQWxFVSxzQkFBc0I7MkZBQXRCLHNCQUFzQix5VUNWbkMsKy9EQXlDYzs7MkZEL0JELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUIsUUFFckIsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7aUdBSTVDLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWEJhc2VFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtY29udGV4dC1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhDb250ZXh0TWVudUNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VFdmVudD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGV4JylcclxuICBjb250ZXg6IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XHJcblxyXG5cclxuXHJcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9wZW4oX2xlZnQsIF90b3AsIF9ydGwgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250YWluUmVjID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgbGV0IGxlZnQgPSBfcnRsID09PSBmYWxzZSA/IF9sZWZ0IDogX2xlZnQgLSBjb250YWluUmVjLndpZHRoO1xyXG4gICAgICBsZXQgdG9wID0gX3RvcDtcclxuICAgICAgaWYgKF9ydGwgPT09IGZhbHNlICYmIF9sZWZ0ICsgY29udGFpblJlYy53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XHJcbiAgICAgICAgbGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpblJlYy53aWR0aDtcclxuICAgICAgfSBlbHNlIGlmIChfcnRsID09PSB0cnVlICYmIF9sZWZ0IC0gY29udGFpblJlYy53aWR0aCA8IDApIHtcclxuICAgICAgICBsZWZ0ID0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodG9wICsgY29udGFpblJlYy5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcclxuICAgICAgICB0b3AgPSBfdG9wIC0gY29udGFpblJlYy5oZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcclxuXHJcbiAgICB9LCA1KTtcclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBoYW5kbGVDbGlja0l0ZW0oaXRlbTogQVhNZW51SXRlbSkge1xyXG4gICAgaWYgKCFpdGVtLmRpc2FibGUgfHwgaXRlbS5kaXNhYmxlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8IS0tIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgW2NsYXNzLmRpdmlkZXJdPVwiaXRlbS5kaXZpZGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5pY29ufX1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L3VsPiAtLT5cclxuXHJcbjx1bCAjY29udGV4IGNsYXNzPVwiYXggY29udGV4dC1tZW51IHt7c2l6ZX19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcclxuICAgIFtuZ0NsYXNzXT1cInsnYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fZmFzdGVyIGFuaW1hdGVfX2ZhZGVJbic6IHNob3d9XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW1zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuPC91bD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlQ29udGV4dE1lbnUgbGV0LWl0ZW1zPlxyXG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiIFtjbGFzcy5kaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiIChjbGljayk9XCJoYW5kbGVDbGlja0l0ZW0oaXRlbSlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uc3RhcnRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1sZWZ0IGF4LW1lbnUtaXRlbS1kcm9wLWljb25cIiAqbmdJZj1cIml0ZW0uaXRlbXM/Lmxlbmd0aCA+IDBcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiYXggY29udGV4dC1tZW51IGNoaWxkXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVDb250ZXh0TWVudTsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbS5pdGVtcyB9XCI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2xpPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
@@ -0,0 +1,146 @@
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, ComponentFactoryResolver, Injector, ViewContainerRef } from '@angular/core';
|
2
|
+
import { AXBaseEvent } from '../base/events.class';
|
3
|
+
import { AXContextMenuComponent } from './context-menu.component';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class AXContextMenuItemClickEvent extends AXBaseEvent {
|
6
|
+
dataItem;
|
7
|
+
menuItem;
|
8
|
+
}
|
9
|
+
export class AXContextMenuDirective {
|
10
|
+
ref;
|
11
|
+
factoryResolver;
|
12
|
+
viewContainerRef;
|
13
|
+
injector;
|
14
|
+
contextMenu;
|
15
|
+
contextDataItem;
|
16
|
+
contextMenuItems;
|
17
|
+
onContextMenuItemClick = new EventEmitter();
|
18
|
+
rtl = false;
|
19
|
+
internalItems = [];
|
20
|
+
clickSubscribe;
|
21
|
+
closeSubscribe;
|
22
|
+
onContextMenu(e) {
|
23
|
+
this.getMenuItems().then(items => {
|
24
|
+
e.stopPropagation();
|
25
|
+
e.preventDefault();
|
26
|
+
this.createContextMenu();
|
27
|
+
this.contextMenu.items = items;
|
28
|
+
this.contextMenu.open(e.x, e.y, this.rtl);
|
29
|
+
});
|
30
|
+
}
|
31
|
+
constructor(ref, factoryResolver, viewContainerRef, injector) {
|
32
|
+
this.ref = ref;
|
33
|
+
this.factoryResolver = factoryResolver;
|
34
|
+
this.viewContainerRef = viewContainerRef;
|
35
|
+
this.injector = injector;
|
36
|
+
}
|
37
|
+
ngOnInit() {
|
38
|
+
if (this.rtl == null) {
|
39
|
+
this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
|
40
|
+
}
|
41
|
+
}
|
42
|
+
createContextMenu() {
|
43
|
+
const wrapper = document.createElement('div');
|
44
|
+
wrapper.classList.add('ax-overlay-wrapper');
|
45
|
+
wrapper.addEventListener('click', this.wrapperClick.bind(this));
|
46
|
+
wrapper.addEventListener('contextmenu', this.wrapperRClick.bind(this));
|
47
|
+
//
|
48
|
+
document.body.appendChild(wrapper);
|
49
|
+
const factory = this.factoryResolver.resolveComponentFactory(AXContextMenuComponent);
|
50
|
+
const componentRef = this.viewContainerRef.createComponent(factory);
|
51
|
+
this.contextMenu = componentRef.instance;
|
52
|
+
wrapper.appendChild(componentRef.location.nativeElement);
|
53
|
+
//
|
54
|
+
this.clearComponentSubscriptions();
|
55
|
+
this.createComponentSubscriptions();
|
56
|
+
}
|
57
|
+
wrapperClick(e) {
|
58
|
+
this.remove();
|
59
|
+
}
|
60
|
+
wrapperRClick(e) {
|
61
|
+
if (document.elementsFromPoint(e.clientX, e.clientY).includes(this.ref.nativeElement)) {
|
62
|
+
e.stopPropagation();
|
63
|
+
e.preventDefault();
|
64
|
+
this.contextMenu.open(e.x, e.y, this.rtl);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
e.preventDefault();
|
68
|
+
this.remove();
|
69
|
+
}
|
70
|
+
}
|
71
|
+
clearComponentSubscriptions() {
|
72
|
+
if (this.clickSubscribe) {
|
73
|
+
this.clickSubscribe.unsubscribe();
|
74
|
+
this.clickSubscribe = undefined;
|
75
|
+
}
|
76
|
+
if (this.closeSubscribe) {
|
77
|
+
this.closeSubscribe.unsubscribe();
|
78
|
+
this.closeSubscribe = undefined;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
createComponentSubscriptions() {
|
82
|
+
this.clickSubscribe = this.contextMenu.onItemClick.subscribe(c => {
|
83
|
+
this.remove();
|
84
|
+
this.onContextMenuItemClick.emit({
|
85
|
+
component: this,
|
86
|
+
dataItem: this.contextDataItem,
|
87
|
+
htmlElement: this.ref.nativeElement,
|
88
|
+
menuItem: c
|
89
|
+
});
|
90
|
+
});
|
91
|
+
this.closeSubscribe = this.contextMenu.onClosed.subscribe(c => {
|
92
|
+
this.clearComponentSubscriptions();
|
93
|
+
});
|
94
|
+
}
|
95
|
+
remove() {
|
96
|
+
this.viewContainerRef.clear();
|
97
|
+
this.clearComponentSubscriptions();
|
98
|
+
document.querySelector('.ax-overlay-wrapper')?.remove();
|
99
|
+
}
|
100
|
+
getMenuItems() {
|
101
|
+
return new Promise((resolve, reject) => {
|
102
|
+
if (typeof (this.contextMenuItems) === 'function') {
|
103
|
+
const val = this.contextMenuItems(this.contextDataItem);
|
104
|
+
if (val instanceof Promise) {
|
105
|
+
val.then(_data => {
|
106
|
+
resolve(_data);
|
107
|
+
});
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
resolve(val);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
else if (Array.isArray(this.contextMenuItems)) {
|
114
|
+
resolve(this.contextMenuItems);
|
115
|
+
}
|
116
|
+
else {
|
117
|
+
resolve([]);
|
118
|
+
}
|
119
|
+
});
|
120
|
+
}
|
121
|
+
ngOnDestroy() {
|
122
|
+
this.clearComponentSubscriptions();
|
123
|
+
}
|
124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
125
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: AXContextMenuDirective, selector: "[axContextMenu]", inputs: { contextMenu: "contextMenu", contextDataItem: "contextDataItem", contextMenuItems: "contextMenuItems", rtl: "rtl" }, outputs: { onContextMenuItemClick: "onContextMenuItemClick" }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, ngImport: i0 });
|
126
|
+
}
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuDirective, decorators: [{
|
128
|
+
type: Directive,
|
129
|
+
args: [{
|
130
|
+
selector: '[axContextMenu]'
|
131
|
+
}]
|
132
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { contextMenu: [{
|
133
|
+
type: Input
|
134
|
+
}], contextDataItem: [{
|
135
|
+
type: Input
|
136
|
+
}], contextMenuItems: [{
|
137
|
+
type: Input
|
138
|
+
}], onContextMenuItemClick: [{
|
139
|
+
type: Output
|
140
|
+
}], rtl: [{
|
141
|
+
type: Input
|
142
|
+
}], onContextMenu: [{
|
143
|
+
type: HostListener,
|
144
|
+
args: ['contextmenu', ['$event']]
|
145
|
+
}] } });
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkosT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUtsRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQUMxRCxRQUFRLENBQU87SUFDZixRQUFRLENBQWE7Q0FDdEI7QUFLRCxNQUFNLE9BQU8sc0JBQXNCO0lBdUN2QjtJQUNBO0lBQ0E7SUFDQTtJQXhDVixXQUFXLENBQXlCO0lBR3BDLGVBQWUsQ0FBTTtJQUdyQixnQkFBZ0IsQ0FBc0U7SUFHdEYsc0JBQXNCLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO0lBR3BILEdBQUcsR0FBWSxLQUFLLENBQUM7SUFFckIsYUFBYSxHQUFpQixFQUFFLENBQUM7SUFFekIsY0FBYyxDQUFlO0lBQzdCLGNBQWMsQ0FBZTtJQUdyQyxhQUFhLENBQUMsQ0FBYTtRQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxD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QztnQkFDeEQsSUFBSSxHQUFHLFlBQVksT0FBTyxFQUFFO29CQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDaEM7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQzt1R0E3SVUsc0JBQXNCOzJGQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OExBR0MsV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBSVAsR0FBRztzQkFERixLQUFLO2dCQVNOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiA9IChpdGVtOiBhbnkpID0+IFByb21pc2U8QVhNZW51SXRlbVtdPjtcclxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUZ1bmN0aW9uID0gKGl0ZW06IGFueSkgPT4gQVhNZW51SXRlbVtdO1xyXG5leHBvcnQgY2xhc3MgQVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50IGV4dGVuZHMgQVhCYXNlRXZlbnQge1xyXG4gIGRhdGFJdGVtPzogYW55O1xyXG4gIG1lbnVJdGVtOiBBWE1lbnVJdGVtO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1theENvbnRleHRNZW51XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dE1lbnU6IEFYQ29udGV4dE1lbnVDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dERhdGFJdGVtOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dE1lbnVJdGVtczogQVhNZW51SXRlbVtdIHwgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiB8IEFYQ29udGV4dE1lbnVGdW5jdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25Db250ZXh0TWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBydGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaW50ZXJuYWxJdGVtczogQVhNZW51SXRlbVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgY2xpY2tTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGNsb3NlU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcclxuICBvbkNvbnRleHRNZW51KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZ2V0TWVudUl0ZW1zKCkudGhlbihpdGVtcyA9PiB7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jcmVhdGVDb250ZXh0TWVudSgpO1xyXG4gICAgICB0aGlzLmNvbnRleHRNZW51Lml0ZW1zID0gaXRlbXM7XHJcblxyXG5cclxuICAgICAgdGhpcy5jb250ZXh0TWVudS5vcGVuKGUueCwgZS55LCB0aGlzLnJ0bCk7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29udGV4dE1lbnUoKTogdm9pZCB7XHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2F4LW92ZXJsYXktd3JhcHBlcicpO1xyXG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMud3JhcHBlckNsaWNrLmJpbmQodGhpcykpO1xyXG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMud3JhcHBlclJDbGljay5iaW5kKHRoaXMpKTtcclxuICAgIC8vXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEFYQ29udGV4dE1lbnVDb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIHRoaXMuY29udGV4dE1lbnUgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIC8vXHJcbiAgICB0aGlzLmNsZWFyQ29tcG9uZW50U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRTdWJzY3JpcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICB3cmFwcGVyQ2xpY2soZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHdyYXBwZXJSQ2xpY2soZTogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGUuY2xpZW50WCwgZS5jbGllbnRZKS5pbmNsdWRlcyh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KSkge1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHRNZW51Lm9wZW4oZS54LCBlLnksIHRoaXMucnRsKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgY2xlYXJDb21wb25lbnRTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMuY2xpY2tTdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5jbGlja1N1YnNjcmliZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNsaWNrU3Vic2NyaWJlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2xvc2VTdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5jbG9zZVN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNsb3NlU3Vic2NyaWJlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgdGhpcy5jbGlja1N1YnNjcmliZSA9IHRoaXMuY29udGV4dE1lbnUub25JdGVtQ2xpY2suc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLm9uQ29udGV4dE1lbnVJdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGRhdGFJdGVtOiB0aGlzLmNvbnRleHREYXRhSXRlbSxcclxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICBtZW51SXRlbTogY1xyXG4gICAgICB9KTtcclxuICAgIH0pIGFzIGFueTtcclxuICAgIHRoaXMuY2xvc2VTdWJzY3JpYmUgPSB0aGlzLmNvbnRleHRNZW51Lm9uQ2xvc2VkLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIH0pIGFzIGFueTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlKCkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB0aGlzLmNsZWFyQ29tcG9uZW50U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF4LW92ZXJsYXktd3JhcHBlcicpPy5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWVudUl0ZW1zKCk6IFByb21pc2U8QVhNZW51SXRlbVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QVhNZW51SXRlbVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgKHRoaXMuY29udGV4dE1lbnVJdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmNvbnRleHRNZW51SXRlbXModGhpcy5jb250ZXh0RGF0YUl0ZW0pO1xyXG4gICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICB2YWwudGhlbihfZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoX2RhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc29sdmUodmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmNvbnRleHRNZW51SXRlbXMpKSB7XHJcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmNvbnRleHRNZW51SXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUoW10pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { AXContextMenuComponent } from './context-menu.component';
|
4
|
+
import { AXContextMenuDirective } from './context-menu.directive';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class AXContextMenuModule {
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, declarations: [AXContextMenuComponent, AXContextMenuDirective], imports: [CommonModule], exports: [AXContextMenuComponent, AXContextMenuDirective] });
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, imports: [CommonModule] });
|
10
|
+
}
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, decorators: [{
|
12
|
+
type: NgModule,
|
13
|
+
args: [{
|
14
|
+
declarations: [AXContextMenuComponent, AXContextMenuDirective],
|
15
|
+
imports: [CommonModule],
|
16
|
+
exports: [AXContextMenuComponent, AXContextMenuDirective],
|
17
|
+
providers: [],
|
18
|
+
}]
|
19
|
+
}] });
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVNsRSxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFMYixzQkFBc0IsRUFBRSxzQkFBc0IsYUFDbkQsWUFBWSxhQUNaLHNCQUFzQixFQUFFLHNCQUFzQjt3R0FHL0MsbUJBQW1CLFlBSmxCLFlBQVk7OzJGQUliLG1CQUFtQjtrQkFOL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDOUQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDekQsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWENvbnRleHRNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhDb250ZXh0TWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudURpcmVjdGl2ZV0sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICAgIGV4cG9ydHM6IFtBWENvbnRleHRNZW51Q29tcG9uZW50LCBBWENvbnRleHRNZW51RGlyZWN0aXZlXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51TW9kdWxlIHtcclxuXHJcbn0iXX0=
|
@@ -0,0 +1,140 @@
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';
|
2
|
+
import { AXFilterColumnComponent } from '../filter.class';
|
3
|
+
import { AXDateTime } from '@acorex/core';
|
4
|
+
import { AXSelectionListComponent } from '../../selection-list/selection-list.component';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "../../date-picker/date-picker.component";
|
7
|
+
import * as i2 from "../../selection-list/selection-list.component";
|
8
|
+
export class AXFilterColumnDateComponent extends AXFilterColumnComponent {
|
9
|
+
cdr;
|
10
|
+
selection;
|
11
|
+
items = [
|
12
|
+
{
|
13
|
+
text: 'Today',
|
14
|
+
value: 'today'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
text: 'This Week',
|
18
|
+
value: 'this-week'
|
19
|
+
},
|
20
|
+
{
|
21
|
+
text: 'This Month',
|
22
|
+
value: 'this-month'
|
23
|
+
},
|
24
|
+
{
|
25
|
+
text: 'This Year',
|
26
|
+
value: 'this-year'
|
27
|
+
},
|
28
|
+
{
|
29
|
+
text: 'Specific',
|
30
|
+
value: 'specific'
|
31
|
+
},
|
32
|
+
{
|
33
|
+
text: 'Range',
|
34
|
+
value: 'range'
|
35
|
+
}
|
36
|
+
];
|
37
|
+
fromDate = new AXDateTime();
|
38
|
+
toDate = new AXDateTime();
|
39
|
+
selectedItem = null;
|
40
|
+
showCustom = false;
|
41
|
+
showSpecific = false;
|
42
|
+
constructor(cdr) {
|
43
|
+
super(cdr);
|
44
|
+
this.cdr = cdr;
|
45
|
+
}
|
46
|
+
ngAfterViewInit() {
|
47
|
+
this.selection.selectedItems = [this.items[0]];
|
48
|
+
}
|
49
|
+
dateChange(e) {
|
50
|
+
this.valueChange.emit();
|
51
|
+
}
|
52
|
+
onSelectedChanged(items) {
|
53
|
+
this.selectedItem = items[0];
|
54
|
+
this.showCustom = this.selectedItem && this.selectedItem.value == 'range';
|
55
|
+
this.showSpecific = this.selectedItem && this.selectedItem.value == 'specific';
|
56
|
+
this.cdr.detectChanges();
|
57
|
+
this.valueChange.emit();
|
58
|
+
}
|
59
|
+
get condition() {
|
60
|
+
let today = new AXDateTime();
|
61
|
+
switch (this.selectedItem.value) {
|
62
|
+
case 'today':
|
63
|
+
this.fromDate = this.toDate = today;
|
64
|
+
return {
|
65
|
+
condition: 'equal',
|
66
|
+
field: this.field,
|
67
|
+
dataType: 'date',
|
68
|
+
value: this.fromDate.toISOString()
|
69
|
+
};
|
70
|
+
case 'specific':
|
71
|
+
return {
|
72
|
+
condition: 'equal',
|
73
|
+
field: this.field,
|
74
|
+
dataType: 'date',
|
75
|
+
value: this.fromDate.toISOString()
|
76
|
+
};
|
77
|
+
case 'this-week':
|
78
|
+
this.toDate = today.endOf('week');
|
79
|
+
this.fromDate = today.startOf('week');
|
80
|
+
break;
|
81
|
+
case 'this-month':
|
82
|
+
this.toDate = today.endOf('month');
|
83
|
+
this.fromDate = today.startOf('month');
|
84
|
+
break;
|
85
|
+
case 'this-year':
|
86
|
+
this.toDate = today.endOf('year');
|
87
|
+
this.fromDate = today.startOf('year');
|
88
|
+
break;
|
89
|
+
}
|
90
|
+
return {
|
91
|
+
condition: 'between',
|
92
|
+
field: this.field,
|
93
|
+
dataType: 'date',
|
94
|
+
value: [this.fromDate.toISOString(), this.toDate.toISOString()]
|
95
|
+
};
|
96
|
+
}
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnDateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnDateComponent, selector: "ax-filter-column-date", providers: [
|
99
|
+
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }
|
100
|
+
], viewQueries: [{ propertyName: "selection", first: true, predicate: AXSelectionListComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
101
|
+
<div class="ax-filter-section">
|
102
|
+
<ax-selection-list [items]="items" mode="single" direction="vertical" (selectedItemsChange)="onSelectedChanged($event)">
|
103
|
+
</ax-selection-list>
|
104
|
+
</div>
|
105
|
+
<div class="ax-filter-section-value" [hidden]="!showCustom">
|
106
|
+
<ax-date-picker label="From" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
107
|
+
<ax-date-picker label="To" [(value)]="toDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
108
|
+
</div>
|
109
|
+
<div class="ax-filter-section-value" [hidden]="!showSpecific">
|
110
|
+
<ax-date-picker label="Date" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
111
|
+
</div>
|
112
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }, { kind: "component", type: i2.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
113
|
+
}
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnDateComponent, decorators: [{
|
115
|
+
type: Component,
|
116
|
+
args: [{
|
117
|
+
selector: 'ax-filter-column-date',
|
118
|
+
template: `
|
119
|
+
<div class="ax-filter-section">
|
120
|
+
<ax-selection-list [items]="items" mode="single" direction="vertical" (selectedItemsChange)="onSelectedChanged($event)">
|
121
|
+
</ax-selection-list>
|
122
|
+
</div>
|
123
|
+
<div class="ax-filter-section-value" [hidden]="!showCustom">
|
124
|
+
<ax-date-picker label="From" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
125
|
+
<ax-date-picker label="To" [(value)]="toDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
126
|
+
</div>
|
127
|
+
<div class="ax-filter-section-value" [hidden]="!showSpecific">
|
128
|
+
<ax-date-picker label="Date" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
|
129
|
+
</div>
|
130
|
+
`,
|
131
|
+
providers: [
|
132
|
+
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }
|
133
|
+
],
|
134
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
135
|
+
}]
|
136
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selection: [{
|
137
|
+
type: ViewChild,
|
138
|
+
args: [AXSelectionListComponent, { static: true }]
|
139
|
+
}] } });
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2NvbHVtbnMvZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFzQnpGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFzQzlDO0lBckNpQyxTQUFTLENBQTJCO0lBRTNGLEtBQUssR0FBUTtRQUNUO1lBQ0ksSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsT0FBTztTQUNqQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSxZQUFZO1NBQ3RCO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztTQUNyQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLFVBQVU7U0FDcEI7UUFDRDtZQUNJLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLE9BQU87U0FDakI7S0FDSixDQUFDO0lBRUYsUUFBUSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFDeEMsTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFFdEMsWUFBWSxHQUFRLElB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MkJBQTJCLGdEQUx6QjtZQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtTQUNqRixxRUFJVSx3QkFBd0IscUZBbkJ6Qjs7Ozs7Ozs7Ozs7O0tBWVQ7OzJGQU1RLDJCQUEyQjtrQkFwQnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7S0FZVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyw2QkFBNkIsRUFBRTtxQkFDakY7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO3dHQUUwRCxTQUFTO3NCQUEvRCxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRmlsdGVyQ29uZGl0aW9uLCBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3Rpb24tbGlzdC9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LWZpbHRlci1jb2x1bW4tZGF0ZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICA8YXgtc2VsZWN0aW9uLWxpc3QgW2l0ZW1zXT1cIml0ZW1zXCIgbW9kZT1cInNpbmdsZVwiIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9heC1zZWxlY3Rpb24tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uLXZhbHVlXCIgW2hpZGRlbl09XCIhc2hvd0N1c3RvbVwiPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkZyb21cIiBbKHZhbHVlKV09XCJmcm9tRGF0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L2F4LWRhdGUtcGlja2VyPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIlRvXCIgWyh2YWx1ZSldPVwidG9EYXRlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiPjwvYXgtZGF0ZS1waWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvbi12YWx1ZVwiIFtoaWRkZW5dPVwiIXNob3dTcGVjaWZpY1wiPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkRhdGVcIiBbKHZhbHVlKV09XCJmcm9tRGF0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L2F4LWRhdGUtcGlja2VyPiAgICAgICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRmlsdGVyQ29sdW1uRGF0ZUNvbXBvbmVudCB9XHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYRmlsdGVyQ29sdW1uRGF0ZUNvbXBvbmVudCBleHRlbmRzIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IHtcclxuICAgIEBWaWV3Q2hpbGQoQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Rpb246IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudDtcclxuXHJcbiAgICBpdGVtczogYW55ID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RvZGF5JyxcclxuICAgICAgICAgICAgdmFsdWU6ICd0b2RheSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RoaXMgV2VlaycsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy13ZWVrJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnVGhpcyBNb250aCcsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy1tb250aCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RoaXMgWWVhcicsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy15ZWFyJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnU3BlY2lmaWMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3NwZWNpZmljJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnUmFuZ2UnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3JhbmdlJ1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgZnJvbURhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpO1xyXG4gICAgdG9EYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKTtcclxuXHJcbiAgICBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7XHJcblxyXG4gICAgc2hvd0N1c3RvbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc2hvd1NwZWNpZmljOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZEl0ZW1zID0gW3RoaXMuaXRlbXNbMF1dO1xyXG4gICAgfVxyXG4gICAgZGF0ZUNoYW5nZShlKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICBvblNlbGVjdGVkQ2hhbmdlZChpdGVtczogYW55W10pIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtc1swXTtcclxuICAgICAgICB0aGlzLnNob3dDdXN0b20gPSB0aGlzLnNlbGVjdGVkSXRlbSAmJiB0aGlzLnNlbGVjdGVkSXRlbS52YWx1ZSA9PSAncmFuZ2UnO1xyXG4gICAgICAgIHRoaXMuc2hvd1NwZWNpZmljID0gdGhpcy5zZWxlY3RlZEl0ZW0gJiYgdGhpcy5zZWxlY3RlZEl0ZW0udmFsdWUgPT0gJ3NwZWNpZmljJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IEFYRGF0ZVRpbWUoKTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRJdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvZGF5JzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSB0aGlzLnRvRGF0ZSA9IHRvZGF5O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZnJvbURhdGUudG9JU09TdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdzcGVjaWZpYyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogJ2VxdWFsJyxcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZyb21EYXRlLnRvSVNPU3RyaW5nKClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAndGhpcy13ZWVrJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudG9EYXRlID0gdG9kYXkuZW5kT2YoJ3dlZWsnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSB0b2RheS5zdGFydE9mKCd3ZWVrJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndGhpcy1tb250aCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvRGF0ZSA9IHRvZGF5LmVuZE9mKCdtb250aCcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21EYXRlID0gdG9kYXkuc3RhcnRPZignbW9udGgnKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd0aGlzLXllYXInOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50b0RhdGUgPSB0b2RheS5lbmRPZigneWVhcicpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21EYXRlID0gdG9kYXkuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246ICdiZXR3ZWVuJyxcclxuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgIHZhbHVlOiBbdGhpcy5mcm9tRGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRvRGF0ZS50b0lTT1N0cmluZygpXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import { Component, ChangeDetectorRef } from '@angular/core';
|
2
|
+
import { AXFilterColumnComponent } from '../filter.class';
|
3
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
4
|
+
import { Observable } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/common";
|
7
|
+
import * as i2 from "@angular/forms";
|
8
|
+
import * as i3 from "../../textbox/textbox.component";
|
9
|
+
export class AXFilterColumnNumberComponent extends AXFilterColumnComponent {
|
10
|
+
cdr;
|
11
|
+
operator = 'equal';
|
12
|
+
operators = [
|
13
|
+
{
|
14
|
+
title: 'is',
|
15
|
+
value: 'equal'
|
16
|
+
},
|
17
|
+
{
|
18
|
+
title: `isn't`,
|
19
|
+
value: 'not-equal'
|
20
|
+
},
|
21
|
+
{
|
22
|
+
title: 'less than',
|
23
|
+
value: 'less-than'
|
24
|
+
},
|
25
|
+
{
|
26
|
+
title: 'less than or equal',
|
27
|
+
value: 'less-than-equal'
|
28
|
+
},
|
29
|
+
{
|
30
|
+
title: 'greater than',
|
31
|
+
value: 'greater-than'
|
32
|
+
},
|
33
|
+
{
|
34
|
+
title: 'greater than or equal',
|
35
|
+
value: 'greater-than-equal'
|
36
|
+
},
|
37
|
+
{
|
38
|
+
title: 'is empty',
|
39
|
+
value: 'is-empty'
|
40
|
+
},
|
41
|
+
{
|
42
|
+
title: `isn't empty`,
|
43
|
+
value: 'is-not-empty'
|
44
|
+
}
|
45
|
+
];
|
46
|
+
constructor(cdr) {
|
47
|
+
super(cdr);
|
48
|
+
this.cdr = cdr;
|
49
|
+
}
|
50
|
+
searchChangeObserver;
|
51
|
+
onOperatorChange(e) {
|
52
|
+
this.valueChange.emit();
|
53
|
+
}
|
54
|
+
onTextChange(e) {
|
55
|
+
// TODO: Check this method work correctly
|
56
|
+
if (!this.searchChangeObserver) {
|
57
|
+
return new Observable(observer => {
|
58
|
+
this.searchChangeObserver = observer;
|
59
|
+
})
|
60
|
+
.pipe(debounceTime(500))
|
61
|
+
.pipe(distinctUntilChanged())
|
62
|
+
.subscribe(c => {
|
63
|
+
this.valueChange.emit();
|
64
|
+
});
|
65
|
+
}
|
66
|
+
this.searchChangeObserver.next(e);
|
67
|
+
}
|
68
|
+
get condition() {
|
69
|
+
return {
|
70
|
+
condition: this.operator,
|
71
|
+
field: this.field,
|
72
|
+
dataType: 'number',
|
73
|
+
value: this.value
|
74
|
+
};
|
75
|
+
}
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnNumberComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnNumberComponent, selector: "ax-filter-column-number", providers: [
|
78
|
+
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }
|
79
|
+
], usesInheritance: true, ngImport: i0, template: `
|
80
|
+
<div class="ax-filter-section">
|
81
|
+
<div>
|
82
|
+
<select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
|
83
|
+
<option *ngFor="let o of operators" value="{{o.value}}">
|
84
|
+
{{o.title}}
|
85
|
+
</option>
|
86
|
+
</select>
|
87
|
+
</div>
|
88
|
+
<div>
|
89
|
+
<ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
|
90
|
+
</ax-text-box>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
|
94
|
+
}
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnNumberComponent, decorators: [{
|
96
|
+
type: Component,
|
97
|
+
args: [{
|
98
|
+
selector: 'ax-filter-column-number',
|
99
|
+
template: `
|
100
|
+
<div class="ax-filter-section">
|
101
|
+
<div>
|
102
|
+
<select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
|
103
|
+
<option *ngFor="let o of operators" value="{{o.value}}">
|
104
|
+
{{o.title}}
|
105
|
+
</option>
|
106
|
+
</select>
|
107
|
+
</div>
|
108
|
+
<div>
|
109
|
+
<ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
|
110
|
+
</ax-text-box>
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
`,
|
114
|
+
providers: [
|
115
|
+
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }
|
116
|
+
]
|
117
|
+
}]
|
118
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvY29sdW1ucy9maWx0ZXItY29sdW1uLW51bWJlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBd0JsQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBc0NoRDtJQXBDdEIsUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUUzQixTQUFTLEdBQVU7UUFDZjtZQUNJLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLE9BQU87U0FDakI7UUFDRDtZQUNJLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLEtBQUssRUFBRSxXQUFXO1lBQ2xCLEtBQUssRUFBRSxXQUFXO1NBQ3JCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLEtBQUssRUFBRSxpQkFBaUI7U0FDM0I7UUFDRDtZQUNJLEtBQUssRUFBRSxjQUFjO1lBQ3JCLEtBQUssRUFBRSxjQUFjO1NBQ3hCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLEtBQUssRUFBRSxvQkFBb0I7U0FDOUI7UUFDRDtZQUNJLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1NBQ3BCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsYUFBYTtZQUNwQixLQUFLLEVBQUUsY0FBYztTQUN4QjtLQUNKLENBQUM7SUFDRixZQUFzQixHQUFzQjtRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBQ08sb0JBQW9CLENBQU07SUFDbEMsZ0JBQWdCLENBQUMsQ0FBQztRQUVkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFNUIsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFDO1FBQ1YseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztZQUN6QyxDQUFDLENBQUM7aUJBQ0csSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQzVCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPO1lBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7dUdBckVRLDZCQUE2QjsyRkFBN0IsNkJBQTZCLGtEQUozQjtZQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRTtTQUNuRixpREFqQlM7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzJGQUtRLDZCQUE2QjtrQkFyQnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztLQWNUO29CQUNELFNBQVMsRUFBRTt3QkFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLCtCQUErQixFQUFFO3FCQUNuRjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtZmlsdGVyLWNvbHVtbi1udW1iZXInLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvblwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8c2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiICBbKG5nTW9kZWwpXT1cIm9wZXJhdG9yXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3BlcmF0b3JzXCIgdmFsdWU9XCJ7e28udmFsdWV9fVwiPlxyXG4gICAgICAgICAgICAgICAge3tvLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGF4LXRleHQtYm94IHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlXCIgKHRleHRDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICpuZ0lmPVwib3BlcmF0b3IhPSdpcy1ub3QtZW1wdHknICYmIG9wZXJhdG9yIT0naXMtZW1wdHknXCI+XHJcbiAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5OdW1iZXJDb21wb25lbnQgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJDb2x1bW5OdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG4gICAgb3BlcmF0b3I6IHN0cmluZyA9ICdlcXVhbCc7XHJcblxyXG4gICAgb3BlcmF0b3JzOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnbGVzcyB0aGFuJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdsZXNzLXRoYW4nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnbGVzcyB0aGFuIG9yIGVxdWFsJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdsZXNzLXRoYW4tZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZ3JlYXRlciB0aGFuJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdncmVhdGVyLXRoYW4nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZ3JlYXRlciB0aGFuIG9yIGVxdWFsJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdncmVhdGVyLXRoYW4tZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMgZW1wdHknLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2lzLWVtcHR5J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0IGVtcHR5YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdpcy1ub3QtZW1wdHknXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcclxuICAgIG9uT3BlcmF0b3JDaGFuZ2UoZSkge1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuXHJcbiAgICB9XHJcbiAgICBvblRleHRDaGFuZ2UoZSkge1xyXG4gICAgICAgIC8vIFRPRE86IENoZWNrIHRoaXMgbWV0aG9kIHdvcmsgY29ycmVjdGx5XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyID0gb2JzZXJ2ZXI7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dChlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZGl0aW9uKCk6IEFYRmlsdGVyQ29uZGl0aW9uIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMub3BlcmF0b3IsXHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|