@acorex/components 6.5.29 → 6.5.31
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 +3 -3
- package/acorex-components.d.ts +5 -5
- package/esm2020/acorex-components.mjs +4 -4
- package/esm2020/lib/accordion/accordion.component.mjs +44 -44
- package/esm2020/lib/accordion/accordion.module.mjs +20 -20
- package/esm2020/lib/base/base-page.class.mjs +94 -94
- package/esm2020/lib/base/components.class.mjs +17 -17
- package/esm2020/lib/base/element.class.mjs +294 -294
- package/esm2020/lib/base/events.class.mjs +11 -11
- package/esm2020/lib/button/button.component.mjs +71 -71
- package/esm2020/lib/button/button.module.mjs +21 -21
- package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -413
- package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -22
- package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -54
- package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -18
- package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -213
- package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -68
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -132
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -37
- package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -47
- package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -95
- package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -204
- package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -99
- package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -77
- package/esm2020/lib/checkbox/checkbox.component.mjs +98 -98
- package/esm2020/lib/checkbox/checkbox.module.mjs +20 -20
- package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -422
- package/esm2020/lib/color-picker/color-picker.component.mjs +82 -82
- package/esm2020/lib/color-picker/color-picker.module.mjs +24 -24
- package/esm2020/lib/context-menu/context-menu.component.mjs +65 -65
- package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -135
- package/esm2020/lib/context-menu/context-menu.module.mjs +20 -20
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -138
- package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -117
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -74
- package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -117
- package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -258
- package/esm2020/lib/data-filter/filter.class.mjs +44 -44
- package/esm2020/lib/data-filter/filter.module.mjs +90 -90
- package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -166
- package/esm2020/lib/data-list/core/data-list.component.mjs +40 -40
- package/esm2020/lib/data-list/list/list.component.mjs +124 -124
- package/esm2020/lib/data-list/list/list.module.mjs +22 -22
- package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -85
- package/esm2020/lib/data-source/datasource.component.mjs +47 -47
- package/esm2020/lib/data-source/datasource.module.mjs +18 -18
- package/esm2020/lib/data-source/read-param.mjs +5 -5
- package/esm2020/lib/date-picker/date-picker.component.mjs +702 -702
- package/esm2020/lib/date-picker/date-picker.module.mjs +25 -25
- package/esm2020/lib/dialog/dialog.component.mjs +24 -24
- package/esm2020/lib/dialog/dialog.module.mjs +21 -21
- package/esm2020/lib/dialog/dialog.service.mjs +150 -150
- package/esm2020/lib/drawer/content.component.mjs +18 -18
- package/esm2020/lib/drawer/drawer-container.component.mjs +36 -36
- package/esm2020/lib/drawer/drawer.component.mjs +142 -142
- package/esm2020/lib/drawer/drawer.module.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown.component.mjs +176 -176
- package/esm2020/lib/dropdown/dropdown.module.mjs +26 -26
- package/esm2020/lib/fieldset/fieldset.component.mjs +59 -59
- package/esm2020/lib/fieldset/fieldset.module.mjs +19 -19
- package/esm2020/lib/form-group/form-group.component.mjs +34 -34
- package/esm2020/lib/form-group/form-group.module.mjs +21 -21
- package/esm2020/lib/label/label.component.mjs +19 -19
- package/esm2020/lib/label/label.module.mjs +21 -21
- package/esm2020/lib/loading/loading-indicator.component.mjs +17 -17
- package/esm2020/lib/loading/loading-panel.component.mjs +44 -44
- package/esm2020/lib/loading/loading.module.mjs +21 -21
- package/esm2020/lib/loading/loading.service.mjs +45 -45
- package/esm2020/lib/menu/menu-item.component.mjs +47 -47
- package/esm2020/lib/menu/menu.component.mjs +86 -86
- package/esm2020/lib/menu/menu.module.mjs +22 -22
- package/esm2020/lib/menu/menu2.component.mjs +96 -96
- package/esm2020/lib/number-box/number-box.component.mjs +622 -622
- package/esm2020/lib/number-box/number-box.module.mjs +21 -21
- package/esm2020/lib/page/content.component.mjs +32 -32
- package/esm2020/lib/page/footer.component.mjs +19 -19
- package/esm2020/lib/page/page.component.mjs +53 -53
- package/esm2020/lib/page/page.module.mjs +22 -22
- package/esm2020/lib/panel-box/panel-box.component.mjs +88 -88
- package/esm2020/lib/panel-box/panel-box.module.mjs +19 -19
- package/esm2020/lib/password-box/password-box.component.mjs +31 -31
- package/esm2020/lib/password-box/password-box.module.mjs +23 -23
- package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -48
- package/esm2020/lib/popover/overlay.service.mjs +90 -90
- package/esm2020/lib/popover/popover.component.mjs +127 -127
- package/esm2020/lib/popover/popover.module.mjs +19 -19
- package/esm2020/lib/popup/popup.component.mjs +147 -147
- package/esm2020/lib/popup/popup.module.mjs +25 -25
- package/esm2020/lib/popup/popup.service.mjs +93 -93
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -19
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -19
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -61
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -22
- package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -38
- package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -115
- package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -32
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -211
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -78
- package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -51
- package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -63
- package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -140
- package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -61
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -72
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -71
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -25
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -69
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -22
- package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -29
- package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -25
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -32
- package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -32
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -43
- package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -24
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +154 -154
- package/esm2020/lib/property-editor/property-editor.class.mjs +101 -101
- package/esm2020/lib/property-editor/property-editor.module.mjs +196 -196
- package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -124
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -171
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +395 -395
- package/esm2020/lib/query-builder/query-builder.class.mjs +20 -20
- package/esm2020/lib/query-builder/query-builder.component.mjs +82 -82
- package/esm2020/lib/query-builder/query-builder.module.mjs +62 -62
- package/esm2020/lib/query-builder/query-builder.service.mjs +197 -197
- package/esm2020/lib/search-bar/search-bar.component.mjs +283 -283
- package/esm2020/lib/search-bar/search-bar.module.mjs +63 -63
- package/esm2020/lib/searchbox/searchbox.component.mjs +79 -79
- package/esm2020/lib/searchbox/searchbox.module.mjs +24 -24
- package/esm2020/lib/selectbox/selectbox.component.mjs +961 -961
- package/esm2020/lib/selectbox/selectbox.module.mjs +44 -44
- package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -574
- package/esm2020/lib/selection-list/selection-list.component.mjs +108 -108
- package/esm2020/lib/selection-list/selection-list.module.mjs +21 -21
- package/esm2020/lib/switch/switch.component.mjs +51 -51
- package/esm2020/lib/switch/switch.module.mjs +20 -20
- package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -71
- package/esm2020/lib/tab-page/tab-page-host.component.mjs +116 -116
- package/esm2020/lib/tab-page/tab-page.module.mjs +21 -21
- package/esm2020/lib/tab-page/tab-page.service.mjs +156 -156
- package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -36
- package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -19
- package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -24
- package/esm2020/lib/tab-view/tab-view.component.mjs +105 -105
- package/esm2020/lib/tab-view/tab-view.module.mjs +21 -21
- package/esm2020/lib/tab-view/tab.component.mjs +30 -30
- package/esm2020/lib/textarea/textarea.component.mjs +26 -26
- package/esm2020/lib/textarea/textarea.module.mjs +21 -21
- package/esm2020/lib/textbox/textbox.component.mjs +39 -39
- package/esm2020/lib/textbox/textbox.module.mjs +24 -24
- package/esm2020/lib/time-picker/time-picker.component.mjs +943 -943
- package/esm2020/lib/time-picker/time-picker.module.mjs +22 -22
- package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -74
- package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -13
- package/esm2020/lib/toast/toast.module.mjs +21 -21
- package/esm2020/lib/toast/toast.service.mjs +44 -44
- package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -78
- package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -57
- package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -54
- package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -47
- package/esm2020/lib/toolbar/toolbar-item.mjs +6 -6
- package/esm2020/lib/toolbar/toolbar.component.mjs +13 -13
- package/esm2020/lib/toolbar/toolbar.module.mjs +40 -40
- package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -100
- package/esm2020/lib/tooltip/tooltip.module.mjs +19 -19
- package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -646
- package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -35
- package/esm2020/lib/tree-view/tree-view.component.mjs +775 -775
- package/esm2020/lib/tree-view/tree-view.module.mjs +22 -22
- package/esm2020/lib/upload-file/upload-file.component.mjs +208 -208
- package/esm2020/lib/upload-file/upload-file.events.mjs +2 -2
- package/esm2020/lib/upload-file/upload-file.module.mjs +24 -24
- package/esm2020/lib/validation/validation-form.component.mjs +65 -65
- package/esm2020/lib/validation/validation-rule.widget.mjs +111 -111
- package/esm2020/lib/validation/validation.class.mjs +2 -2
- package/esm2020/lib/validation/validation.component.mjs +89 -89
- package/esm2020/lib/validation/validation.module.mjs +34 -34
- package/esm2020/public-api.mjs +158 -158
- package/fesm2015/acorex-components.mjs +15616 -15616
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +15552 -15552
- package/fesm2020/acorex-components.mjs.map +1 -1
- 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 +31 -31
- package/lib/popover/popover.component.d.ts +34 -34
- 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 +30 -30
- package/lib/property-editor/property-editor.class.d.ts +92 -92
- 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 +27 -27
- 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 +61 -61
- 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 +25 -25
- 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 +1 -1
- package/public-api.d.ts +155 -155
@@ -1,24 +1,24 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import { FormsModule } from '@angular/forms';
|
4
|
-
import { AXValidationModule } from '../../../validation/validation.module';
|
5
|
-
import { AXTimePickerModule } from '../../../time-picker/time-picker.module';
|
6
|
-
import { AXTimePropertyEditorComponent } from './time.editor';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
export class AXTimePropertyEditorModule {
|
9
|
-
constructor() {
|
10
|
-
}
|
11
|
-
}
|
12
|
-
AXTimePropertyEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
13
|
-
AXTimePropertyEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, declarations: [AXTimePropertyEditorComponent], imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule], exports: [AXTimePropertyEditorComponent] });
|
14
|
-
AXTimePropertyEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, providers: [], imports: [[CommonModule, FormsModule, AXTimePickerModule, AXValidationModule]] });
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, decorators: [{
|
16
|
-
type: NgModule,
|
17
|
-
args: [{
|
18
|
-
declarations: [AXTimePropertyEditorComponent],
|
19
|
-
imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule],
|
20
|
-
exports: [AXTimePropertyEditorComponent],
|
21
|
-
providers: []
|
22
|
-
}]
|
23
|
-
}], ctorParameters: function () { return []; } });
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { FormsModule } from '@angular/forms';
|
4
|
+
import { AXValidationModule } from '../../../validation/validation.module';
|
5
|
+
import { AXTimePickerModule } from '../../../time-picker/time-picker.module';
|
6
|
+
import { AXTimePropertyEditorComponent } from './time.editor';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
export class AXTimePropertyEditorModule {
|
9
|
+
constructor() {
|
10
|
+
}
|
11
|
+
}
|
12
|
+
AXTimePropertyEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
13
|
+
AXTimePropertyEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, declarations: [AXTimePropertyEditorComponent], imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule], exports: [AXTimePropertyEditorComponent] });
|
14
|
+
AXTimePropertyEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, providers: [], imports: [[CommonModule, FormsModule, AXTimePickerModule, AXValidationModule]] });
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTimePropertyEditorModule, decorators: [{
|
16
|
+
type: NgModule,
|
17
|
+
args: [{
|
18
|
+
declarations: [AXTimePropertyEditorComponent],
|
19
|
+
imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule],
|
20
|
+
exports: [AXTimePropertyEditorComponent],
|
21
|
+
providers: []
|
22
|
+
}]
|
23
|
+
}], ctorParameters: function () { return []; } });
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3Byb3BlcnR5LWVkaXRvci9lZGl0b3JzL3RpbWUtZWRpdG9yL3RpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVzlELE1BQU0sT0FBTywwQkFBMEI7SUFDbkM7SUFDQSxDQUFDOzt3SEFGUSwwQkFBMEI7eUhBQTFCLDBCQUEwQixpQkFMcEIsNkJBQTZCLGFBQ2xDLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLGFBQ2pFLDZCQUE2Qjt5SEFHOUIsMEJBQTBCLGFBRnhCLEVBQUUsWUFGSixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7NEZBSW5FLDBCQUEwQjtrQkFOdEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztvQkFDNUUsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQ3hDLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24ubW9kdWxlJztcbmltcG9ydCB7IEFYVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLm1vZHVsZSc7XG5pbXBvcnQgeyBBWFRpbWVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vdGltZS5lZGl0b3InO1xuXG5cblxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0FYVGltZVByb3BlcnR5RWRpdG9yQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQVhUaW1lUGlja2VyTW9kdWxlLCBBWFZhbGlkYXRpb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtBWFRpbWVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBWFRpbWVQcm9wZXJ0eUVkaXRvck1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxufSJdfQ==
|
@@ -1,154 +1,154 @@
|
|
1
|
-
import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter } from '@angular/core';
|
2
|
-
import { AXEventService, AXObjectUtil, AXRenderService, setPropByPath } from '@acorex/core';
|
3
|
-
import { AXValidationFormComponent } from '../validation/validation-form.component';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@acorex/core";
|
6
|
-
export class AXPropertyEditorRendererDirective {
|
7
|
-
constructor(target, componentFactoryResolver, renderService, eventService) {
|
8
|
-
this.target = target;
|
9
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
10
|
-
this.renderService = renderService;
|
11
|
-
this.eventService = eventService;
|
12
|
-
this._context = {};
|
13
|
-
this.onValueChange = new EventEmitter();
|
14
|
-
}
|
15
|
-
get context() {
|
16
|
-
return this._context;
|
17
|
-
}
|
18
|
-
set context(v) {
|
19
|
-
this._context = v;
|
20
|
-
}
|
21
|
-
clear() {
|
22
|
-
if (this.instance?.value) {
|
23
|
-
this.instance.value = null;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
ngOnInit() {
|
27
|
-
this.createComponent();
|
28
|
-
}
|
29
|
-
createComponent() {
|
30
|
-
this.renderService.findLoadedComponentByRoute(this.property.property.editorClass).then((c) => {
|
31
|
-
if (c) {
|
32
|
-
const factory = this.componentFactoryResolver.resolveComponentFactory(c.component);
|
33
|
-
const cmpRef = this.target.createComponent(factory);
|
34
|
-
this.instance = cmpRef.instance;
|
35
|
-
this.subscription = this.instance.valueChange.subscribe((value) => {
|
36
|
-
this.property.value = value;
|
37
|
-
this.onValueChange.emit(this.property);
|
38
|
-
if (this.property?.property?.name) {
|
39
|
-
setTimeout(() => {
|
40
|
-
this.eventService.broadcast(`props-${this.groupId}-${this.property.property.name}`, this.property);
|
41
|
-
}, 0);
|
42
|
-
}
|
43
|
-
});
|
44
|
-
this.watchChanges();
|
45
|
-
this.assignProps();
|
46
|
-
this.instance.value = this.property.value;
|
47
|
-
// this.instance.onRenderCompleted.subscribe(() => {
|
48
|
-
// });
|
49
|
-
if (this.validationForm) {
|
50
|
-
this.instance.validatableComponentRegistered.subscribe((v) => {
|
51
|
-
this.validationForm.addWidget(v);
|
52
|
-
});
|
53
|
-
}
|
54
|
-
}
|
55
|
-
});
|
56
|
-
}
|
57
|
-
watchChanges() {
|
58
|
-
const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
|
59
|
-
const varNameRegx = /[a-zA-Z_0-9]+/gm;
|
60
|
-
const options = this.property.property.editorOptions;
|
61
|
-
if (!options) {
|
62
|
-
return;
|
63
|
-
}
|
64
|
-
for (const p in options) {
|
65
|
-
if (options.hasOwnProperty(p)) {
|
66
|
-
const opt = options[p];
|
67
|
-
const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];
|
68
|
-
// bind the props
|
69
|
-
if (vars?.length) {
|
70
|
-
vars.forEach((v) => {
|
71
|
-
const path = v.match(varNameRegx)?.length ? v.match(varNameRegx)[0] : null;
|
72
|
-
if (path) {
|
73
|
-
this.eventService.on(`props-${this.groupId}-${path}`, (e) => {
|
74
|
-
let execCode = opt.slice();
|
75
|
-
const params = {};
|
76
|
-
vars.forEach((vv) => {
|
77
|
-
const p2 = vv.match(varNameRegx)?.length ? vv.match(varNameRegx)[0] : null;
|
78
|
-
params[p2] = AXObjectUtil.deepCopy(this.context[p2]) || null;
|
79
|
-
execCode = execCode.replace(vv, `__params__.${p2}`);
|
80
|
-
});
|
81
|
-
const func = new Function('__params__', `try { return ${execCode}} catch(e){ return null; }`);
|
82
|
-
const val = func(params);
|
83
|
-
const keys = p.split('.');
|
84
|
-
const prop = Object.assign({}, this.instance[keys[0]]);
|
85
|
-
if (keys.length > 1) {
|
86
|
-
this.instance[keys[0]] = setPropByPath(prop, p, val);
|
87
|
-
}
|
88
|
-
else {
|
89
|
-
setPropByPath(this.instance, p, val);
|
90
|
-
}
|
91
|
-
});
|
92
|
-
}
|
93
|
-
});
|
94
|
-
}
|
95
|
-
// else {
|
96
|
-
// this.assignProps();
|
97
|
-
// }
|
98
|
-
}
|
99
|
-
}
|
100
|
-
}
|
101
|
-
assignProps() {
|
102
|
-
const options = this.property.property.editorOptions;
|
103
|
-
if (!options) {
|
104
|
-
return;
|
105
|
-
}
|
106
|
-
const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
|
107
|
-
for (const p in options) {
|
108
|
-
if (options.hasOwnProperty(p)) {
|
109
|
-
const opt = options[p];
|
110
|
-
const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];
|
111
|
-
if (vars?.length) {
|
112
|
-
continue;
|
113
|
-
}
|
114
|
-
else {
|
115
|
-
const val = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;
|
116
|
-
if (val instanceof Promise) {
|
117
|
-
val.then((v) => {
|
118
|
-
setPropByPath(this.instance, p, val);
|
119
|
-
});
|
120
|
-
}
|
121
|
-
else {
|
122
|
-
setPropByPath(this.instance, p, val);
|
123
|
-
}
|
124
|
-
}
|
125
|
-
}
|
126
|
-
}
|
127
|
-
}
|
128
|
-
ngOnDestroy() {
|
129
|
-
if (this.subscription) {
|
130
|
-
this.subscription.unsubscribe();
|
131
|
-
}
|
132
|
-
}
|
133
|
-
}
|
134
|
-
AXPropertyEditorRendererDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXPropertyEditorRendererDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i1.AXRenderService }, { token: i1.AXEventService }], target: i0.ɵɵFactoryTarget.Directive });
|
135
|
-
AXPropertyEditorRendererDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: { property: "property", validationForm: "validationForm", context: "context", host: "host", groupId: "groupId" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0 });
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXPropertyEditorRendererDirective, decorators: [{
|
137
|
-
type: Directive,
|
138
|
-
args: [{
|
139
|
-
selector: '[ax-property-editor-renderer]'
|
140
|
-
}]
|
141
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i1.AXRenderService }, { type: i1.AXEventService }]; }, propDecorators: { property: [{
|
142
|
-
type: Input
|
143
|
-
}], validationForm: [{
|
144
|
-
type: Input
|
145
|
-
}], context: [{
|
146
|
-
type: Input
|
147
|
-
}], host: [{
|
148
|
-
type: Input
|
149
|
-
}], groupId: [{
|
150
|
-
type: Input
|
151
|
-
}], onValueChange: [{
|
152
|
-
type: Output
|
153
|
-
}] } });
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFFcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFpQixhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQUtwRixNQUFNLE9BQU8saUNBQWlDO0lBNkI1QyxZQUNVLE1BQXdCLEVBQ3hCLHdCQUFrRCxFQUNsRCxhQUE4QixFQUM5QixZQUE0QjtRQUg1QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN4Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFnQjNCLGtCQUFhLEdBQWtELElBQUksWUFBWSxFQUFtQyxDQUFDO0lBU2hILENBQUM7SUF4QkosSUFDVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsQ0FBTTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBb0JELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FB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RyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzFHLElBQUksR0FBRyxZQUFZLE9BQU8sRUFBRTt3QkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUNiLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDdkMsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7eUJBQU07d0JBQ0wsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7K0hBMUpVLGlDQUFpQzttSEFBakMsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtpQkFDMUM7eU1BS0MsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFLSyxPQUFPO3NCQURqQixLQUFLO2dCQVNOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgS2V5VmFsdWVEaWZmZXIsIEtleVZhbHVlRGlmZmVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQsIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQsIEFYUHJvcGVydHlDb25maWcgfSBmcm9tICcuL3Byb3BlcnR5LWVkaXRvci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRXZlbnRTZXJ2aWNlLCBBWE9iamVjdFV0aWwsIEFYUmVuZGVyU2VydmljZSwgZ2V0UHJvcEJ5UGF0aCwgc2V0UHJvcEJ5UGF0aCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2F4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlcl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUge1xyXG4gIHByaXZhdGUgaW5zdGFuY2U6IEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHByb3BlcnR5OiBBWFByb3BlcnR5Q29uZmlnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHZhbGlkYXRpb25Gb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIF9jb250ZXh0OiBhbnkgPSB7fTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgY29udGV4dCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX2NvbnRleHQgPSB2O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBob3N0OiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ3JvdXBJZDogYW55O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJTZXJ2aWNlOiBBWFJlbmRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogQVhFdmVudFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2U/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29tcG9uZW50KCkge1xyXG4gICAgdGhpcy5yZW5kZXJTZXJ2aWNlLmZpbmRMb2FkZWRDb21wb25lbnRCeVJvdXRlKHRoaXMucHJvcGVydHkucHJvcGVydHkuZWRpdG9yQ2xhc3MpLnRoZW4oKGMpID0+IHtcclxuICAgICAgaWYgKGMpIHtcclxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoYy5jb21wb25lbnQpO1xyXG4gICAgICAgIGNvbnN0IGNtcFJlZiA9IHRoaXMudGFyZ2V0LmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgICAgICB0aGlzLmluc3RhbmNlID0gY21wUmVmLmluc3RhbmNlIGFzIEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxhbnk+O1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5pbnN0YW5jZS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnByb3BlcnR5LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnByb3BlcnR5KTtcclxuICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5Py5wcm9wZXJ0eT8ubmFtZSkge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5icm9hZGNhc3QoYHByb3BzLSR7dGhpcy5ncm91cElkfS0ke3RoaXMucHJvcGVydHkucHJvcGVydHkubmFtZX1gLCB0aGlzLnByb3BlcnR5KTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkgYXMgYW55O1xyXG4gICAgICAgIHRoaXMud2F0Y2hDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25Qcm9wcygpO1xyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnByb3BlcnR5LnZhbHVlO1xyXG5cclxuICAgICAgICAvLyB0aGlzLmluc3RhbmNlLm9uUmVuZGVyQ29tcGxldGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uRm9ybSkge1xyXG4gICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0YWJsZUNvbXBvbmVudFJlZ2lzdGVyZWQuc3Vic2NyaWJlKCh2KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkZvcm0uYWRkV2lkZ2V0KHYpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hDaGFuZ2VzKCkge1xyXG4gICAgY29uc3QgdmFyc1JlZ3ggPSAvKChcXCRcXHtbYS16QS1aXzAtOV0rXFx9KSspL2dtO1xyXG4gICAgY29uc3QgdmFyTmFtZVJlZ3ggPSAvW2EtekEtWl8wLTldKy9nbTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb3BlcnR5LnByb3BlcnR5LmVkaXRvck9wdGlvbnM7XHJcbiAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBwIGluIG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkocCkpIHtcclxuICAgICAgICBjb25zdCBvcHQgPSBvcHRpb25zW3BdO1xyXG4gICAgICAgIGNvbnN0IHZhcnMgPSB0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJyA/IG9wdD8ubWF0Y2godmFyc1JlZ3gpIDogW107XHJcbiAgICAgICAgLy8gYmluZCB0aGUgcHJvcHNcclxuICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB2YXJzLmZvckVhY2goKHYpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IHYubWF0Y2godmFyTmFtZVJlZ3gpPy5sZW5ndGggPyB2Lm1hdGNoKHZhck5hbWVSZWd4KVswXSA6IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChwYXRoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uub24oYHByb3BzLSR7dGhpcy5ncm91cElkfS0ke3BhdGh9YCwgKGU6IEFYUHJvcGVydHlDb25maWcpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBleGVjQ29kZSA9IG9wdC5zbGljZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgICAgICAgICAgICB2YXJzLmZvckVhY2goKHZ2KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHAyID0gdnYubWF0Y2godmFyTmFtZVJlZ3gpPy5sZW5ndGggPyB2di5tYXRjaCh2YXJOYW1lUmVneClbMF0gOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICBwYXJhbXNbcDJdID0gQVhPYmplY3RVdGlsLmRlZXBDb3B5KHRoaXMuY29udGV4dFtwMl0pIHx8IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgIGV4ZWNDb2RlID0gZXhlY0NvZGUucmVwbGFjZSh2diwgYF9fcGFyYW1zX18uJHtwMn1gKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oJ19fcGFyYW1zX18nLCBgdHJ5IHsgcmV0dXJuICR7ZXhlY0NvZGV9fSBjYXRjaChlKXsgIHJldHVybiBudWxsOyAgfWApO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gZnVuYyhwYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBwLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbnN0YW5jZVtrZXlzWzBdXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Vba2V5c1swXV0gPSBzZXRQcm9wQnlQYXRoKHByb3AsIHAsIHZhbCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wQnlQYXRoKHRoaXMuaW5zdGFuY2UsIHAsIHZhbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBlbHNlIHtcclxuICAgICAgICAvLyAgICB0aGlzLmFzc2lnblByb3BzKCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzc2lnblByb3BzKCkge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcGVydHkucHJvcGVydHkuZWRpdG9yT3B0aW9ucztcclxuICAgIGlmICghb3B0aW9ucykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YXJzUmVneCA9IC8oKFxcJFxce1thLXpBLVpfMC05XStcXH0pKykvZ207XHJcbiAgICBmb3IgKGNvbnN0IHAgaW4gb3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShwKSkge1xyXG4gICAgICAgIGNvbnN0IG9wdCA9IG9wdGlvbnNbcF07XHJcbiAgICAgICAgY29uc3QgdmFycyA9IHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnID8gb3B0Py5tYXRjaCh2YXJzUmVneCkgOiBbXTtcclxuICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdmFsID0gdHlwZW9mIG9wdCA9PT0gJ2Z1bmN0aW9uJyA/IG9wdCh7IGRhdGE6IHRoaXMuY29udGV4dCwgaG9zdDogdGhpcy5ob3N0IH0sIHRoaXMucHJvcGVydHkpIDogb3B0O1xyXG4gICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgdmFsLnRoZW4oKHYpID0+IHtcclxuICAgICAgICAgICAgICBzZXRQcm9wQnlQYXRoKHRoaXMuaW5zdGFuY2UsIHAsIHZhbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2V0UHJvcEJ5UGF0aCh0aGlzLmluc3RhbmNlLCBwLCB2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
1
|
+
import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter } from '@angular/core';
|
2
|
+
import { AXEventService, AXObjectUtil, AXRenderService, setPropByPath } from '@acorex/core';
|
3
|
+
import { AXValidationFormComponent } from '../validation/validation-form.component';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@acorex/core";
|
6
|
+
export class AXPropertyEditorRendererDirective {
|
7
|
+
constructor(target, componentFactoryResolver, renderService, eventService) {
|
8
|
+
this.target = target;
|
9
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
10
|
+
this.renderService = renderService;
|
11
|
+
this.eventService = eventService;
|
12
|
+
this._context = {};
|
13
|
+
this.onValueChange = new EventEmitter();
|
14
|
+
}
|
15
|
+
get context() {
|
16
|
+
return this._context;
|
17
|
+
}
|
18
|
+
set context(v) {
|
19
|
+
this._context = v;
|
20
|
+
}
|
21
|
+
clear() {
|
22
|
+
if (this.instance?.value) {
|
23
|
+
this.instance.value = null;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
ngOnInit() {
|
27
|
+
this.createComponent();
|
28
|
+
}
|
29
|
+
createComponent() {
|
30
|
+
this.renderService.findLoadedComponentByRoute(this.property.property.editorClass).then((c) => {
|
31
|
+
if (c) {
|
32
|
+
const factory = this.componentFactoryResolver.resolveComponentFactory(c.component);
|
33
|
+
const cmpRef = this.target.createComponent(factory);
|
34
|
+
this.instance = cmpRef.instance;
|
35
|
+
this.subscription = this.instance.valueChange.subscribe((value) => {
|
36
|
+
this.property.value = value;
|
37
|
+
this.onValueChange.emit(this.property);
|
38
|
+
if (this.property?.property?.name) {
|
39
|
+
setTimeout(() => {
|
40
|
+
this.eventService.broadcast(`props-${this.groupId}-${this.property.property.name}`, this.property);
|
41
|
+
}, 0);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
this.watchChanges();
|
45
|
+
this.assignProps();
|
46
|
+
this.instance.value = this.property.value;
|
47
|
+
// this.instance.onRenderCompleted.subscribe(() => {
|
48
|
+
// });
|
49
|
+
if (this.validationForm) {
|
50
|
+
this.instance.validatableComponentRegistered.subscribe((v) => {
|
51
|
+
this.validationForm.addWidget(v);
|
52
|
+
});
|
53
|
+
}
|
54
|
+
}
|
55
|
+
});
|
56
|
+
}
|
57
|
+
watchChanges() {
|
58
|
+
const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
|
59
|
+
const varNameRegx = /[a-zA-Z_0-9]+/gm;
|
60
|
+
const options = this.property.property.editorOptions;
|
61
|
+
if (!options) {
|
62
|
+
return;
|
63
|
+
}
|
64
|
+
for (const p in options) {
|
65
|
+
if (options.hasOwnProperty(p)) {
|
66
|
+
const opt = options[p];
|
67
|
+
const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];
|
68
|
+
// bind the props
|
69
|
+
if (vars?.length) {
|
70
|
+
vars.forEach((v) => {
|
71
|
+
const path = v.match(varNameRegx)?.length ? v.match(varNameRegx)[0] : null;
|
72
|
+
if (path) {
|
73
|
+
this.eventService.on(`props-${this.groupId}-${path}`, (e) => {
|
74
|
+
let execCode = opt.slice();
|
75
|
+
const params = {};
|
76
|
+
vars.forEach((vv) => {
|
77
|
+
const p2 = vv.match(varNameRegx)?.length ? vv.match(varNameRegx)[0] : null;
|
78
|
+
params[p2] = AXObjectUtil.deepCopy(this.context[p2]) || null;
|
79
|
+
execCode = execCode.replace(vv, `__params__.${p2}`);
|
80
|
+
});
|
81
|
+
const func = new Function('__params__', `try { return ${execCode}} catch(e){ return null; }`);
|
82
|
+
const val = func(params);
|
83
|
+
const keys = p.split('.');
|
84
|
+
const prop = Object.assign({}, this.instance[keys[0]]);
|
85
|
+
if (keys.length > 1) {
|
86
|
+
this.instance[keys[0]] = setPropByPath(prop, p, val);
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
setPropByPath(this.instance, p, val);
|
90
|
+
}
|
91
|
+
});
|
92
|
+
}
|
93
|
+
});
|
94
|
+
}
|
95
|
+
// else {
|
96
|
+
// this.assignProps();
|
97
|
+
// }
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
assignProps() {
|
102
|
+
const options = this.property.property.editorOptions;
|
103
|
+
if (!options) {
|
104
|
+
return;
|
105
|
+
}
|
106
|
+
const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
|
107
|
+
for (const p in options) {
|
108
|
+
if (options.hasOwnProperty(p)) {
|
109
|
+
const opt = options[p];
|
110
|
+
const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];
|
111
|
+
if (vars?.length) {
|
112
|
+
continue;
|
113
|
+
}
|
114
|
+
else {
|
115
|
+
const val = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;
|
116
|
+
if (val instanceof Promise) {
|
117
|
+
val.then((v) => {
|
118
|
+
setPropByPath(this.instance, p, val);
|
119
|
+
});
|
120
|
+
}
|
121
|
+
else {
|
122
|
+
setPropByPath(this.instance, p, val);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
128
|
+
ngOnDestroy() {
|
129
|
+
if (this.subscription) {
|
130
|
+
this.subscription.unsubscribe();
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
AXPropertyEditorRendererDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXPropertyEditorRendererDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i1.AXRenderService }, { token: i1.AXEventService }], target: i0.ɵɵFactoryTarget.Directive });
|
135
|
+
AXPropertyEditorRendererDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: { property: "property", validationForm: "validationForm", context: "context", host: "host", groupId: "groupId" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0 });
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXPropertyEditorRendererDirective, decorators: [{
|
137
|
+
type: Directive,
|
138
|
+
args: [{
|
139
|
+
selector: '[ax-property-editor-renderer]'
|
140
|
+
}]
|
141
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i1.AXRenderService }, { type: i1.AXEventService }]; }, propDecorators: { property: [{
|
142
|
+
type: Input
|
143
|
+
}], validationForm: [{
|
144
|
+
type: Input
|
145
|
+
}], context: [{
|
146
|
+
type: Input
|
147
|
+
}], host: [{
|
148
|
+
type: Input
|
149
|
+
}], groupId: [{
|
150
|
+
type: Input
|
151
|
+
}], onValueChange: [{
|
152
|
+
type: Output
|
153
|
+
}] } });
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFFcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFpQixhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQUtwRixNQUFNLE9BQU8saUNBQWlDO0lBNkI1QyxZQUNVLE1BQXdCLEVBQ3hCLHdCQUFrRCxFQUNsRCxhQUE4QixFQUM5QixZQUE0QjtRQUg1QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN4Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFnQjNCLGtCQUFhLEdBQWtELElBQUksWUFBWSxFQUFtQyxDQUFDO0lBU2hILENBQUM7SUF4QkosSUFDVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsQ0FBTTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBb0JELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FB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RyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzFHLElBQUksR0FBRyxZQUFZLE9BQU8sRUFBRTt3QkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUNiLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDdkMsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7eUJBQU07d0JBQ0wsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7K0hBMUpVLGlDQUFpQzttSEFBakMsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtpQkFDMUM7eU1BS0MsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFLSyxPQUFPO3NCQURqQixLQUFLO2dCQVNOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgS2V5VmFsdWVEaWZmZXIsIEtleVZhbHVlRGlmZmVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQcm9wZXJ5RWRpdG9yQ29tcG9uZW50LCBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50LCBBWFByb3BlcnR5Q29uZmlnIH0gZnJvbSAnLi9wcm9wZXJ0eS1lZGl0b3IuY2xhc3MnO1xuaW1wb3J0IHsgQVhFdmVudFNlcnZpY2UsIEFYT2JqZWN0VXRpbCwgQVhSZW5kZXJTZXJ2aWNlLCBnZXRQcm9wQnlQYXRoLCBzZXRQcm9wQnlQYXRoIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theC1wcm9wZXJ0eS1lZGl0b3ItcmVuZGVyZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUge1xuICBwcml2YXRlIGluc3RhbmNlOiBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQ8YW55PjtcblxuICBASW5wdXQoKVxuICBwcm9wZXJ0eTogQVhQcm9wZXJ0eUNvbmZpZztcblxuICBASW5wdXQoKVxuICB2YWxpZGF0aW9uRm9ybTogQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudDtcblxuICBwcml2YXRlIF9jb250ZXh0OiBhbnkgPSB7fTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjb250ZXh0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gIH1cbiAgcHVibGljIHNldCBjb250ZXh0KHY6IGFueSkge1xuICAgIHRoaXMuX2NvbnRleHQgPSB2O1xuICB9XG5cbiAgQElucHV0KClcbiAgaG9zdDogYW55O1xuXG4gIEBJbnB1dCgpXG4gIGdyb3VwSWQ6IGFueTtcblxuICBAT3V0cHV0KClcbiAgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50PigpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlbmRlclNlcnZpY2U6IEFYUmVuZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogQVhFdmVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmluc3RhbmNlPy52YWx1ZSkge1xuICAgICAgdGhpcy5pbnN0YW5jZS52YWx1ZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgfVxuXG4gIGNyZWF0ZUNvbXBvbmVudCgpIHtcbiAgICB0aGlzLnJlbmRlclNlcnZpY2UuZmluZExvYWRlZENvbXBvbmVudEJ5Um91dGUodGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5lZGl0b3JDbGFzcykudGhlbigoYykgPT4ge1xuICAgICAgaWYgKGMpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGMuY29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY21wUmVmID0gdGhpcy50YXJnZXQuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gY21wUmVmLmluc3RhbmNlIGFzIEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxhbnk+O1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuaW5zdGFuY2UudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvcGVydHkudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnByb3BlcnR5KTtcbiAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eT8ucHJvcGVydHk/Lm5hbWUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5icm9hZGNhc3QoYHByb3BzLSR7dGhpcy5ncm91cElkfS0ke3RoaXMucHJvcGVydHkucHJvcGVydHkubmFtZX1gLCB0aGlzLnByb3BlcnR5KTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgYXMgYW55O1xuICAgICAgICB0aGlzLndhdGNoQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLmFzc2lnblByb3BzKCk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnByb3BlcnR5LnZhbHVlO1xuXG4gICAgICAgIC8vIHRoaXMuaW5zdGFuY2Uub25SZW5kZXJDb21wbGV0ZWQuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAvLyB9KTtcblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uRm9ybSkge1xuICAgICAgICAgIHRoaXMuaW5zdGFuY2UudmFsaWRhdGFibGVDb21wb25lbnRSZWdpc3RlcmVkLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRm9ybS5hZGRXaWRnZXQodik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hDaGFuZ2VzKCkge1xuICAgIGNvbnN0IHZhcnNSZWd4ID0gLygoXFwkXFx7W2EtekEtWl8wLTldK1xcfSkrKS9nbTtcbiAgICBjb25zdCB2YXJOYW1lUmVneCA9IC9bYS16QS1aXzAtOV0rL2dtO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb3BlcnR5LnByb3BlcnR5LmVkaXRvck9wdGlvbnM7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcCBpbiBvcHRpb25zKSB7XG4gICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgICBjb25zdCBvcHQgPSBvcHRpb25zW3BdO1xuICAgICAgICBjb25zdCB2YXJzID0gdHlwZW9mIG9wdCA9PT0gJ3N0cmluZycgPyBvcHQ/Lm1hdGNoKHZhcnNSZWd4KSA6IFtdO1xuICAgICAgICAvLyBiaW5kIHRoZSBwcm9wc1xuICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdmFycy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gdi5tYXRjaCh2YXJOYW1lUmVneCk/Lmxlbmd0aCA/IHYubWF0Y2godmFyTmFtZVJlZ3gpWzBdIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLm9uKGBwcm9wcy0ke3RoaXMuZ3JvdXBJZH0tJHtwYXRofWAsIChlOiBBWFByb3BlcnR5Q29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGV4ZWNDb2RlID0gb3B0LnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgICAgICAgICAgICAgdmFycy5mb3JFYWNoKCh2dikgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcDIgPSB2di5tYXRjaCh2YXJOYW1lUmVneCk/Lmxlbmd0aCA/IHZ2Lm1hdGNoKHZhck5hbWVSZWd4KVswXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICBwYXJhbXNbcDJdID0gQVhPYmplY3RVdGlsLmRlZXBDb3B5KHRoaXMuY29udGV4dFtwMl0pIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICBleGVjQ29kZSA9IGV4ZWNDb2RlLnJlcGxhY2UodnYsIGBfX3BhcmFtc19fLiR7cDJ9YCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKCdfX3BhcmFtc19fJywgYHRyeSB7IHJldHVybiAke2V4ZWNDb2RlfX0gY2F0Y2goZSl7ICByZXR1cm4gbnVsbDsgIH1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBmdW5jKHBhcmFtcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gcC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmluc3RhbmNlW2tleXNbMF1dKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlW2tleXNbMF1dID0gc2V0UHJvcEJ5UGF0aChwcm9wLCBwLCB2YWwpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wQnlQYXRoKHRoaXMuaW5zdGFuY2UsIHAsIHZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbHNlIHtcbiAgICAgICAgLy8gICAgdGhpcy5hc3NpZ25Qcm9wcygpO1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25Qcm9wcygpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zO1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YXJzUmVneCA9IC8oKFxcJFxce1thLXpBLVpfMC05XStcXH0pKykvZ207XG4gICAgZm9yIChjb25zdCBwIGluIG9wdGlvbnMpIHtcbiAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KHApKSB7XG4gICAgICAgIGNvbnN0IG9wdCA9IG9wdGlvbnNbcF07XG4gICAgICAgIGNvbnN0IHZhcnMgPSB0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJyA/IG9wdD8ubWF0Y2godmFyc1JlZ3gpIDogW107XG4gICAgICAgIGlmICh2YXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB2YWwgPSB0eXBlb2Ygb3B0ID09PSAnZnVuY3Rpb24nID8gb3B0KHsgZGF0YTogdGhpcy5jb250ZXh0LCBob3N0OiB0aGlzLmhvc3QgfSwgdGhpcy5wcm9wZXJ0eSkgOiBvcHQ7XG4gICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIHZhbC50aGVuKCh2KSA9PiB7XG4gICAgICAgICAgICAgIHNldFByb3BCeVBhdGgodGhpcy5pbnN0YW5jZSwgcCwgdmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRQcm9wQnlQYXRoKHRoaXMuaW5zdGFuY2UsIHAsIHZhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|