@acorex/components 6.5.90 → 6.5.91
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 +2 -6
- package/acorex-components.d.ts +5 -0
- package/esm2020/acorex-components.mjs +5 -0
- package/esm2020/lib/accordion/accordion.component.mjs +44 -0
- package/esm2020/lib/accordion/accordion.module.mjs +20 -0
- package/esm2020/lib/base/base-page.class.mjs +94 -0
- package/esm2020/lib/base/components.class.mjs +17 -0
- package/esm2020/lib/base/element.class.mjs +294 -0
- package/esm2020/lib/base/events.class.mjs +11 -0
- package/esm2020/lib/button/button.component.mjs +71 -0
- package/esm2020/lib/button/button.module.mjs +21 -0
- package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -0
- package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
- package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -0
- package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -0
- package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -0
- package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -0
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -0
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
- package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -0
- package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -0
- package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -0
- package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
- package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -0
- package/esm2020/lib/checkbox/checkbox.component.mjs +98 -0
- package/esm2020/lib/checkbox/checkbox.module.mjs +20 -0
- package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -0
- package/esm2020/lib/color-picker/color-picker.component.mjs +82 -0
- package/esm2020/lib/color-picker/color-picker.module.mjs +24 -0
- package/esm2020/lib/context-menu/context-menu.component.mjs +65 -0
- package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -0
- package/esm2020/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -0
- package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -0
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -0
- package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -0
- package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -0
- package/esm2020/lib/data-filter/filter.class.mjs +44 -0
- package/esm2020/lib/data-filter/filter.module.mjs +90 -0
- package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -0
- package/esm2020/lib/data-list/core/data-list.component.mjs +40 -0
- package/esm2020/lib/data-list/list/list.component.mjs +124 -0
- package/esm2020/lib/data-list/list/list.module.mjs +22 -0
- package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -0
- package/esm2020/lib/data-source/datasource.component.mjs +47 -0
- package/esm2020/lib/data-source/datasource.module.mjs +18 -0
- package/esm2020/lib/data-source/read-param.mjs +5 -0
- package/esm2020/lib/date-picker/date-picker.component.mjs +702 -0
- package/esm2020/lib/date-picker/date-picker.module.mjs +25 -0
- package/esm2020/lib/dialog/dialog.component.mjs +24 -0
- package/esm2020/lib/dialog/dialog.module.mjs +21 -0
- package/esm2020/lib/dialog/dialog.service.mjs +150 -0
- package/esm2020/lib/drawer/content.component.mjs +18 -0
- package/esm2020/lib/drawer/drawer-container.component.mjs +36 -0
- package/esm2020/lib/drawer/drawer.component.mjs +142 -0
- package/esm2020/lib/drawer/drawer.module.mjs +23 -0
- package/esm2020/lib/dropdown/dropdown.component.mjs +176 -0
- package/esm2020/lib/dropdown/dropdown.module.mjs +26 -0
- package/esm2020/lib/fieldset/fieldset.component.mjs +59 -0
- package/esm2020/lib/fieldset/fieldset.module.mjs +19 -0
- package/esm2020/lib/form-group/form-group.component.mjs +34 -0
- package/esm2020/lib/form-group/form-group.module.mjs +21 -0
- package/esm2020/lib/label/label.component.mjs +19 -0
- package/esm2020/lib/label/label.module.mjs +21 -0
- package/esm2020/lib/loading/loading-indicator.component.mjs +17 -0
- package/esm2020/lib/loading/loading-panel.component.mjs +44 -0
- package/esm2020/lib/loading/loading.module.mjs +21 -0
- package/{esm2022 → esm2020}/lib/loading/loading.service.mjs +45 -47
- package/esm2020/lib/menu/menu-item.component.mjs +47 -0
- package/esm2020/lib/menu/menu.component.mjs +86 -0
- package/esm2020/lib/menu/menu.module.mjs +22 -0
- package/esm2020/lib/menu/menu2.component.mjs +96 -0
- package/esm2020/lib/number-box/number-box.component.mjs +622 -0
- package/esm2020/lib/number-box/number-box.module.mjs +21 -0
- package/esm2020/lib/page/content.component.mjs +32 -0
- package/esm2020/lib/page/footer.component.mjs +19 -0
- package/esm2020/lib/page/page.component.mjs +53 -0
- package/esm2020/lib/page/page.module.mjs +22 -0
- package/esm2020/lib/panel-box/panel-box.component.mjs +88 -0
- package/esm2020/lib/panel-box/panel-box.module.mjs +19 -0
- package/esm2020/lib/password-box/password-box.component.mjs +31 -0
- package/esm2020/lib/password-box/password-box.module.mjs +23 -0
- package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -0
- package/esm2020/lib/popover/overlay.service.mjs +91 -0
- package/esm2020/lib/popover/popover.component.mjs +133 -0
- package/esm2020/lib/popover/popover.module.mjs +19 -0
- package/esm2020/lib/popup/popup.component.mjs +147 -0
- package/esm2020/lib/popup/popup.module.mjs +25 -0
- package/esm2020/lib/popup/popup.service.mjs +93 -0
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -0
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -0
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -0
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
- package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -0
- package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -0
- package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -0
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -0
- package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -0
- package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -0
- package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
- package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -0
- package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -0
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -0
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -0
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -0
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
- package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -0
- package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -0
- package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -0
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
- package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -0
- package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +157 -0
- package/esm2020/lib/property-editor/property-editor.class.mjs +102 -0
- package/esm2020/lib/property-editor/property-editor.module.mjs +196 -0
- package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -0
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +172 -0
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +399 -0
- package/esm2020/lib/query-builder/query-builder.class.mjs +20 -0
- package/esm2020/lib/query-builder/query-builder.component.mjs +87 -0
- package/esm2020/lib/query-builder/query-builder.module.mjs +62 -0
- package/esm2020/lib/query-builder/query-builder.service.mjs +197 -0
- package/esm2020/lib/search-bar/search-bar.component.mjs +286 -0
- package/esm2020/lib/search-bar/search-bar.module.mjs +63 -0
- package/esm2020/lib/searchbox/searchbox.component.mjs +81 -0
- package/esm2020/lib/searchbox/searchbox.module.mjs +24 -0
- package/esm2020/lib/selectbox/selectbox.component.mjs +961 -0
- package/esm2020/lib/selectbox/selectbox.module.mjs +44 -0
- package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -0
- package/esm2020/lib/selection-list/selection-list.component.mjs +108 -0
- package/esm2020/lib/selection-list/selection-list.module.mjs +21 -0
- package/esm2020/lib/switch/switch.component.mjs +51 -0
- package/esm2020/lib/switch/switch.module.mjs +20 -0
- package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -0
- package/esm2020/lib/tab-page/tab-page-host.component.mjs +114 -0
- package/esm2020/lib/tab-page/tab-page.module.mjs +21 -0
- package/esm2020/lib/tab-page/tab-page.service.mjs +160 -0
- package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -0
- package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -0
- package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -0
- package/esm2020/lib/tab-view/tab-view.component.mjs +105 -0
- package/esm2020/lib/tab-view/tab-view.module.mjs +21 -0
- package/esm2020/lib/tab-view/tab.component.mjs +30 -0
- package/esm2020/lib/textarea/textarea.component.mjs +26 -0
- package/esm2020/lib/textarea/textarea.module.mjs +21 -0
- package/esm2020/lib/textbox/textbox.component.mjs +39 -0
- package/esm2020/lib/textbox/textbox.module.mjs +24 -0
- package/esm2020/lib/time-picker/time-picker.component.mjs +943 -0
- package/esm2020/lib/time-picker/time-picker.module.mjs +22 -0
- package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -0
- package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
- package/esm2020/lib/toast/toast.module.mjs +21 -0
- package/esm2020/lib/toast/toast.service.mjs +44 -0
- package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -0
- package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -0
- package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -0
- package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -0
- package/esm2020/lib/toolbar/toolbar-item.mjs +6 -0
- package/esm2020/lib/toolbar/toolbar.component.mjs +13 -0
- package/esm2020/lib/toolbar/toolbar.module.mjs +40 -0
- package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -0
- package/esm2020/lib/tooltip/tooltip.module.mjs +19 -0
- package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -0
- package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -0
- package/esm2020/lib/tree-view/tree-view.component.mjs +775 -0
- package/esm2020/lib/tree-view/tree-view.module.mjs +22 -0
- package/esm2020/lib/upload-file/upload-file.component.mjs +208 -0
- package/esm2020/lib/upload-file/upload-file.events.mjs +2 -0
- package/esm2020/lib/upload-file/upload-file.module.mjs +24 -0
- package/esm2020/lib/validation/validation-form.component.mjs +65 -0
- package/esm2020/lib/validation/validation-rule.widget.mjs +111 -0
- package/esm2020/lib/validation/validation.class.mjs +2 -0
- package/esm2020/lib/validation/validation.component.mjs +89 -0
- package/esm2020/lib/validation/validation.module.mjs +34 -0
- package/esm2020/public-api.mjs +158 -0
- package/fesm2015/acorex-components.mjs +16013 -0
- package/fesm2015/acorex-components.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/acorex-components.mjs +15212 -16111
- package/fesm2020/acorex-components.mjs.map +1 -0
- package/lib/accordion/accordion.component.d.ts +13 -13
- package/lib/accordion/accordion.module.d.ts +9 -9
- package/lib/base/base-page.class.d.ts +46 -46
- package/lib/base/components.class.d.ts +10 -10
- package/lib/base/element.class.d.ts +106 -106
- package/lib/base/events.class.d.ts +18 -18
- package/lib/button/button.component.d.ts +21 -21
- package/lib/button/button.module.d.ts +8 -8
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
- package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
- package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
- package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
- package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
- package/lib/checkbox/checkbox.component.d.ts +30 -30
- package/lib/checkbox/checkbox.module.d.ts +9 -9
- package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
- package/lib/color-picker/color-picker.component.d.ts +30 -30
- package/lib/color-picker/color-picker.module.d.ts +13 -13
- package/lib/context-menu/context-menu.component.d.ts +22 -22
- package/lib/context-menu/context-menu.directive.d.ts +38 -38
- package/lib/context-menu/context-menu.module.d.ts +9 -9
- package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
- package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
- package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
- package/lib/data-filter/filter.class.d.ts +40 -40
- package/lib/data-filter/filter.module.d.ts +24 -24
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
- package/lib/data-list/core/data-list.component.d.ts +15 -15
- package/lib/data-list/list/list.component.d.ts +40 -40
- package/lib/data-list/list/list.module.d.ts +11 -11
- package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
- package/lib/data-source/datasource.component.d.ts +16 -16
- package/lib/data-source/datasource.module.d.ts +7 -7
- package/lib/data-source/read-param.d.ts +40 -40
- package/lib/date-picker/date-picker.component.d.ts +81 -81
- package/lib/date-picker/date-picker.module.d.ts +14 -14
- package/lib/dialog/dialog.component.d.ts +14 -14
- package/lib/dialog/dialog.module.d.ts +10 -10
- package/lib/dialog/dialog.service.d.ts +36 -36
- package/lib/drawer/content.component.d.ts +7 -7
- package/lib/drawer/drawer-container.component.d.ts +10 -10
- package/lib/drawer/drawer.component.d.ts +34 -34
- package/lib/drawer/drawer.module.d.ts +10 -10
- package/lib/dropdown/dropdown.component.d.ts +38 -38
- package/lib/dropdown/dropdown.module.d.ts +13 -13
- package/lib/fieldset/fieldset.component.d.ts +11 -11
- package/lib/fieldset/fieldset.module.d.ts +8 -8
- package/lib/form-group/form-group.component.d.ts +14 -14
- package/lib/form-group/form-group.module.d.ts +8 -8
- package/lib/label/label.component.d.ts +9 -9
- package/lib/label/label.module.d.ts +8 -8
- package/lib/loading/loading-indicator.component.d.ts +9 -9
- package/lib/loading/loading-panel.component.d.ts +13 -13
- package/lib/loading/loading.module.d.ts +10 -10
- package/lib/loading/loading.service.d.ts +13 -13
- package/lib/menu/menu-item.component.d.ts +18 -18
- package/lib/menu/menu.component.d.ts +35 -35
- package/lib/menu/menu.module.d.ts +11 -11
- package/lib/menu/menu2.component.d.ts +21 -21
- package/lib/number-box/number-box.component.d.ts +52 -52
- package/lib/number-box/number-box.module.d.ts +10 -10
- package/lib/page/content.component.d.ts +8 -8
- package/lib/page/footer.component.d.ts +5 -5
- package/lib/page/page.component.d.ts +16 -16
- package/lib/page/page.module.d.ts +11 -11
- package/lib/panel-box/panel-box.component.d.ts +19 -19
- package/lib/panel-box/panel-box.module.d.ts +8 -8
- package/lib/password-box/password-box.component.d.ts +12 -12
- package/lib/password-box/password-box.module.d.ts +10 -10
- package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
- package/lib/popover/overlay.service.d.ts +32 -32
- package/lib/popover/popover.component.d.ts +35 -35
- package/lib/popover/popover.module.d.ts +8 -8
- package/lib/popup/popup.component.d.ts +40 -40
- package/lib/popup/popup.module.d.ts +13 -13
- package/lib/popup/popup.service.d.ts +22 -22
- package/lib/progress-bar/progress-bar.component.d.ts +7 -7
- package/lib/progress-bar/progress-bar.module.d.ts +8 -8
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
- package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
- package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
- package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
- package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -20
- package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
- package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
- package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
- package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
- package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
- package/lib/property-editor/property-editor-renderer.directive.d.ts +31 -31
- package/lib/property-editor/property-editor.class.d.ts +93 -93
- package/lib/property-editor/property-editor.module.d.ts +21 -21
- package/lib/query-builder/query-builder-group.component.d.ts +33 -33
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
- package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
- package/lib/query-builder/query-builder.class.d.ts +45 -45
- package/lib/query-builder/query-builder.component.d.ts +29 -29
- package/lib/query-builder/query-builder.module.d.ts +23 -23
- package/lib/query-builder/query-builder.service.d.ts +18 -18
- package/lib/search-bar/search-bar.component.d.ts +62 -62
- package/lib/search-bar/search-bar.module.d.ts +18 -18
- package/lib/searchbox/searchbox.component.d.ts +22 -22
- package/lib/searchbox/searchbox.module.d.ts +13 -13
- package/lib/selectbox/selectbox.component.d.ts +118 -118
- package/lib/selectbox/selectbox.module.d.ts +15 -15
- package/lib/selectbox/selectbox2.component.d.ts +103 -103
- package/lib/selection-list/selection-list.component.d.ts +32 -32
- package/lib/selection-list/selection-list.module.d.ts +10 -10
- package/lib/switch/switch.component.d.ts +20 -20
- package/lib/switch/switch.module.d.ts +9 -9
- package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
- package/lib/tab-page/tab-page-host.component.d.ts +24 -24
- package/lib/tab-page/tab-page.module.d.ts +10 -10
- package/lib/tab-page/tab-page.service.d.ts +30 -30
- package/lib/tab-strip/tab-strip.component.d.ts +28 -28
- package/lib/tab-strip/tab-strip.module.d.ts +8 -8
- package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
- package/lib/tab-view/tab-view.component.d.ts +26 -26
- package/lib/tab-view/tab-view.module.d.ts +10 -10
- package/lib/tab-view/tab.component.d.ts +12 -12
- package/lib/textarea/textarea.component.d.ts +12 -12
- package/lib/textarea/textarea.module.d.ts +8 -8
- package/lib/textbox/textbox.component.d.ts +16 -16
- package/lib/textbox/textbox.module.d.ts +11 -11
- package/lib/time-picker/time-picker.component.d.ts +52 -52
- package/lib/time-picker/time-picker.module.d.ts +11 -11
- package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
- package/lib/toast/toast.module.d.ts +9 -9
- package/lib/toast/toast.service.d.ts +18 -18
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
- package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
- package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
- package/lib/toolbar/toolbar-item.d.ts +3 -3
- package/lib/toolbar/toolbar.component.d.ts +8 -8
- package/lib/toolbar/toolbar.module.d.ts +14 -14
- package/lib/tooltip/tooltip.directive.d.ts +21 -21
- package/lib/tooltip/tooltip.module.d.ts +8 -8
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
- package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
- package/lib/tree-view/tree-view.component.d.ts +121 -121
- package/lib/tree-view/tree-view.module.d.ts +11 -11
- package/lib/upload-file/upload-file.component.d.ts +42 -42
- package/lib/upload-file/upload-file.events.d.ts +10 -10
- package/lib/upload-file/upload-file.module.d.ts +13 -13
- package/lib/validation/validation-form.component.d.ts +19 -19
- package/lib/validation/validation-rule.widget.d.ts +23 -23
- package/lib/validation/validation.class.d.ts +16 -16
- package/lib/validation/validation.component.d.ts +25 -25
- package/lib/validation/validation.module.d.ts +11 -11
- package/package.json +20 -15
- package/{index.d.ts → public-api.d.ts} +155 -155
- package/esm2022/acorex-components.mjs +0 -5
- package/esm2022/index.mjs +0 -158
- package/esm2022/lib/accordion/accordion.component.mjs +0 -45
- package/esm2022/lib/accordion/accordion.module.mjs +0 -20
- package/esm2022/lib/base/base-page.class.mjs +0 -95
- package/esm2022/lib/base/components.class.mjs +0 -17
- package/esm2022/lib/base/element.class.mjs +0 -301
- package/esm2022/lib/base/events.class.mjs +0 -17
- package/esm2022/lib/button/button.component.mjs +0 -74
- package/esm2022/lib/button/button.module.mjs +0 -21
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -426
- package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
- package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
- package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
- package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
- package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
- package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
- package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
- package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
- package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
- package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -102
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
- package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
- package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
- package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
- package/esm2022/lib/data-filter/filter.class.mjs +0 -46
- package/esm2022/lib/data-filter/filter.module.mjs +0 -88
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
- package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
- package/esm2022/lib/data-list/list/list.component.mjs +0 -134
- package/esm2022/lib/data-list/list/list.module.mjs +0 -22
- package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
- package/esm2022/lib/data-source/datasource.component.mjs +0 -47
- package/esm2022/lib/data-source/datasource.module.mjs +0 -18
- package/esm2022/lib/data-source/read-param.mjs +0 -7
- package/esm2022/lib/date-picker/date-picker.component.mjs +0 -718
- package/esm2022/lib/date-picker/date-picker.module.mjs +0 -49
- package/esm2022/lib/dialog/dialog.component.mjs +0 -26
- package/esm2022/lib/dialog/dialog.module.mjs +0 -21
- package/esm2022/lib/dialog/dialog.service.mjs +0 -160
- package/esm2022/lib/drawer/content.component.mjs +0 -18
- package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
- package/esm2022/lib/drawer/drawer.component.mjs +0 -146
- package/esm2022/lib/drawer/drawer.module.mjs +0 -23
- package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
- package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
- package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
- package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
- package/esm2022/lib/form-group/form-group.component.mjs +0 -37
- package/esm2022/lib/form-group/form-group.module.mjs +0 -21
- package/esm2022/lib/label/label.component.mjs +0 -19
- package/esm2022/lib/label/label.module.mjs +0 -21
- package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
- package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
- package/esm2022/lib/loading/loading.module.mjs +0 -21
- package/esm2022/lib/menu/menu-item.component.mjs +0 -50
- package/esm2022/lib/menu/menu.component.mjs +0 -98
- package/esm2022/lib/menu/menu.module.mjs +0 -22
- package/esm2022/lib/menu/menu2.component.mjs +0 -100
- package/esm2022/lib/number-box/number-box.component.mjs +0 -628
- package/esm2022/lib/number-box/number-box.module.mjs +0 -21
- package/esm2022/lib/page/content.component.mjs +0 -27
- package/esm2022/lib/page/footer.component.mjs +0 -19
- package/esm2022/lib/page/page.component.mjs +0 -57
- package/esm2022/lib/page/page.module.mjs +0 -22
- package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
- package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
- package/esm2022/lib/password-box/password-box.component.mjs +0 -32
- package/esm2022/lib/password-box/password-box.module.mjs +0 -23
- package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
- package/esm2022/lib/popover/overlay.service.mjs +0 -94
- package/esm2022/lib/popover/popover.component.mjs +0 -145
- package/esm2022/lib/popover/popover.module.mjs +0 -19
- package/esm2022/lib/popup/popup.component.mjs +0 -159
- package/esm2022/lib/popup/popup.module.mjs +0 -25
- package/esm2022/lib/popup/popup.service.mjs +0 -94
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
- package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
- package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
- package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
- package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
- package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
- package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -66
- package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
- package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
- package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
- package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
- package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -47
- package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
- package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
- package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
- package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
- package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
- package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
- package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
- package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
- package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
- package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
- package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
- package/esm2022/lib/searchbox/searchbox.component.mjs +0 -82
- package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
- package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1025
- package/esm2022/lib/selectbox/selectbox.module.mjs +0 -44
- package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
- package/esm2022/lib/selection-list/selection-list.component.mjs +0 -113
- package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
- package/esm2022/lib/switch/switch.component.mjs +0 -55
- package/esm2022/lib/switch/switch.module.mjs +0 -20
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
- package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
- package/esm2022/lib/tab-page/tab-page.service.mjs +0 -158
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -38
- package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
- package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
- package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
- package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
- package/esm2022/lib/tab-view/tab.component.mjs +0 -33
- package/esm2022/lib/textarea/textarea.component.mjs +0 -27
- package/esm2022/lib/textarea/textarea.module.mjs +0 -21
- package/esm2022/lib/textbox/textbox.component.mjs +0 -42
- package/esm2022/lib/textbox/textbox.module.mjs +0 -36
- package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1104
- package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
- package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
- package/esm2022/lib/toast/toast.module.mjs +0 -21
- package/esm2022/lib/toast/toast.service.mjs +0 -45
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -62
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
- package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
- package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
- package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
- package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -104
- package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
- package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
- package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
- package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
- package/esm2022/lib/upload-file/upload-file.component.mjs +0 -218
- package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
- package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
- package/esm2022/lib/validation/validation-form.component.mjs +0 -68
- package/esm2022/lib/validation/validation-rule.widget.mjs +0 -114
- package/esm2022/lib/validation/validation.class.mjs +0 -2
- package/esm2022/lib/validation/validation.component.mjs +0 -89
- package/esm2022/lib/validation/validation.module.mjs +0 -34
- package/fesm2022/acorex-components.mjs.map +0 -1
@@ -1,75 +0,0 @@
|
|
1
|
-
import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
|
2
|
-
import { AXFilterColumnComponent } from '../filter.class';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../selection-list/selection-list.component";
|
5
|
-
export class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {
|
6
|
-
cdr;
|
7
|
-
selectedItems = [];
|
8
|
-
items = [];
|
9
|
-
mode = 'single';
|
10
|
-
dataType = 'number';
|
11
|
-
constructor(cdr) {
|
12
|
-
super(cdr);
|
13
|
-
this.cdr = cdr;
|
14
|
-
}
|
15
|
-
get condition() {
|
16
|
-
const values = this.selectedItems.map(c => c.value);
|
17
|
-
if (values.length === 0) {
|
18
|
-
return null;
|
19
|
-
}
|
20
|
-
return {
|
21
|
-
condition: this.mode === 'single' ? 'equal' : 'contains',
|
22
|
-
field: this.field,
|
23
|
-
dataType: this.dataType,
|
24
|
-
value: this.mode === 'single' ? values[0] : values
|
25
|
-
};
|
26
|
-
}
|
27
|
-
clear() {
|
28
|
-
this.selectedItems = [];
|
29
|
-
super.clear();
|
30
|
-
}
|
31
|
-
onSelectChange(e) {
|
32
|
-
this.valueChange.emit();
|
33
|
-
}
|
34
|
-
setFilter(value, operator) {
|
35
|
-
if (value instanceof Array) {
|
36
|
-
this.selectedItems = this.items.filter(c => value.some(z => z === c.value));
|
37
|
-
}
|
38
|
-
else {
|
39
|
-
this.selectedItems = [this.items.find(c => c.value === value)];
|
40
|
-
}
|
41
|
-
super.setFilter(value, operator);
|
42
|
-
}
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnSelectionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: { items: "items", mode: "mode", dataType: "dataType" }, providers: [
|
45
|
-
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }
|
46
|
-
], usesInheritance: true, ngImport: i0, template: `
|
47
|
-
<div class="ax-filter-section">
|
48
|
-
<ax-selection-list [items]="items" (selectedItemsChange)="onSelectChange($event)" [mode]="mode" direction="vertical" [(selectedItems)]="selectedItems">
|
49
|
-
</ax-selection-list>
|
50
|
-
</div>
|
51
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1.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 });
|
52
|
-
}
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnSelectionComponent, decorators: [{
|
54
|
-
type: Component,
|
55
|
-
args: [{
|
56
|
-
selector: 'ax-filter-column-selection',
|
57
|
-
template: `
|
58
|
-
<div class="ax-filter-section">
|
59
|
-
<ax-selection-list [items]="items" (selectedItemsChange)="onSelectChange($event)" [mode]="mode" direction="vertical" [(selectedItems)]="selectedItems">
|
60
|
-
</ax-selection-list>
|
61
|
-
</div>
|
62
|
-
`,
|
63
|
-
providers: [
|
64
|
-
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }
|
65
|
-
],
|
66
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
67
|
-
}]
|
68
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
|
69
|
-
type: Input
|
70
|
-
}], mode: [{
|
71
|
-
type: Input
|
72
|
-
}], dataType: [{
|
73
|
-
type: Input
|
74
|
-
}] } });
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1zZWxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvY29sdW1ucy9maWx0ZXItY29sdW1uLXNlbGVjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFnQjdFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSx1QkFBdUI7SUFnQm5EO0lBYnRCLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFHMUIsS0FBSyxHQUFrQixFQUFFLENBQUM7SUFHMUIsSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUdoQixRQUFRLEdBQVEsUUFBUSxDQUFDO0lBSXpCLFlBQXNCLEdBQXNCO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURPLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBRTVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBRWY7UUFDRCxPQUFPO1lBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUNyRCxDQUFBO0lBQ0wsQ0FBQztJQUNELEtBQUs7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxRQUFnQjtRQUNsQyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDL0U7YUFDSTtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNsRTtRQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7dUdBbERRLGdDQUFnQzsyRkFBaEMsZ0NBQWdDLHFIQUw5QjtZQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRTtTQUN0RixpREFSUzs7Ozs7S0FLVDs7MkZBTVEsZ0NBQWdDO2tCQWI1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7S0FLVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxrQ0FBa0MsRUFBRTtxQkFDdEY7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO3dHQU9HLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRmlsdGVyQ29uZGl0aW9uLCBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ2hlY2tJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICA8YXgtc2VsZWN0aW9uLWxpc3QgIFtpdGVtc109XCJpdGVtc1wiIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIiBbbW9kZV09XCJtb2RlXCIgZGlyZWN0aW9uPVwidmVydGljYWxcIiBbKHNlbGVjdGVkSXRlbXMpXT1cInNlbGVjdGVkSXRlbXNcIj5cclxuICAgIDwvYXgtc2VsZWN0aW9uLWxpc3Q+XHJcbiA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5TZWxlY3Rpb25Db21wb25lbnQgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZpbHRlckNvbHVtblNlbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IHtcclxuXHJcblxyXG4gICAgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaXRlbXM6IEFYQ2hlY2tJdGVtW10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbW9kZSA9ICdzaW5nbGUnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkYXRhVHlwZTogYW55ID0gJ251bWJlcic7XHJcblxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcChjID0+IGMudmFsdWUpO1xyXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLm1vZGUgPT09ICdzaW5nbGUnID8gJ2VxdWFsJyA6ICdjb250YWlucycsXHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogdGhpcy5kYXRhVHlwZSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScgPyB2YWx1ZXNbMF0gOiB2YWx1ZXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgICAgICBzdXBlci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RDaGFuZ2UoZSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRGaWx0ZXIodmFsdWU6IGFueSwgb3BlcmF0b3I6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGMgPT4gdmFsdWUuc29tZSh6ID0+IHogPT09IGMudmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFt0aGlzLml0ZW1zLmZpbmQoYyA9PiBjLnZhbHVlID09PSB2YWx1ZSldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBlci5zZXRGaWx0ZXIodmFsdWUsIG9wZXJhdG9yKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -1,119 +0,0 @@
|
|
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 AXFilterColumnStringComponent extends AXFilterColumnComponent {
|
10
|
-
cdr;
|
11
|
-
operator = 'contains';
|
12
|
-
operators = [
|
13
|
-
{
|
14
|
-
title: 'is',
|
15
|
-
value: 'equal'
|
16
|
-
},
|
17
|
-
{
|
18
|
-
title: `isn't`,
|
19
|
-
value: 'not-equal'
|
20
|
-
},
|
21
|
-
{
|
22
|
-
title: 'contains',
|
23
|
-
value: 'contains'
|
24
|
-
},
|
25
|
-
{
|
26
|
-
title: 'not contains',
|
27
|
-
value: 'not-contains'
|
28
|
-
},
|
29
|
-
{
|
30
|
-
title: 'start with',
|
31
|
-
value: 'start-with'
|
32
|
-
},
|
33
|
-
{
|
34
|
-
title: 'end with',
|
35
|
-
value: 'end-with'
|
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
|
-
// TODO: Check this method work correctly
|
55
|
-
onTextChange(e) {
|
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: 'string',
|
73
|
-
value: this.value
|
74
|
-
};
|
75
|
-
}
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnStringComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
77
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnStringComponent, selector: "ax-filter-column-string", providers: [
|
78
|
-
{ provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }
|
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: AXFilterColumnStringComponent, decorators: [{
|
96
|
-
type: Component,
|
97
|
-
args: [{
|
98
|
-
selector: 'ax-filter-column-string',
|
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: AXFilterColumnStringComponent }
|
116
|
-
]
|
117
|
-
}]
|
118
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1zdHJpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvY29sdW1ucy9maWx0ZXItY29sdW1uLXN0cmluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBc0JsQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBdUNoRDtJQXBDdEIsUUFBUSxHQUFXLFVBQVUsQ0FBQztJQUM5QixTQUFTLEdBQVU7UUFDZjtZQUNJLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLE9BQU87U0FDakI7UUFDRDtZQUNJLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1NBQ3BCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsY0FBYztZQUNyQixLQUFLLEVBQUUsY0FBYztTQUN4QjtRQUNEO1lBQ0ksS0FBSyxFQUFFLFlBQVk7WUFDbkIsS0FBSyxFQUFFLFlBQVk7U0FDdEI7UUFDRDtZQUNJLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1NBQ3BCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsVUFBVTtZQUNqQixLQUFLLEVBQUUsVUFBVTtTQUNwQjtRQUNEO1lBQ0ksS0FBSyxFQUFFLGFBQWE7WUFDcEIsS0FBSyxFQUFFLGNBQWM7U0FDeEI7S0FDSixDQUFDO0lBRUYsWUFBc0IsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRE8sUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFFNUMsQ0FBQztJQUVPLG9CQUFvQixDQUFNO0lBRWxDLGdCQUFnQixDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsWUFBWSxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUM7WUFDekMsQ0FBQyxDQUFDO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2lCQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3BCLENBQUE7SUFDTCxDQUFDO3VHQXpFUSw2QkFBNkI7MkZBQTdCLDZCQUE2QixrREFKM0I7WUFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUU7U0FDbkYsaURBakJTOzs7Ozs7Ozs7Ozs7OztLQWNUOzsyRkFLUSw2QkFBNkI7a0JBckJ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVywrQkFBK0IsRUFBRTtxQkFDbkY7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtZmlsdGVyLWNvbHVtbi1zdHJpbmcnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvblwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8c2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiICBbKG5nTW9kZWwpXT1cIm9wZXJhdG9yXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3BlcmF0b3JzXCIgdmFsdWU9XCJ7e28udmFsdWV9fVwiPlxyXG4gICAgICAgICAgICAgICAge3tvLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGF4LXRleHQtYm94IHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlXCIgKHRleHRDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICpuZ0lmPVwib3BlcmF0b3IhPSdpcy1ub3QtZW1wdHknICYmIG9wZXJhdG9yIT0naXMtZW1wdHknXCI+XHJcbiAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5TdHJpbmdDb21wb25lbnQgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJDb2x1bW5TdHJpbmdDb21wb25lbnQgZXh0ZW5kcyBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIG9wZXJhdG9yOiBzdHJpbmcgPSAnY29udGFpbnMnO1xyXG4gICAgb3BlcmF0b3JzOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnY29udGFpbnMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ25vdCBjb250YWlucycsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LWNvbnRhaW5zJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ3N0YXJ0IHdpdGgnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3N0YXJ0LXdpdGgnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZW5kIHdpdGgnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VuZC13aXRoJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ2lzIGVtcHR5JyxcclxuICAgICAgICAgICAgdmFsdWU6ICdpcy1lbXB0eSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6IGBpc24ndCBlbXB0eWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnaXMtbm90LWVtcHR5J1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcclxuXHJcbiAgICBvbk9wZXJhdG9yQ2hhbmdlKGUpIHtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IENoZWNrIHRoaXMgbWV0aG9kIHdvcmsgY29ycmVjdGx5XHJcbiAgICBvblRleHRDaGFuZ2UoZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlciA9IG9ic2VydmVyO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXHJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLm9wZXJhdG9yLFxyXG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -1,267 +0,0 @@
|
|
1
|
-
import { Component, Input, ViewChild, ViewChildren, QueryList, ViewEncapsulation, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
|
2
|
-
import { AXFilterColumnComponent } from '../filter.class';
|
3
|
-
import { AXHtmlUtil } from '@acorex/core';
|
4
|
-
import { AXMenuComponent } from '../../menu/menu.component';
|
5
|
-
import { AXTextBoxComponent } from '../../textbox/textbox.component';
|
6
|
-
import { AXToastService } from '../../toast/toast.service';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "../../toast/toast.service";
|
9
|
-
import * as i2 from "@angular/common";
|
10
|
-
import * as i3 from "../../panel-box/panel-box.component";
|
11
|
-
import * as i4 from "../../checkbox/checkbox.component";
|
12
|
-
import * as i5 from "../../textbox/textbox.component";
|
13
|
-
import * as i6 from "../../validation/validation.component";
|
14
|
-
import * as i7 from "../../validation/validation-rule.widget";
|
15
|
-
import * as i8 from "../../toolbar/toolbar.component";
|
16
|
-
import * as i9 from "../../toolbar/menu/toolbar-menu.component";
|
17
|
-
import * as i10 from "../../toolbar/title/toolbar-title.component";
|
18
|
-
import * as i11 from "../../button/button.component";
|
19
|
-
import * as i12 from "../columns/filter-column-string.component";
|
20
|
-
import * as i13 from "../columns/filter-column-selection.component";
|
21
|
-
import * as i14 from "../columns/filter-column-date.component";
|
22
|
-
import * as i15 from "../columns/filter-column-number.component";
|
23
|
-
export class AXFilterPanelComponent {
|
24
|
-
cdr;
|
25
|
-
toast;
|
26
|
-
panel;
|
27
|
-
footer;
|
28
|
-
savedList;
|
29
|
-
body;
|
30
|
-
menu;
|
31
|
-
tbxName;
|
32
|
-
filters;
|
33
|
-
groups = [];
|
34
|
-
predefinedFilters = [];
|
35
|
-
mode = 'click';
|
36
|
-
saveItems = [
|
37
|
-
{
|
38
|
-
name: 'saveAs',
|
39
|
-
text: 'Save',
|
40
|
-
startIcon: 'fas fa-save',
|
41
|
-
items: [
|
42
|
-
{
|
43
|
-
name: 'save',
|
44
|
-
text: 'Save current'
|
45
|
-
},
|
46
|
-
{
|
47
|
-
name: 'saveAs',
|
48
|
-
text: 'Save as New'
|
49
|
-
}
|
50
|
-
]
|
51
|
-
},
|
52
|
-
];
|
53
|
-
filterChange = new EventEmitter();
|
54
|
-
constructor(cdr, toast) {
|
55
|
-
this.cdr = cdr;
|
56
|
-
this.toast = toast;
|
57
|
-
}
|
58
|
-
apply() {
|
59
|
-
this.filterChange.emit(this.value);
|
60
|
-
this.updateMenu();
|
61
|
-
}
|
62
|
-
clear() {
|
63
|
-
this.filters.forEach(e => {
|
64
|
-
e.clear();
|
65
|
-
});
|
66
|
-
this.predefinedFilters.forEach(c => {
|
67
|
-
c.selected = false;
|
68
|
-
});
|
69
|
-
this.filterChange.emit(this.value);
|
70
|
-
this.updateMenu();
|
71
|
-
}
|
72
|
-
onValueChange(e) {
|
73
|
-
if (this.mode === 'immediate') {
|
74
|
-
setTimeout(() => {
|
75
|
-
this.filterChange.emit(this.value);
|
76
|
-
this.updateMenu();
|
77
|
-
}, 50);
|
78
|
-
}
|
79
|
-
}
|
80
|
-
onCheckValueChange(v, e) {
|
81
|
-
if (!e.value && this.mode === 'immediate') {
|
82
|
-
this.filters.forEach(c => {
|
83
|
-
if (c.field === v.field) {
|
84
|
-
c.clear();
|
85
|
-
}
|
86
|
-
});
|
87
|
-
setTimeout(() => {
|
88
|
-
this.filterChange.emit(this.value.filter(c => c.field !== v.field));
|
89
|
-
this.updateMenu();
|
90
|
-
}, 50);
|
91
|
-
}
|
92
|
-
}
|
93
|
-
get value() {
|
94
|
-
const con = [];
|
95
|
-
if (this.filters) {
|
96
|
-
this.filters.forEach(e => {
|
97
|
-
if (e.active && e.condition && ((e.condition.value != null) || (e.condition.value == null && (e.condition.condition === 'is-empty' || e.condition.condition === 'is-not-empty')))) {
|
98
|
-
con.push(e.condition);
|
99
|
-
}
|
100
|
-
});
|
101
|
-
}
|
102
|
-
return con;
|
103
|
-
}
|
104
|
-
load(filters) {
|
105
|
-
this.filters.forEach(e => {
|
106
|
-
e.clear();
|
107
|
-
});
|
108
|
-
this.cancelSaveFilter();
|
109
|
-
filters.forEach(f => {
|
110
|
-
const col = this.filters.find(c => c.field === f.field);
|
111
|
-
if (col) {
|
112
|
-
col.setFilter(f.value, f.condition);
|
113
|
-
}
|
114
|
-
});
|
115
|
-
this.filterChange.emit(this.value);
|
116
|
-
this.updateMenu();
|
117
|
-
}
|
118
|
-
ngAfterViewInit() {
|
119
|
-
const footer = this.panel.nativeElement.querySelector('.footer');
|
120
|
-
if (!footer) {
|
121
|
-
this.body.nativeElement.style.height = 'calc(100% - 110px)';
|
122
|
-
}
|
123
|
-
setTimeout(() => {
|
124
|
-
if (this.predefinedFilters) {
|
125
|
-
this.setFilterByIndex(0);
|
126
|
-
}
|
127
|
-
else {
|
128
|
-
this.clear();
|
129
|
-
}
|
130
|
-
}, 100);
|
131
|
-
this.applySize();
|
132
|
-
}
|
133
|
-
setFilterByIndex(index) {
|
134
|
-
const f = this.predefinedFilters[index];
|
135
|
-
if (f) {
|
136
|
-
this.setFilterByName(f.name);
|
137
|
-
}
|
138
|
-
}
|
139
|
-
setFilterByName(name) {
|
140
|
-
const f = this.predefinedFilters.find(c => c.name === name);
|
141
|
-
if (f) {
|
142
|
-
this.load(f.value);
|
143
|
-
this.predefinedFilters.forEach(c => {
|
144
|
-
c.selected = false;
|
145
|
-
});
|
146
|
-
f.selected = true;
|
147
|
-
}
|
148
|
-
}
|
149
|
-
removeFilter(f) {
|
150
|
-
this.predefinedFilters = this.predefinedFilters.filter(c => c.name != f.name);
|
151
|
-
this.updateMenu();
|
152
|
-
}
|
153
|
-
get currentFilter() {
|
154
|
-
return this.predefinedFilters.find(c => c.selected);
|
155
|
-
}
|
156
|
-
applySize() {
|
157
|
-
let h = 0;
|
158
|
-
h += this.footer.nativeElement.getBoundingClientRect().height;
|
159
|
-
h += this.savedList.nativeElement.getBoundingClientRect().height;
|
160
|
-
h += 10;
|
161
|
-
this.body.nativeElement.style.height = `calc(100% - ${h}px)`;
|
162
|
-
}
|
163
|
-
// SAVE FILTERS
|
164
|
-
updateMenu() {
|
165
|
-
setTimeout(() => {
|
166
|
-
this.saveItems[0].items[0].visible = this.currentFilter != null;
|
167
|
-
this.saveItems[0].items[1].visible = this.currentFilter != null;
|
168
|
-
// this.menu.update();
|
169
|
-
}, 100);
|
170
|
-
}
|
171
|
-
applySaveFilter() {
|
172
|
-
const f = this.currentFilter;
|
173
|
-
if (f) {
|
174
|
-
// TODO
|
175
|
-
// this.tbxName.validate().then(c => {
|
176
|
-
// if (c.result) {
|
177
|
-
// f.value = this.value;
|
178
|
-
// (f as any).isInEdit = false;
|
179
|
-
// (f as any).isNew = false;
|
180
|
-
// f.title = this.tbxName.value;
|
181
|
-
// this.toast.success('Filter saved successfully.');
|
182
|
-
// this.updateMenu();
|
183
|
-
// }
|
184
|
-
// });
|
185
|
-
}
|
186
|
-
}
|
187
|
-
cancelSaveFilter() {
|
188
|
-
const f = this.currentFilter;
|
189
|
-
if (f) {
|
190
|
-
if (f.isNew) {
|
191
|
-
this.removeFilter(f);
|
192
|
-
}
|
193
|
-
else {
|
194
|
-
f.isInEdit = false;
|
195
|
-
}
|
196
|
-
}
|
197
|
-
this.updateMenu();
|
198
|
-
}
|
199
|
-
onMenuItemClick(e) {
|
200
|
-
if (e.name === 'save') {
|
201
|
-
this.applySaveFilter();
|
202
|
-
}
|
203
|
-
if (e.name === 'saveAs') {
|
204
|
-
const f = {
|
205
|
-
name: AXHtmlUtil.getUID(),
|
206
|
-
title: '',
|
207
|
-
value: this.value
|
208
|
-
};
|
209
|
-
this.predefinedFilters.push(f);
|
210
|
-
f.isNew = true;
|
211
|
-
this.setFilterByName(f.name);
|
212
|
-
this.handleRenameClick(f);
|
213
|
-
}
|
214
|
-
}
|
215
|
-
tbxNameOnKey(e) {
|
216
|
-
if (e.type === 'keyup' && e.key === 'Enter') {
|
217
|
-
this.applySaveFilter();
|
218
|
-
}
|
219
|
-
if (e.type === 'keyup' && e.key === 'Escape') {
|
220
|
-
this.cancelSaveFilter();
|
221
|
-
}
|
222
|
-
}
|
223
|
-
handleRenameClick(f) {
|
224
|
-
f.isInEdit = true;
|
225
|
-
this.cdr.detectChanges();
|
226
|
-
setTimeout(() => {
|
227
|
-
this.tbxName.value = f.title;
|
228
|
-
this.tbxName.focus();
|
229
|
-
}, 50);
|
230
|
-
}
|
231
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterPanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
|
232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterPanelComponent, selector: "ax-filter-panel", inputs: { groups: "groups", predefinedFilters: "predefinedFilters", mode: "mode" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "savedList", first: true, predicate: ["savedList"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["body"], descendants: true, static: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "tbxName", first: true, predicate: ["tbxName"], descendants: true, static: true }, { propertyName: "filters", predicate: AXFilterColumnComponent, descendants: true }], ngImport: i0, template: "<div class=\"ax-filter-panel\" #panel>\r\n <div class=\"saved-list\" #savedList>\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" (click)=\"fb.toggle()\">\r\n <ax-toolbar>\r\n <ax-toolbar-title>\r\n <div>\r\n <i class=\"far fa-filter\"></i>\r\n <span>SAVED FILTERS</span>\r\n </div>\r\n </ax-toolbar-title>\r\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\r\n </ax-toolbar-menu>\r\n </ax-toolbar>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"list\">\r\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\r\n <ul>\r\n <ng-container *ngFor=\"let f of predefinedFilters\">\r\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\r\n <li (click)=\"setFilterByName(f.name)\">\r\n <div class=\"item-line\" [class.selected]=\"f.selected\">\r\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\r\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\r\n (click)=\"handleRenameClick(f)\"></i> <i\r\n class=\"far fa-times text-danger\" title=\"Remove\"\r\n (click)=\"removeFilter(f)\"></i></span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n <ng-template #editMode>\r\n <li>\r\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\r\n (onKey)=\"tbxNameOnKey($event)\">\r\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\r\n <i class=\"far fa-check\"></i>\r\n </ax-button>\r\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\r\n <i class=\"far fa-times\"></i>\r\n </ax-button>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\" message=\"this field is required\">\r\n </ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </li>\r\n </ng-template>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"empty-list\">\r\n Empty\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ax-panel-box>\r\n </div>\r\n <div class=\"body\" #body>\r\n <ng-container *ngFor=\"let g of groups\">\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\r\n <i\r\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\r\n <span>{{g.caption}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngFor=\"let c of g.columns\">\r\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\r\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\r\n [(value)]=\"c.active\">\r\n </ax-check-box>\r\n </div>\r\n <div [hidden]=\"!c.active\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'selection'\">\r\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\r\n [dataType]=\"c.options.dataType\">\r\n </ax-filter-column-selection>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-number>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-string>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ax-panel-box>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\r\n <div class=\"filter-panel\">\r\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\r\n <i class=\"far fa-filter\"></i>\r\n Apply Filter\r\n </ax-button>\r\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\r\n <i class=\"far fa-eraser\"></i>\r\n Clear\r\n </ax-button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.AXPanelBoxComponent, selector: "ax-panel-box", inputs: ["size", "type", "caption", "collapsed", "allowCollapse"], outputs: ["collapsedChange"] }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { kind: "component", type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { kind: "component", type: i8.AXToolbarComponent, selector: "ax-toolbar" }, { kind: "component", type: i9.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "selection", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i10.AXToolbarTitleComponent, selector: "ax-toolbar-title", inputs: ["text"] }, { kind: "component", type: i11.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i12.AXFilterColumnStringComponent, selector: "ax-filter-column-string" }, { kind: "component", type: i13.AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: ["items", "mode", "dataType"] }, { kind: "component", type: i14.AXFilterColumnDateComponent, selector: "ax-filter-column-date" }, { kind: "component", type: i15.AXFilterColumnNumberComponent, selector: "ax-filter-column-number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
233
|
-
}
|
234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterPanelComponent, decorators: [{
|
235
|
-
type: Component,
|
236
|
-
args: [{ selector: 'ax-filter-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-filter-panel\" #panel>\r\n <div class=\"saved-list\" #savedList>\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" (click)=\"fb.toggle()\">\r\n <ax-toolbar>\r\n <ax-toolbar-title>\r\n <div>\r\n <i class=\"far fa-filter\"></i>\r\n <span>SAVED FILTERS</span>\r\n </div>\r\n </ax-toolbar-title>\r\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\r\n </ax-toolbar-menu>\r\n </ax-toolbar>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"list\">\r\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\r\n <ul>\r\n <ng-container *ngFor=\"let f of predefinedFilters\">\r\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\r\n <li (click)=\"setFilterByName(f.name)\">\r\n <div class=\"item-line\" [class.selected]=\"f.selected\">\r\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\r\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\r\n (click)=\"handleRenameClick(f)\"></i> <i\r\n class=\"far fa-times text-danger\" title=\"Remove\"\r\n (click)=\"removeFilter(f)\"></i></span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n <ng-template #editMode>\r\n <li>\r\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\r\n (onKey)=\"tbxNameOnKey($event)\">\r\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\r\n <i class=\"far fa-check\"></i>\r\n </ax-button>\r\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\r\n <i class=\"far fa-times\"></i>\r\n </ax-button>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\" message=\"this field is required\">\r\n </ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </li>\r\n </ng-template>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"empty-list\">\r\n Empty\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ax-panel-box>\r\n </div>\r\n <div class=\"body\" #body>\r\n <ng-container *ngFor=\"let g of groups\">\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\r\n <i\r\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\r\n <span>{{g.caption}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngFor=\"let c of g.columns\">\r\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\r\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\r\n [(value)]=\"c.active\">\r\n </ax-check-box>\r\n </div>\r\n <div [hidden]=\"!c.active\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'selection'\">\r\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\r\n [dataType]=\"c.options.dataType\">\r\n </ax-filter-column-selection>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-number>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-string>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ax-panel-box>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\r\n <div class=\"filter-panel\">\r\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\r\n <i class=\"far fa-filter\"></i>\r\n Apply Filter\r\n </ax-button>\r\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\r\n <i class=\"far fa-eraser\"></i>\r\n Clear\r\n </ax-button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"] }]
|
237
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AXToastService }]; }, propDecorators: { panel: [{
|
238
|
-
type: ViewChild,
|
239
|
-
args: ['panel', { static: true }]
|
240
|
-
}], footer: [{
|
241
|
-
type: ViewChild,
|
242
|
-
args: ['footer', { static: true }]
|
243
|
-
}], savedList: [{
|
244
|
-
type: ViewChild,
|
245
|
-
args: ['savedList', { static: true }]
|
246
|
-
}], body: [{
|
247
|
-
type: ViewChild,
|
248
|
-
args: ['body', { static: true }]
|
249
|
-
}], menu: [{
|
250
|
-
type: ViewChild,
|
251
|
-
args: ['menu', { static: false }]
|
252
|
-
}], tbxName: [{
|
253
|
-
type: ViewChild,
|
254
|
-
args: ['tbxName', { static: true }]
|
255
|
-
}], filters: [{
|
256
|
-
type: ViewChildren,
|
257
|
-
args: [AXFilterColumnComponent]
|
258
|
-
}], groups: [{
|
259
|
-
type: Input
|
260
|
-
}], predefinedFilters: [{
|
261
|
-
type: Input
|
262
|
-
}], mode: [{
|
263
|
-
type: Input
|
264
|
-
}], filterChange: [{
|
265
|
-
type: Output
|
266
|
-
}] } });
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDeE0sT0FBTyxFQUF1Qix1QkFBdUIsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0SCxPQUFPLEVBQWMsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQWEzRCxNQUFNLE9BQU8sc0JBQXNCO0lBMENYO0lBQWdDO0lBeENkLEtBQUssQ0FBNkI7SUFDakMsTUFBTSxDQUE2QjtJQUNoQyxTQUFTLENBQTZCO0lBQzNDLElBQUksQ0FBNkI7SUFDaEMsSUFBSSxDQUFrQjtJQUNwQixPQUFPLENBQXFCO0lBRTdCLE9BQU8sQ0FBcUM7SUFHbkYsTUFBTSxHQUEwQixFQUFFLENBQUM7SUFHbkMsaUJBQWlCLEdBQXlCLEVBQUUsQ0FBQztJQUc3QyxJQUFJ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QkFDSSxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUMsT0FBTztzQkFBN0MsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBR3JDLE1BQU07c0JBREwsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQXVCTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEZpbHRlckNvbHVtbkdyb3VwLCBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCwgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyUHJlZGVmaW5lZCB9IGZyb20gJy4uL2ZpbHRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYTWVudUl0ZW0sIEFYSHRtbFV0aWwsIEFYS2V5Ym9hcmRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYTWVudUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFRleHRCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xyXG5cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LWZpbHRlci1wYW5lbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZpbHRlclBhbmVsQ29tcG9uZW50IHtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIHBhbmVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2Zvb3RlcicsIHsgc3RhdGljOiB0cnVlIH0pIGZvb3RlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdzYXZlZExpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzYXZlZExpc3Q6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnYm9keScsIHsgc3RhdGljOiB0cnVlIH0pIGJvZHk6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnbWVudScsIHsgc3RhdGljOiBmYWxzZSB9KSBtZW51OiBBWE1lbnVDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCd0YnhOYW1lJywgeyBzdGF0aWM6IHRydWUgfSkgdGJ4TmFtZTogQVhUZXh0Qm94Q29tcG9uZW50O1xyXG5cclxuICAgIEBWaWV3Q2hpbGRyZW4oQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQpIGZpbHRlcnM6IFF1ZXJ5TGlzdDxBWEZpbHRlckNvbHVtbkNvbXBvbmVudD47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdyb3VwczogQVhGaWx0ZXJDb2x1bW5Hcm91cFtdID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHByZWRlZmluZWRGaWx0ZXJzOiBBWEZpbHRlclByZWRlZmluZWRbXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtb2RlOiAnY2xpY2snIHwgJ2ltbWVkaWF0ZScgPSAnY2xpY2snO1xyXG5cclxuICAgIHNhdmVJdGVtczogQVhNZW51SXRlbVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3NhdmVBcycsXHJcbiAgICAgICAgICAgIHRleHQ6ICdTYXZlJyxcclxuICAgICAgICAgICAgc3RhcnRJY29uOiAnZmFzIGZhLXNhdmUnLFxyXG4gICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnU2F2ZSBjdXJyZW50J1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2F2ZUFzJyxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnU2F2ZSBhcyBOZXcnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG5cclxuICAgIF07XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBmaWx0ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWEZpbHRlckNvbmRpdGlvbltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhGaWx0ZXJDb25kaXRpb25bXT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBhcHBseSgpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgICAgZS5jbGVhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgKGMgYXMgYW55KS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25WYWx1ZUNoYW5nZShlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2ltbWVkaWF0ZScpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XHJcbiAgICAgICAgICAgIH0sIDUwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hlY2tWYWx1ZUNoYW5nZSh2LCBlOiBBWFZhbHVlRXZlbnQ8Ym9vbGVhbj4pIHtcclxuXHJcblxyXG4gICAgICAgIGlmICghZS52YWx1ZSAmJiB0aGlzLm1vZGUgPT09ICdpbW1lZGlhdGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGMuZmllbGQgPT09IHYuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlLmZpbHRlcihjID0+IGMuZmllbGQgIT09IHYuZmllbGQpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgICAgICAgICB9LCA1MCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogQVhGaWx0ZXJDb25kaXRpb25bXSB7XHJcbiAgICAgICAgY29uc3QgY29uOiBBWEZpbHRlckNvbmRpdGlvbltdID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVycykge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZS5hY3RpdmUgJiYgZS5jb25kaXRpb24gJiYgKChlLmNvbmRpdGlvbi52YWx1ZSAhPSBudWxsKSB8fCAoZS5jb25kaXRpb24udmFsdWUgPT0gbnVsbCAmJiAoZS5jb25kaXRpb24uY29uZGl0aW9uID09PSAnaXMtZW1wdHknIHx8IGUuY29uZGl0aW9uLmNvbmRpdGlvbiA9PT0gJ2lzLW5vdC1lbXB0eScpKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb24ucHVzaChlLmNvbmRpdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY29uO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHVibGljIGxvYWQoZmlsdGVyczogQVhGaWx0ZXJDb25kaXRpb25bXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgICBlLmNsZWFyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxTYXZlRmlsdGVyKCk7XHJcbiAgICAgICAgZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmZpbHRlcnMuZmluZChjID0+IGMuZmllbGQgPT09IGYuZmllbGQpO1xyXG4gICAgICAgICAgICBpZiAoY29sKSB7XHJcbiAgICAgICAgICAgICAgICBjb2wuc2V0RmlsdGVyKGYudmFsdWUsIGYuY29uZGl0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvb3RlcicpO1xyXG4gICAgICAgIGlmICghZm9vdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm9keS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSAxMTBweCknO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJlZGVmaW5lZEZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyQnlJbmRleCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgdGhpcy5hcHBseVNpemUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGaWx0ZXJCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCBmID0gdGhpcy5wcmVkZWZpbmVkRmlsdGVyc1tpbmRleF07XHJcbiAgICAgICAgaWYgKGYpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWx0ZXJCeU5hbWUoZi5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVyQnlOYW1lKG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgICAgIGlmIChmKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZChmLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgKGMgYXMgYW55KS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgKGYgYXMgYW55KS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcmVtb3ZlRmlsdGVyKGY6IEFYRmlsdGVyUHJlZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMgPSB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZpbHRlcihjID0+IGMubmFtZSAhPSBmLm5hbWUpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0XHJcbiAgICAgICAgY3VycmVudEZpbHRlcigpOiBBWEZpbHRlclByZWRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZpbmQoYyA9PiAoYyBhcyBhbnkpLnNlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBhcHBseVNpemUoKSB7XHJcbiAgICAgICAgbGV0IGggPSAwO1xyXG4gICAgICAgIGggKz0gdGhpcy5mb290ZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XHJcbiAgICAgICAgaCArPSB0aGlzLnNhdmVkTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcclxuICAgICAgICBoICs9IDEwO1xyXG4gICAgICAgIHRoaXMuYm9keS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGBjYWxjKDEwMCUgLSAke2h9cHgpYDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTQVZFIEZJTFRFUlNcclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZU1lbnUoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUl0ZW1zWzBdLml0ZW1zWzBdLnZpc2libGUgPSB0aGlzLmN1cnJlbnRGaWx0ZXIgIT0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5zYXZlSXRlbXNbMF0uaXRlbXNbMV0udmlzaWJsZSA9IHRoaXMuY3VycmVudEZpbHRlciAhPSBudWxsO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm1lbnUudXBkYXRlKCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseVNhdmVGaWx0ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuY3VycmVudEZpbHRlcjtcclxuICAgICAgICBpZiAoZikge1xyXG4gICAgICAgICAgICAvLyBUT0RPXHJcbiAgICAgICAgICAgIC8vIHRoaXMudGJ4TmFtZS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoYy5yZXN1bHQpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICBmLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgICAgLy8gICAgICAgICAoZiBhcyBhbnkpLmlzSW5FZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgKGYgYXMgYW55KS5pc05ldyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIGYudGl0bGUgPSB0aGlzLnRieE5hbWUudmFsdWU7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdGaWx0ZXIgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsU2F2ZUZpbHRlcigpIHtcclxuICAgICAgICBjb25zdCBmID0gdGhpcy5jdXJyZW50RmlsdGVyO1xyXG4gICAgICAgIGlmIChmKSB7XHJcbiAgICAgICAgICAgIGlmICgoZiBhcyBhbnkpLmlzTmV3KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcihmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIChmIGFzIGFueSkuaXNJbkVkaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1lbnVJdGVtQ2xpY2soZTogQVhNZW51SXRlbSkge1xyXG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdzYXZlJykge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2F2ZUZpbHRlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZS5uYW1lID09PSAnc2F2ZUFzJykge1xyXG4gICAgICAgICAgICBjb25zdCBmID0ge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogQVhIdG1sVXRpbC5nZXRVSUQoKSxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMucHVzaChmKTtcclxuICAgICAgICAgICAgKGYgYXMgYW55KS5pc05ldyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyQnlOYW1lKGYubmFtZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVuYW1lQ2xpY2soZilcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGJ4TmFtZU9uS2V5KGU6IEFYS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXl1cCcgJiYgZS5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNhdmVGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleXVwJyAmJiBlLmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxTYXZlRmlsdGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlbmFtZUNsaWNrKGY6IEFYRmlsdGVyUHJlZGVmaW5lZCkge1xyXG4gICAgICAgIChmIGFzIGFueSkuaXNJbkVkaXQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YnhOYW1lLnZhbHVlID0gZi50aXRsZTtcclxuICAgICAgICAgICAgdGhpcy50YnhOYW1lLmZvY3VzKCk7XHJcbiAgICAgICAgfSwgNTApO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJheC1maWx0ZXItcGFuZWxcIiAjcGFuZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZWQtbGlzdFwiICNzYXZlZExpc3Q+XHJcbiAgICAgICAgPGF4LXBhbmVsLWJveCAjZmI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWhlYWRlclwiIChjbGljayk9XCJmYi50b2dnbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZmlsdGVyXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNBVkVEIEZJTFRFUlM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10b29sYmFyLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci1tZW51ICNtZW51IFtpdGVtc109XCJzYXZlSXRlbXNcIiAob25JdGVtQ2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10b29sYmFyLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZWRlZmluZWRGaWx0ZXJzICYmIHByZWRlZmluZWRGaWx0ZXJzLmxlbmd0aDsgZWxzZSBlbXB0eUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgcHJlZGVmaW5lZEZpbHRlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZi5pc0luRWRpdDsgZWxzZSBlZGl0TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2V0RmlsdGVyQnlOYW1lKGYubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGluZVwiIFtjbGFzcy5zZWxlY3RlZF09XCJmLnNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+PGkgY2xhc3M9XCJmYXIgZmEtY2hlY2tcIj48L2k+IHt7Zi50aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sc1wiPjxpIGNsYXNzPVwiZmFyIGZhLXBlbiB0ZXh0LXByaW1hcnlcIiB0aXRsZT1cIlJlbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVSZW5hbWVDbGljayhmKVwiPjwvaT4mbmJzcDs8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhciBmYS10aW1lcyB0ZXh0LWRhbmdlclwiIHRpdGxlPVwiUmVtb3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbHRlcihmKVwiPjwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdE1vZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggI3RieE5hbWUgcGxhY2Vob2xkZXI9XCJFbnRlciBmaWx0ZXIncyB0aXRsZSBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbktleSk9XCJ0YnhOYW1lT25LZXkoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiB0aXRsZT1cIlNhdmVcIiB0eXBlPVwicHJpbWFyeVwiIChvbkNsaWNrKT1cImFwcGx5U2F2ZUZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gdGl0bGU9XCJDYW5jZWxcIiB0eXBlPVwiZGFuZ2VyXCIgKG9uQ2xpY2spPVwiY2FuY2VsU2F2ZUZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCIgbWVzc2FnZT1cInRoaXMgZmllbGQgaXMgcmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24tcnVsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYXgtcGFuZWwtYm94PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICNib2R5PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGcgb2YgZ3JvdXBzXCI+XHJcbiAgICAgICAgICAgIDxheC1wYW5lbC1ib3ggI2ZiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWhlYWRlclwiICpuZ0lmPVwiZy5jYXB0aW9uXCIgKGNsaWNrKT1cImZiLnRvZ2dsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdmYXIgZmEtbWludXMtc3F1YXJlJyA6ICFmYi5jb2xsYXBzZWQgLCdmYXMgZmEtcGx1cy1zcXVhcmUnIDogZmIuY29sbGFwc2VkIH1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Zy5jYXB0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBnLmNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmlsdGVyLWl0ZW0taGVhZGVyXCIgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiYy5hY3RpdmUgPyAwIDogMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IChvblZhbHVlQ2hhbmdlZCk9XCJvbkNoZWNrVmFsdWVDaGFuZ2UoYywkZXZlbnQpXCIgW2xhYmVsXT1cImMuY2FwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJjLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwiIWMuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZmlsdGVyLWNvbHVtbi1zZWxlY3Rpb24gKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtmaWVsZF09XCJjLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCIgW21vZGVdPVwiYy5vcHRpb25zLm1vZGVcIiBbaXRlbXNdPVwiYy5vcHRpb25zLml0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFUeXBlXT1cImMub3B0aW9ucy5kYXRhVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLWRhdGUgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtmaWVsZF09XCJjLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1maWx0ZXItY29sdW1uLWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZpbHRlci1jb2x1bW4tbnVtYmVyICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIiBbZmllbGRdPVwiYy5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1udW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZmlsdGVyLWNvbHVtbi1zdHJpbmcgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtmaWVsZF09XCJjLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1maWx0ZXItY29sdW1uLXN0cmluZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2F4LXBhbmVsLWJveD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJtb2RlPT0nY2xpY2snXCIgY2xhc3M9XCJmb290ZXJcIiAjZm9vdGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItcGFuZWxcIj5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJhcHBseSgpXCIgdHlwZT1cInN1Y2Nlc3NcIiBzaXplPVwic21cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWZpbHRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIEFwcGx5IEZpbHRlclxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJjbGVhcigpO1wiIHR5cGU9XCJsaWdodCBcIiBzaXplPVwic21cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWVyYXNlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIENsZWFyXHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|