@acorex/components 6.5.28 → 6.5.30
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 -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/esm2020/lib/loading/loading.service.mjs +45 -0
- 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 +90 -0
- package/esm2020/lib/popover/popover.component.mjs +127 -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 +154 -0
- package/esm2020/lib/property-editor/property-editor.class.mjs +101 -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 +171 -0
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +395 -0
- package/esm2020/lib/query-builder/query-builder.class.mjs +20 -0
- package/esm2020/lib/query-builder/query-builder.component.mjs +82 -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 +283 -0
- package/esm2020/lib/search-bar/search-bar.module.mjs +63 -0
- package/esm2020/lib/searchbox/searchbox.component.mjs +79 -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 +116 -0
- package/esm2020/lib/tab-page/tab-page.module.mjs +21 -0
- package/esm2020/lib/tab-page/tab-page.service.mjs +156 -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 +15988 -0
- package/fesm2015/acorex-components.mjs.map +1 -0
- package/fesm2020/acorex-components.mjs +15923 -0
- package/fesm2020/acorex-components.mjs.map +1 -0
- package/lib/accordion/accordion.component.d.ts +13 -0
- package/lib/accordion/accordion.module.d.ts +9 -0
- package/lib/base/base-page.class.d.ts +46 -0
- package/lib/base/components.class.d.ts +10 -0
- package/lib/base/element.class.d.ts +106 -0
- package/lib/base/events.class.d.ts +18 -0
- package/lib/button/button.component.d.ts +21 -0
- package/lib/button/button.module.d.ts +8 -0
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -0
- package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -0
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -0
- package/{src/lib/calendar/scheduler/scheduler.class.ts → lib/calendar/scheduler/scheduler.class.d.ts} +36 -50
- package/lib/calendar/scheduler/scheduler.component.d.ts +39 -0
- package/lib/calendar/scheduler/scheduler.module.d.ts +21 -0
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -0
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -0
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -0
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -0
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -0
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -0
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -0
- package/lib/checkbox/checkbox.component.d.ts +30 -0
- package/lib/checkbox/checkbox.module.d.ts +9 -0
- package/lib/color-picker/color-box/color-box.component.d.ts +25 -0
- package/lib/color-picker/color-picker.component.d.ts +30 -0
- package/lib/color-picker/color-picker.module.d.ts +13 -0
- package/lib/context-menu/context-menu.component.d.ts +22 -0
- package/lib/context-menu/context-menu.directive.d.ts +38 -0
- package/lib/context-menu/context-menu.module.d.ts +9 -0
- package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -0
- package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -0
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -0
- package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -0
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -0
- package/lib/data-filter/filter.class.d.ts +40 -0
- package/lib/data-filter/filter.module.d.ts +24 -0
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -0
- package/lib/data-list/core/data-list.component.d.ts +15 -0
- package/lib/data-list/list/list.component.d.ts +40 -0
- package/lib/data-list/list/list.module.d.ts +11 -0
- package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -0
- package/lib/data-source/datasource.component.d.ts +16 -0
- package/lib/data-source/datasource.module.d.ts +7 -0
- package/{src/lib/data-source/read-param.ts → lib/data-source/read-param.d.ts} +40 -50
- package/lib/date-picker/date-picker.component.d.ts +81 -0
- package/lib/date-picker/date-picker.module.d.ts +14 -0
- package/lib/dialog/dialog.component.d.ts +14 -0
- package/lib/dialog/dialog.module.d.ts +10 -0
- package/lib/dialog/dialog.service.d.ts +36 -0
- package/lib/drawer/content.component.d.ts +7 -0
- package/lib/drawer/drawer-container.component.d.ts +10 -0
- package/lib/drawer/drawer.component.d.ts +34 -0
- package/lib/drawer/drawer.module.d.ts +10 -0
- package/lib/dropdown/dropdown.component.d.ts +38 -0
- package/lib/dropdown/dropdown.module.d.ts +13 -0
- package/lib/fieldset/fieldset.component.d.ts +11 -0
- package/lib/fieldset/fieldset.module.d.ts +8 -0
- package/lib/form-group/form-group.component.d.ts +14 -0
- package/lib/form-group/form-group.module.d.ts +8 -0
- package/lib/label/label.component.d.ts +9 -0
- package/lib/label/label.module.d.ts +8 -0
- package/lib/loading/loading-indicator.component.d.ts +9 -0
- package/lib/loading/loading-panel.component.d.ts +13 -0
- package/lib/loading/loading.module.d.ts +10 -0
- package/lib/loading/loading.service.d.ts +13 -0
- package/lib/menu/menu-item.component.d.ts +18 -0
- package/lib/menu/menu.component.d.ts +35 -0
- package/lib/menu/menu.module.d.ts +11 -0
- package/lib/menu/menu2.component.d.ts +21 -0
- package/lib/number-box/number-box.component.d.ts +52 -0
- package/lib/number-box/number-box.module.d.ts +10 -0
- package/lib/page/content.component.d.ts +8 -0
- package/lib/page/footer.component.d.ts +5 -0
- package/lib/page/page.component.d.ts +16 -0
- package/lib/page/page.module.d.ts +11 -0
- package/lib/panel-box/panel-box.component.d.ts +19 -0
- package/lib/panel-box/panel-box.module.d.ts +8 -0
- package/lib/password-box/password-box.component.d.ts +12 -0
- package/lib/password-box/password-box.module.d.ts +10 -0
- package/lib/popover/custom-cdk-overlay.service.d.ts +19 -0
- package/lib/popover/overlay.service.d.ts +31 -0
- package/lib/popover/popover.component.d.ts +34 -0
- package/lib/popover/popover.module.d.ts +8 -0
- package/lib/popup/popup.component.d.ts +40 -0
- package/lib/popup/popup.module.d.ts +13 -0
- package/lib/popup/popup.service.d.ts +22 -0
- package/lib/progress-bar/progress-bar.component.d.ts +7 -0
- package/lib/progress-bar/progress-bar.module.d.ts +8 -0
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -0
- package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -0
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -0
- package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -0
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -0
- package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -0
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -0
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -0
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -0
- package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -0
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -0
- package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -0
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -0
- package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -0
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -0
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -0
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -0
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -0
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -0
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -0
- package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -0
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -0
- package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -0
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -0
- package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -0
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -0
- package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -0
- package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -0
- package/lib/property-editor/property-editor.class.d.ts +92 -0
- package/lib/property-editor/property-editor.module.d.ts +21 -0
- package/lib/query-builder/query-builder-group.component.d.ts +33 -0
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -0
- package/lib/query-builder/query-builder-rule.component.d.ts +45 -0
- package/lib/query-builder/query-builder.class.d.ts +45 -0
- package/lib/query-builder/query-builder.component.d.ts +27 -0
- package/lib/query-builder/query-builder.module.d.ts +23 -0
- package/lib/query-builder/query-builder.service.d.ts +18 -0
- package/lib/search-bar/search-bar.component.d.ts +61 -0
- package/lib/search-bar/search-bar.module.d.ts +18 -0
- package/lib/searchbox/searchbox.component.d.ts +22 -0
- package/lib/searchbox/searchbox.module.d.ts +13 -0
- package/lib/selectbox/selectbox.component.d.ts +118 -0
- package/lib/selectbox/selectbox.module.d.ts +15 -0
- package/lib/selectbox/selectbox2.component.d.ts +103 -0
- package/lib/selection-list/selection-list.component.d.ts +32 -0
- package/lib/selection-list/selection-list.module.d.ts +10 -0
- package/lib/switch/switch.component.d.ts +20 -0
- package/lib/switch/switch.module.d.ts +9 -0
- package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -0
- package/lib/tab-page/tab-page-host.component.d.ts +25 -0
- package/lib/tab-page/tab-page.module.d.ts +10 -0
- package/lib/tab-page/tab-page.service.d.ts +30 -0
- package/lib/tab-strip/tab-strip.component.d.ts +28 -0
- package/lib/tab-strip/tab-strip.module.d.ts +8 -0
- package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -0
- package/lib/tab-view/tab-view.component.d.ts +26 -0
- package/lib/tab-view/tab-view.module.d.ts +10 -0
- package/lib/tab-view/tab.component.d.ts +12 -0
- package/lib/textarea/textarea.component.d.ts +12 -0
- package/lib/textarea/textarea.module.d.ts +8 -0
- package/lib/textbox/textbox.component.d.ts +16 -0
- package/lib/textbox/textbox.module.d.ts +11 -0
- package/lib/time-picker/time-picker.component.d.ts +52 -0
- package/lib/time-picker/time-picker.module.d.ts +11 -0
- package/lib/toast/toast-message/toast-message.component.d.ts +18 -0
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -0
- package/lib/toast/toast.module.d.ts +9 -0
- package/lib/toast/toast.service.d.ts +18 -0
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -0
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -0
- package/lib/toolbar/search/toolbar-search.component.d.ts +16 -0
- package/lib/toolbar/title/toolbar-title.component.d.ts +9 -0
- package/lib/toolbar/toolbar-item.d.ts +3 -0
- package/lib/toolbar/toolbar.component.d.ts +8 -0
- package/lib/toolbar/toolbar.module.d.ts +14 -0
- package/lib/tooltip/tooltip.directive.d.ts +21 -0
- package/lib/tooltip/tooltip.module.d.ts +8 -0
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -0
- package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -0
- package/lib/tree-view/tree-view.component.d.ts +121 -0
- package/lib/tree-view/tree-view.module.d.ts +11 -0
- package/lib/upload-file/upload-file.component.d.ts +42 -0
- package/lib/upload-file/upload-file.events.d.ts +10 -0
- package/lib/upload-file/upload-file.module.d.ts +13 -0
- package/lib/validation/validation-form.component.d.ts +19 -0
- package/lib/validation/validation-rule.widget.d.ts +23 -0
- package/lib/validation/validation.class.d.ts +16 -0
- package/lib/validation/validation.component.d.ts +25 -0
- package/lib/validation/validation.module.d.ts +11 -0
- package/package.json +33 -13
- package/{src/public-api.ts → public-api.d.ts} +155 -214
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -10
- package/src/lib/accordion/accordion.component.ts +0 -43
- package/src/lib/accordion/accordion.module.ts +0 -11
- package/src/lib/accordion/api.ts +0 -2
- package/src/lib/base/base-page.class.ts +0 -116
- package/src/lib/base/components.class.ts +0 -9
- package/src/lib/base/element.class.ts +0 -344
- package/src/lib/base/events.class.ts +0 -32
- package/src/lib/button/button.component.html +0 -17
- package/src/lib/button/button.component.ts +0 -72
- package/src/lib/button/button.module.ts +0 -14
- package/src/lib/calendar/calendar-box/calendar-box.component.html +0 -68
- package/src/lib/calendar/calendar-box/calendar-box.component.ts +0 -461
- package/src/lib/calendar/calendar-box/calendar-box.module.ts +0 -16
- package/src/lib/calendar/scheduler/scheduler-views.property.ts +0 -38
- package/src/lib/calendar/scheduler/scheduler.component.html +0 -9
- package/src/lib/calendar/scheduler/scheduler.component.scss +0 -181
- package/src/lib/calendar/scheduler/scheduler.component.ts +0 -249
- package/src/lib/calendar/scheduler/scheduler.module.ts +0 -45
- package/src/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.ts +0 -133
- package/src/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.ts +0 -33
- package/src/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.html +0 -43
- package/src/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.scss +0 -66
- package/src/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.ts +0 -50
- package/src/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.html +0 -45
- package/src/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.scss +0 -19
- package/src/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.ts +0 -103
- package/src/lib/calendar/scheduler/views/month/scheduler-month-view.component.html +0 -39
- package/src/lib/calendar/scheduler/views/month/scheduler-month-view.component.scss +0 -55
- package/src/lib/calendar/scheduler/views/month/scheduler-month-view.component.ts +0 -233
- package/src/lib/calendar/scheduler/views/scheduler-view.component.ts +0 -124
- package/src/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.html +0 -50
- package/src/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.scss +0 -4
- package/src/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.ts +0 -92
- package/src/lib/checkbox/checkbox.component.html +0 -22
- package/src/lib/checkbox/checkbox.component.ts +0 -107
- package/src/lib/checkbox/checkbox.module.ts +0 -11
- package/src/lib/color-picker/color-box/color-box.component.html +0 -37
- package/src/lib/color-picker/color-box/color-box.component.scss +0 -60
- package/src/lib/color-picker/color-box/color-box.component.ts +0 -438
- package/src/lib/color-picker/color-picker.component.html +0 -31
- package/src/lib/color-picker/color-picker.component.ts +0 -87
- package/src/lib/color-picker/color-picker.module.ts +0 -16
- package/src/lib/context-menu/context-menu.component.html +0 -42
- package/src/lib/context-menu/context-menu.component.ts +0 -78
- package/src/lib/context-menu/context-menu.directive.ts +0 -159
- package/src/lib/context-menu/context-menu.module.ts +0 -15
- package/src/lib/data-filter/columns/filter-column-date.component.ts +0 -123
- package/src/lib/data-filter/columns/filter-column-number.component.ts +0 -100
- package/src/lib/data-filter/columns/filter-column-selection.component.ts +0 -69
- package/src/lib/data-filter/columns/filter-column-string.component.ts +0 -100
- package/src/lib/data-filter/filter-panel/filter-panel.component.html +0 -120
- package/src/lib/data-filter/filter-panel/filter-panel.component.scss +0 -143
- package/src/lib/data-filter/filter-panel/filter-panel.component.ts +0 -266
- package/src/lib/data-filter/filter.class.ts +0 -73
- package/src/lib/data-filter/filter.module.ts +0 -52
- package/src/lib/data-filter/toolbar/filter-toolbar.component.html +0 -5
- package/src/lib/data-filter/toolbar/filter-toolbar.component.scss +0 -17
- package/src/lib/data-filter/toolbar/filter-toolbar.component.ts +0 -179
- package/src/lib/data-list/core/data-list.component.ts +0 -62
- package/src/lib/data-list/list/list.component.html +0 -32
- package/src/lib/data-list/list/list.component.scss +0 -64
- package/src/lib/data-list/list/list.component.ts +0 -149
- package/src/lib/data-list/list/list.module.ts +0 -14
- package/src/lib/data-list/list/toolbar-list-view.component.ts +0 -63
- package/src/lib/data-source/datasource.component.ts +0 -50
- package/src/lib/data-source/datasource.module.ts +0 -11
- package/src/lib/date-picker/date-picker.component.html +0 -30
- package/src/lib/date-picker/date-picker.component.scss +0 -5
- package/src/lib/date-picker/date-picker.component.ts +0 -720
- package/src/lib/date-picker/date-picker.module.ts +0 -17
- package/src/lib/dialog/dialog.component.html +0 -5
- package/src/lib/dialog/dialog.component.scss +0 -32
- package/src/lib/dialog/dialog.component.ts +0 -32
- package/src/lib/dialog/dialog.module.ts +0 -13
- package/src/lib/dialog/dialog.service.ts +0 -178
- package/src/lib/drawer/content.component.ts +0 -18
- package/src/lib/drawer/drawer-container.component.ts +0 -37
- package/src/lib/drawer/drawer.component.ts +0 -151
- package/src/lib/drawer/drawer.module.ts +0 -16
- package/src/lib/dropdown/dropdown.component.html +0 -26
- package/src/lib/dropdown/dropdown.component.scss +0 -8
- package/src/lib/dropdown/dropdown.component.ts +0 -197
- package/src/lib/dropdown/dropdown.module.ts +0 -19
- package/src/lib/fieldset/fieldset.component.html +0 -6
- package/src/lib/fieldset/fieldset.component.ts +0 -49
- package/src/lib/fieldset/fieldset.module.ts +0 -11
- package/src/lib/form-group/form-group.component.html +0 -15
- package/src/lib/form-group/form-group.component.ts +0 -39
- package/src/lib/form-group/form-group.module.ts +0 -14
- package/src/lib/label/label.component.html +0 -5
- package/src/lib/label/label.component.ts +0 -18
- package/src/lib/label/label.module.ts +0 -14
- package/src/lib/loading/loading-indicator.component.html +0 -27
- package/src/lib/loading/loading-indicator.component.ts +0 -16
- package/src/lib/loading/loading-panel.component.ts +0 -37
- package/src/lib/loading/loading.module.ts +0 -13
- package/src/lib/loading/loading.service.ts +0 -44
- package/src/lib/menu/menu-item.component.ts +0 -41
- package/src/lib/menu/menu.component.html +0 -74
- package/src/lib/menu/menu.component.ts +0 -111
- package/src/lib/menu/menu.module.ts +0 -13
- package/src/lib/menu/menu2.component.scss +0 -59
- package/src/lib/menu/menu2.component.ts +0 -98
- package/src/lib/number-box/number-box.component.html +0 -32
- package/src/lib/number-box/number-box.component.ts +0 -641
- package/src/lib/number-box/number-box.module.ts +0 -13
- package/src/lib/page/content.component.ts +0 -18
- package/src/lib/page/footer.component.ts +0 -13
- package/src/lib/page/page.component.ts +0 -43
- package/src/lib/page/page.module.ts +0 -14
- package/src/lib/panel-box/panel-box.component.html +0 -19
- package/src/lib/panel-box/panel-box.component.scss +0 -25
- package/src/lib/panel-box/panel-box.component.ts +0 -87
- package/src/lib/panel-box/panel-box.module.ts +0 -10
- package/src/lib/password-box/password-box.component.html +0 -22
- package/src/lib/password-box/password-box.component.ts +0 -30
- package/src/lib/password-box/password-box.module.ts +0 -16
- package/src/lib/popover/custom-cdk-overlay.service.ts +0 -82
- package/src/lib/popover/overlay.service.ts +0 -102
- package/src/lib/popover/popover.component.html +0 -5
- package/src/lib/popover/popover.component.scss +0 -9
- package/src/lib/popover/popover.component.ts +0 -130
- package/src/lib/popover/popover.module.ts +0 -11
- package/src/lib/popup/popup.component.html +0 -33
- package/src/lib/popup/popup.component.scss +0 -167
- package/src/lib/popup/popup.component.ts +0 -184
- package/src/lib/popup/popup.module.ts +0 -16
- package/src/lib/popup/popup.service.ts +0 -103
- package/src/lib/progress-bar/progress-bar.component.html +0 -5
- package/src/lib/progress-bar/progress-bar.component.ts +0 -10
- package/src/lib/progress-bar/progress-bar.module.ts +0 -11
- package/src/lib/property-editor/editors/check-editor/check-editor.ts +0 -44
- package/src/lib/property-editor/editors/check-editor/check.module.ts +0 -14
- package/src/lib/property-editor/editors/color-editor/color.editor.ts +0 -30
- package/src/lib/property-editor/editors/color-editor/color.module.ts +0 -20
- package/src/lib/property-editor/editors/column-editor/column.editor.html +0 -75
- package/src/lib/property-editor/editors/column-editor/column.editor.scss +0 -193
- package/src/lib/property-editor/editors/column-editor/column.editor.ts +0 -124
- package/src/lib/property-editor/editors/column-editor/column.module.ts +0 -28
- package/src/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.html +0 -80
- package/src/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.scss +0 -71
- package/src/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.ts +0 -232
- package/src/lib/property-editor/editors/conditional-color-editor/conditional-color.module.ts +0 -52
- package/src/lib/property-editor/editors/date-editor/date.editor.ts +0 -49
- package/src/lib/property-editor/editors/date-editor/date.module.ts +0 -20
- package/src/lib/property-editor/editors/number-editor/number.editor.ts +0 -46
- package/src/lib/property-editor/editors/number-editor/number.module.ts +0 -20
- package/src/lib/property-editor/editors/range-editor/range.editor.html +0 -67
- package/src/lib/property-editor/editors/range-editor/range.editor.scss +0 -68
- package/src/lib/property-editor/editors/range-editor/range.editor.ts +0 -153
- package/src/lib/property-editor/editors/range-editor/range.module.ts +0 -37
- package/src/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.html +0 -8
- package/src/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.ts +0 -70
- package/src/lib/property-editor/editors/selectbox-editor/selectbox.editor.html +0 -8
- package/src/lib/property-editor/editors/selectbox-editor/selectbox.editor.ts +0 -77
- package/src/lib/property-editor/editors/selectbox-editor/selectbox.module.ts +0 -18
- package/src/lib/property-editor/editors/selection-editor/selection-editor.ts +0 -52
- package/src/lib/property-editor/editors/selection-editor/selection.module.ts +0 -14
- package/src/lib/property-editor/editors/switch-editor/number.editor.ts +0 -26
- package/src/lib/property-editor/editors/switch-editor/number.module.ts +0 -21
- package/src/lib/property-editor/editors/text-editor/text.editor.html +0 -5
- package/src/lib/property-editor/editors/text-editor/text.editor.ts +0 -31
- package/src/lib/property-editor/editors/text-editor/text.module.ts +0 -20
- package/src/lib/property-editor/editors/textarea-editor/textarea.editor.html +0 -9
- package/src/lib/property-editor/editors/textarea-editor/textarea.editor.ts +0 -37
- package/src/lib/property-editor/editors/textarea-editor/textarea.module.ts +0 -20
- package/src/lib/property-editor/editors/time-editor/time.editor.ts +0 -38
- package/src/lib/property-editor/editors/time-editor/time.module.ts +0 -20
- package/src/lib/property-editor/property-editor-renderer.directive.ts +0 -165
- package/src/lib/property-editor/property-editor.class.ts +0 -178
- package/src/lib/property-editor/property-editor.module.ts +0 -115
- package/src/lib/query-builder/query-builder-group.component.html +0 -68
- package/src/lib/query-builder/query-builder-group.component.ts +0 -122
- package/src/lib/query-builder/query-builder-popup/query-builder-popup.component.html +0 -82
- package/src/lib/query-builder/query-builder-popup/query-builder-popup.component.ts +0 -178
- package/src/lib/query-builder/query-builder-rule.component.html +0 -135
- package/src/lib/query-builder/query-builder-rule.component.ts +0 -390
- package/src/lib/query-builder/query-builder.class.ts +0 -53
- package/src/lib/query-builder/query-builder.component.html +0 -3
- package/src/lib/query-builder/query-builder.component.scss +0 -286
- package/src/lib/query-builder/query-builder.component.ts +0 -220
- package/src/lib/query-builder/query-builder.module.ts +0 -44
- package/src/lib/query-builder/query-builder.service.ts +0 -188
- package/src/lib/search-bar/search-bar.component.html +0 -30
- package/src/lib/search-bar/search-bar.component.scss +0 -114
- package/src/lib/search-bar/search-bar.component.ts +0 -287
- package/src/lib/search-bar/search-bar.module.ts +0 -33
- package/src/lib/searchbox/searchbox.component.html +0 -25
- package/src/lib/searchbox/searchbox.component.ts +0 -85
- package/src/lib/searchbox/searchbox.module.ts +0 -17
- package/src/lib/selectbox/selectbox.component.html +0 -100
- package/src/lib/selectbox/selectbox.component.ts +0 -984
- package/src/lib/selectbox/selectbox.module.ts +0 -31
- package/src/lib/selectbox/selectbox2.component.html +0 -78
- package/src/lib/selectbox/selectbox2.component.ts +0 -603
- package/src/lib/selection-list/selection-list.component.html +0 -21
- package/src/lib/selection-list/selection-list.component.ts +0 -115
- package/src/lib/selection-list/selection-list.module.ts +0 -13
- package/src/lib/switch/switch.component.html +0 -4
- package/src/lib/switch/switch.component.scss +0 -65
- package/src/lib/switch/switch.component.ts +0 -57
- package/src/lib/switch/switch.module.ts +0 -14
- package/src/lib/tab-page/tab-page-Renderer.component.ts +0 -70
- package/src/lib/tab-page/tab-page-host.component.ts +0 -110
- package/src/lib/tab-page/tab-page.module.ts +0 -13
- package/src/lib/tab-page/tab-page.service.ts +0 -176
- package/src/lib/tab-strip/tab-strip.component.html +0 -6
- package/src/lib/tab-strip/tab-strip.component.ts +0 -47
- package/src/lib/tab-strip/tab-strip.module.ts +0 -11
- package/src/lib/tab-view/dynamic-tabs.directive.ts +0 -17
- package/src/lib/tab-view/tab-view.component.html +0 -33
- package/src/lib/tab-view/tab-view.component.scss +0 -0
- package/src/lib/tab-view/tab-view.component.ts +0 -129
- package/src/lib/tab-view/tab-view.module.ts +0 -12
- package/src/lib/tab-view/tab.component.html +0 -8
- package/src/lib/tab-view/tab.component.ts +0 -15
- package/src/lib/textarea/textarea.component.html +0 -13
- package/src/lib/textarea/textarea.component.ts +0 -24
- package/src/lib/textarea/textarea.module.ts +0 -14
- package/src/lib/textbox/textbox.component.html +0 -22
- package/src/lib/textbox/textbox.component.ts +0 -38
- package/src/lib/textbox/textbox.module.ts +0 -16
- package/src/lib/time-picker/time-picker.component.html +0 -21
- package/src/lib/time-picker/time-picker.component.ts +0 -1003
- package/src/lib/time-picker/time-picker.module.ts +0 -15
- package/src/lib/toast/toast-message/toast-message.component.html +0 -17
- package/src/lib/toast/toast-message/toast-message.component.scss +0 -75
- package/src/lib/toast/toast-message/toast-message.component.ts +0 -64
- package/src/lib/toast/toast-wrapper/toast-wrapper.component.scss +0 -15
- package/src/lib/toast/toast-wrapper/toast-wrapper.component.ts +0 -13
- package/src/lib/toast/toast.module.ts +0 -12
- package/src/lib/toast/toast.service.ts +0 -64
- package/src/lib/toolbar/group-button/toolbar-group-button.component.ts +0 -54
- package/src/lib/toolbar/menu/toolbar-menu.component.html +0 -4
- package/src/lib/toolbar/menu/toolbar-menu.component.ts +0 -81
- package/src/lib/toolbar/search/toolbar-search.component.html +0 -4
- package/src/lib/toolbar/search/toolbar-search.component.scss +0 -24
- package/src/lib/toolbar/search/toolbar-search.component.ts +0 -61
- package/src/lib/toolbar/title/toolbar-title.component.ts +0 -35
- package/src/lib/toolbar/toolbar-item.ts +0 -4
- package/src/lib/toolbar/toolbar.component.html +0 -4
- package/src/lib/toolbar/toolbar.component.scss +0 -9
- package/src/lib/toolbar/toolbar.component.ts +0 -16
- package/src/lib/toolbar/toolbar.module.ts +0 -25
- package/src/lib/tooltip/tooltip.directive.ts +0 -101
- package/src/lib/tooltip/tooltip.module.ts +0 -11
- package/src/lib/tree-side-menu/tree-side-menu.component.html +0 -43
- package/src/lib/tree-side-menu/tree-side-menu.component.ts +0 -698
- package/src/lib/tree-side-menu/tree-side-menu.module.ts +0 -19
- package/src/lib/tree-view/tree-view.component.html +0 -46
- package/src/lib/tree-view/tree-view.component.ts +0 -835
- package/src/lib/tree-view/tree-view.module.ts +0 -16
- package/src/lib/upload-file/upload-file.component.html +0 -16
- package/src/lib/upload-file/upload-file.component.ts +0 -230
- package/src/lib/upload-file/upload-file.events.ts +0 -11
- package/src/lib/upload-file/upload-file.module.ts +0 -16
- package/src/lib/validation/validation-form.component.ts +0 -78
- package/src/lib/validation/validation-rule.widget.ts +0 -112
- package/src/lib/validation/validation.class.ts +0 -22
- package/src/lib/validation/validation.component.ts +0 -92
- package/src/lib/validation/validation.module.ts +0 -28
- package/src/test.ts +0 -28
- package/tsconfig.lib.json +0 -25
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
@@ -0,0 +1,22 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { AXTreeViewComponent } from './tree-view.component';
|
3
|
+
import { CommonModule } from '@angular/common';
|
4
|
+
import { AXDataSourceModule } from '../data-source/datasource.module';
|
5
|
+
import { AXCheckBoxModule } from '../checkbox/checkbox.module';
|
6
|
+
import { AXContextMenuModule } from '../context-menu/context-menu.module';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
export class AXTreeViewModule {
|
9
|
+
}
|
10
|
+
AXTreeViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
11
|
+
AXTreeViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTreeViewModule, declarations: [AXTreeViewComponent], imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule], exports: [AXTreeViewComponent] });
|
12
|
+
AXTreeViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTreeViewModule, providers: [], imports: [[AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule]] });
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTreeViewModule, decorators: [{
|
14
|
+
type: NgModule,
|
15
|
+
args: [{
|
16
|
+
declarations: [AXTreeViewComponent],
|
17
|
+
imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule],
|
18
|
+
exports: [AXTreeViewComponent],
|
19
|
+
providers: []
|
20
|
+
}]
|
21
|
+
}] });
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdHJlZS12aWV3L3RyZWUtdmlldy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBVTFFLE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFOVixtQkFBbUIsYUFDeEIsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixhQUN2RSxtQkFBbUI7K0dBSXBCLGdCQUFnQixhQUhkLEVBQUUsWUFGSixDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzs0RkFLekUsZ0JBQWdCO2tCQVA1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7b0JBQ2xGLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlTW9kdWxlIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UvZGF0YXNvdXJjZS5tb2R1bGUnO1xuaW1wb3J0IHsgQVhDaGVja0JveE1vZHVsZSB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XG5pbXBvcnQgeyBBWENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSAnLi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5tb2R1bGUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQVhUcmVlVmlld0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0FYRGF0YVNvdXJjZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBBWENoZWNrQm94TW9kdWxlLCBBWENvbnRleHRNZW51TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQVhUcmVlVmlld0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXVxufSlcblxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdNb2R1bGUgeyB9Il19
|
@@ -0,0 +1,208 @@
|
|
1
|
+
import { Component, ViewChild, Input, ElementRef, ViewEncapsulation, TemplateRef, Renderer2, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';
|
2
|
+
import { AXProgressBarComponent } from '../progress-bar/progress-bar.component';
|
3
|
+
import { AXBaseComponent } from '../base/element.class';
|
4
|
+
import { AXRenderService } from '@acorex/core';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@acorex/core";
|
7
|
+
import * as i2 from "../form-group/form-group.component";
|
8
|
+
import * as i3 from "../textbox/textbox.component";
|
9
|
+
import * as i4 from "../button/button.component";
|
10
|
+
import * as i5 from "@angular/common";
|
11
|
+
export class AXUploadFileComponent extends AXBaseComponent {
|
12
|
+
constructor(el, injectionService, rendrer, cdr) {
|
13
|
+
super();
|
14
|
+
this.el = el;
|
15
|
+
this.injectionService = injectionService;
|
16
|
+
this.rendrer = rendrer;
|
17
|
+
this.cdr = cdr;
|
18
|
+
this.contentType = 'image';
|
19
|
+
this.size = "md";
|
20
|
+
this.type = 'inline';
|
21
|
+
this.disabled = false;
|
22
|
+
this.onLoad = new EventEmitter();
|
23
|
+
this.onProgress = new EventEmitter();
|
24
|
+
this.onRemove = new EventEmitter();
|
25
|
+
this.fileTypes = [
|
26
|
+
{
|
27
|
+
type: 'image',
|
28
|
+
accept: ['image/gif', 'image/jpeg', 'image/png'],
|
29
|
+
},
|
30
|
+
{
|
31
|
+
type: 'audio',
|
32
|
+
accept: ['audio/mp3'],
|
33
|
+
},
|
34
|
+
{
|
35
|
+
type: 'ebook',
|
36
|
+
accept: ['application/pdf'],
|
37
|
+
},
|
38
|
+
{
|
39
|
+
type: 'excel',
|
40
|
+
accept: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
|
41
|
+
},
|
42
|
+
{
|
43
|
+
type: 'video',
|
44
|
+
accept: ['video/*'],
|
45
|
+
},
|
46
|
+
{
|
47
|
+
type: 'video/image',
|
48
|
+
accept: ['image/gif', 'image/jpeg', 'image/png', 'video/*'],
|
49
|
+
},
|
50
|
+
];
|
51
|
+
this.files = [];
|
52
|
+
this.fileName = '';
|
53
|
+
}
|
54
|
+
focus() { }
|
55
|
+
onDeleteClick(e) {
|
56
|
+
e.stopPropagation();
|
57
|
+
}
|
58
|
+
onFileChange(e) {
|
59
|
+
const files = e.target.files;
|
60
|
+
this.addFile(files[0]);
|
61
|
+
this.fileInput.nativeElement.value = null;
|
62
|
+
}
|
63
|
+
open() {
|
64
|
+
this.fileInput.nativeElement.click({ accept: this.accessTypes });
|
65
|
+
}
|
66
|
+
remove() {
|
67
|
+
this.fileInput.nativeElement.value = '';
|
68
|
+
this.files = [];
|
69
|
+
this.fileName = null;
|
70
|
+
this.onRemove.emit();
|
71
|
+
}
|
72
|
+
ngAfterViewInit() {
|
73
|
+
if (this.dropRef != null) {
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
this.dropRef = this.el.nativeElement;
|
77
|
+
}
|
78
|
+
//
|
79
|
+
if (this.progressRef != null) {
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
this.progressRef = this.el.nativeElement;
|
83
|
+
}
|
84
|
+
//
|
85
|
+
if (this.type === 'hidden' || this.type === 'box') {
|
86
|
+
this.overlayDiv = this.rendrer.createElement('div');
|
87
|
+
this.overlayDiv.classList.add('overlay');
|
88
|
+
this.overlayDiv.innerHTML = `
|
89
|
+
<div class="icon-wrapper">
|
90
|
+
<i class="far fa-cloud-upload-alt fa-3x"></i>
|
91
|
+
<span>Drop File(s) Here</span>
|
92
|
+
</div>
|
93
|
+
`;
|
94
|
+
this.overlayDiv.addEventListener('drag', this.handleOverlayDragOver);
|
95
|
+
this.overlayDiv.addEventListener('dragover', this.handleOverlayDragOver);
|
96
|
+
this.overlayDiv.addEventListener('dragleave', this.handleOverlayDragOver);
|
97
|
+
this.rendrer.appendChild(this.dropRef, this.overlayDiv);
|
98
|
+
}
|
99
|
+
//
|
100
|
+
this.dropRef.classList.add('ax-upload-drop-over');
|
101
|
+
this.dropRef.addEventListener('dragover', this.handleDragOver.bind(this));
|
102
|
+
this.dropRef.addEventListener('dragleave', this.handleDragLeave.bind(this));
|
103
|
+
this.dropRef.addEventListener('drop', this.handleDrop.bind(this));
|
104
|
+
}
|
105
|
+
handleOverlayDragOver(e) {
|
106
|
+
e.preventDefault();
|
107
|
+
e.stopPropagation();
|
108
|
+
return false;
|
109
|
+
}
|
110
|
+
handleDragOver(e) {
|
111
|
+
e.preventDefault();
|
112
|
+
e.stopPropagation();
|
113
|
+
this.overlayDiv.classList.add('show');
|
114
|
+
return false;
|
115
|
+
}
|
116
|
+
handleDragLeave(e) {
|
117
|
+
e.preventDefault();
|
118
|
+
e.stopPropagation();
|
119
|
+
this.overlayDiv.classList.remove('show');
|
120
|
+
return false;
|
121
|
+
}
|
122
|
+
handleDrop(e) {
|
123
|
+
this.handleDragLeave(e);
|
124
|
+
for (let i = 0; i < e.dataTransfer.files.length; i++) {
|
125
|
+
const file = e.dataTransfer.files[i];
|
126
|
+
this.addFile(file);
|
127
|
+
}
|
128
|
+
}
|
129
|
+
addFile(file) {
|
130
|
+
const progressDiv = this.rendrer.createElement('div');
|
131
|
+
progressDiv.classList.add('ax-upload-progress-panel');
|
132
|
+
const progressLabel = this.rendrer.createElement('small');
|
133
|
+
progressLabel.innerText = file.name;
|
134
|
+
this.fileName = file.name;
|
135
|
+
this.rendrer.appendChild(this.progressRef, progressDiv);
|
136
|
+
const com = this.injectionService.appendComponent(AXProgressBarComponent, { progress: 0 }, progressDiv).instance;
|
137
|
+
this.rendrer.appendChild(progressDiv, progressLabel);
|
138
|
+
const reader = new FileReader();
|
139
|
+
reader.addEventListener('load', (e) => {
|
140
|
+
this.onLoad.emit({
|
141
|
+
file,
|
142
|
+
data: e.target.result
|
143
|
+
});
|
144
|
+
//
|
145
|
+
// Fake Upload
|
146
|
+
let pv = 0;
|
147
|
+
let uploaded = 0;
|
148
|
+
const intv = setInterval(() => {
|
149
|
+
uploaded += 1024 * 1000;
|
150
|
+
if (uploaded > e.total) {
|
151
|
+
uploaded = e.total;
|
152
|
+
}
|
153
|
+
pv = Math.ceil((uploaded / e.total) * 100);
|
154
|
+
com.progress = pv;
|
155
|
+
this.onProgress.emit({
|
156
|
+
file,
|
157
|
+
total: e.total,
|
158
|
+
uploaded,
|
159
|
+
value: pv
|
160
|
+
});
|
161
|
+
//
|
162
|
+
if (com.progress >= 100) {
|
163
|
+
clearInterval(intv);
|
164
|
+
setTimeout(() => {
|
165
|
+
this.rendrer.removeChild(this.progressRef, progressDiv);
|
166
|
+
}, 1000);
|
167
|
+
}
|
168
|
+
}, 100);
|
169
|
+
});
|
170
|
+
reader.readAsDataURL(file);
|
171
|
+
this.files.push(file);
|
172
|
+
}
|
173
|
+
get accessTypes() {
|
174
|
+
return this.fileTypes.find((item) => item.type == this.contentType).accept;
|
175
|
+
}
|
176
|
+
}
|
177
|
+
AXUploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXRenderService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
178
|
+
AXUploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXUploadFileComponent, selector: "ax-upload-file", inputs: { contentType: "contentType", dropRef: "dropRef", progressRef: "progressRef", label: "label", size: "size", type: "type", template: "template", disabled: "disabled" }, outputs: { onLoad: "onLoad", onProgress: "onProgress", onRemove: "onRemove" }, host: { styleAttribute: "display: block; width:100%; position: relative" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input #fileInput type=\"file\" [accept]=\"accessTypes.join(',')\" style=\"display: none;\" (change)=\"onFileChange($event)\" />\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{size}}\">\n <ax-text-box [value]=\"fileName\" readonly=\"true\" [disabled]=\"disabled\"></ax-text-box>\n <ax-button type=\"blank light\" icon=\"far fa-times\" (click)=\"remove()\" *ngIf=\"fileName\" [tabIndex]=\"-1\">\n </ax-button>\n <ax-button type=\"primary blank\" icon=\"far fa-upload\" (click)=\"open()\" [disabled]=\"disabled\" [tabIndex]=\"-1\">\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div class=\"ax upload-file-box\" (click)=\"open()\" #dropRef>\n </div>\n</ng-template>\n", components: [{ type: i2.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileComponent, decorators: [{
|
180
|
+
type: Component,
|
181
|
+
args: [{ selector: 'ax-upload-file', encapsulation: ViewEncapsulation.None, host: { style: 'display: block; width:100%; position: relative' }, template: "<input #fileInput type=\"file\" [accept]=\"accessTypes.join(',')\" style=\"display: none;\" (change)=\"onFileChange($event)\" />\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{size}}\">\n <ax-text-box [value]=\"fileName\" readonly=\"true\" [disabled]=\"disabled\"></ax-text-box>\n <ax-button type=\"blank light\" icon=\"far fa-times\" (click)=\"remove()\" *ngIf=\"fileName\" [tabIndex]=\"-1\">\n </ax-button>\n <ax-button type=\"primary blank\" icon=\"far fa-upload\" (click)=\"open()\" [disabled]=\"disabled\" [tabIndex]=\"-1\">\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div class=\"ax upload-file-box\" (click)=\"open()\" #dropRef>\n </div>\n</ng-template>\n" }]
|
182
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AXRenderService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentType: [{
|
183
|
+
type: Input
|
184
|
+
}], dropRef: [{
|
185
|
+
type: Input
|
186
|
+
}], progressRef: [{
|
187
|
+
type: Input
|
188
|
+
}], label: [{
|
189
|
+
type: Input
|
190
|
+
}], size: [{
|
191
|
+
type: Input
|
192
|
+
}], fileInput: [{
|
193
|
+
type: ViewChild,
|
194
|
+
args: ['fileInput']
|
195
|
+
}], type: [{
|
196
|
+
type: Input
|
197
|
+
}], template: [{
|
198
|
+
type: Input
|
199
|
+
}], disabled: [{
|
200
|
+
type: Input
|
201
|
+
}], onLoad: [{
|
202
|
+
type: Output
|
203
|
+
}], onProgress: [{
|
204
|
+
type: Output
|
205
|
+
}], onRemove: [{
|
206
|
+
type: Output
|
207
|
+
}] } });
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUE4RCxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBb0V4RCxZQUNVLEVBQTJCLEVBQzNCLGdCQUFpQyxFQUNqQyxPQUFrQixFQUNoQixHQUFzQjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBFbEMsZ0JBQVcsR0FBMEQsT0FBTyxDQUFDO1FBWTdFLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBSzNCLFNBQUksR0FBZ0MsUUFBUSxDQUFDO1FBS3BDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsV0FBTSxHQUF3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XG4gIElucHV0LFxuICBFbGVtZW50UmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVGVtcGxhdGVSZWYsXG4gIFJlbmRlcmVyMixcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhVcGxvYWRGaWxlTG9hZEV2ZW50LCBBWFVwbG9hZEZpbGVQcm9ncmVzc0V2ZW50IH0gZnJvbSAnLi91cGxvYWQtZmlsZS5ldmVudHMnO1xuaW1wb3J0IHsgQVhQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQmFzZVRleHRDb21wb25lbnQsIEFYRWxlbWVudFNpemUsIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWFJlbmRlclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC11cGxvYWQtZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgc3R5bGU6ICdkaXNwbGF5OiBibG9jazsgd2lkdGg6MTAwJTsgcG9zaXRpb246IHJlbGF0aXZlJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkRmlsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xuICBwcml2YXRlIG92ZXJsYXlEaXY6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUeXBlOiAnaW1hZ2UnIHwgJ2V4Y2VsJyB8ICdhdWRpbycgfCAndmlkZW8nIHwgJ3ZpZGVvL2ltYWdlJyA9ICdpbWFnZSc7XG5cbiAgQElucHV0KClcbiAgZHJvcFJlZjogSFRNTEVsZW1lbnQ7XG5cbiAgQElucHV0KClcbiAgcHJvZ3Jlc3NSZWY6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9IFwibWRcIjtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KClcbiAgdHlwZTogJ2JveCcgfCAnaW5saW5lJyB8ICdoaWRkZW4nID0gJ2lubGluZSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKVxuICBvbkxvYWQ6IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVMb2FkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVMb2FkRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uUHJvZ3Jlc3M6IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVQcm9ncmVzc0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhVcGxvYWRGaWxlUHJvZ3Jlc3NFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGZpbGVUeXBlczphbnlbXSA9IFtcbiAgICB7XG4gICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgYWNjZXB0OiBbJ2ltYWdlL2dpZicsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2F1ZGlvJyxcbiAgICAgIGFjY2VwdDogWydhdWRpby9tcDMnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdlYm9vaycsXG4gICAgICBhY2NlcHQ6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnZXhjZWwnLFxuICAgICAgYWNjZXB0OiBbJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCddLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ3ZpZGVvJyxcbiAgICAgIGFjY2VwdDogWyd2aWRlby8qJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAndmlkZW8vaW1hZ2UnLFxuICAgICAgYWNjZXB0OiBbJ2ltYWdlL2dpZicsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICd2aWRlby8qJ10sXG4gICAgfSxcbiAgXTtcblxuXG4gIGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgZm9jdXMoKSB7IH1cblxuICBmaWxlTmFtZTogc3RyaW5nID0gJyc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgaW5qZWN0aW9uU2VydmljZTogQVhSZW5kZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZHJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuXG4gIG9uRGVsZXRlQ2xpY2soZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkZpbGVDaGFuZ2UoZSkge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXM7XG4gICAgdGhpcy5hZGRGaWxlKGZpbGVzWzBdKTtcbiAgICAodGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soe2FjY2VwdDp0aGlzLmFjY2Vzc1R5cGVzfSk7XG4gIH1cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICB0aGlzLmZpbGVOYW1lID0gbnVsbFxuICAgIHRoaXMub25SZW1vdmUuZW1pdCgpXG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3BSZWYgIT0gbnVsbCkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3BSZWYgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NSZWYgIT0gbnVsbCkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2dyZXNzUmVmID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICAvL1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoaWRkZW4nIHx8IHRoaXMudHlwZSA9PT0gJ2JveCcpIHtcbiAgICAgIHRoaXMub3ZlcmxheURpdiA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCdvdmVybGF5Jyk7XG4gICAgICB0aGlzLm92ZXJsYXlEaXYuaW5uZXJIVE1MID0gYFxuICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jbG91ZC11cGxvYWQtYWx0IGZhLTN4XCI+PC9pPlxuICAgICAgICA8c3Bhbj5Ecm9wIEZpbGUocykgSGVyZTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gICAgICB0aGlzLm92ZXJsYXlEaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZycsIHRoaXMuaGFuZGxlT3ZlcmxheURyYWdPdmVyKTtcbiAgICAgIHRoaXMub3ZlcmxheURpdi5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlT3ZlcmxheURyYWdPdmVyKTtcbiAgICAgIHRoaXMub3ZlcmxheURpdi5hZGRFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCB0aGlzLmhhbmRsZU92ZXJsYXlEcmFnT3Zlcik7XG4gICAgICB0aGlzLnJlbmRyZXIuYXBwZW5kQ2hpbGQodGhpcy5kcm9wUmVmLCB0aGlzLm92ZXJsYXlEaXYpO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMuZHJvcFJlZi5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWQtZHJvcC1vdmVyJyk7XG4gICAgdGhpcy5kcm9wUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmRyb3BSZWYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVEcmFnTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5kcm9wUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZURyb3AuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU92ZXJsYXlEcmFnT3ZlcihlOiBEcmFnRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURyYWdPdmVyKGU6IERyYWdFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTGVhdmUoZTogRHJhZ0V2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdmVybGF5RGl2LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBoYW5kbGVEcm9wKGU6IERyYWdFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlRHJhZ0xlYXZlKGUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZS5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBlLmRhdGFUcmFuc2Zlci5maWxlc1tpXTtcbiAgICAgIHRoaXMuYWRkRmlsZShmaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEZpbGUoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IHByb2dyZXNzRGl2ID0gdGhpcy5yZW5kcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpIGFzIEhUTUxFbGVtZW50O1xuICAgIHByb2dyZXNzRGl2LmNsYXNzTGlzdC5hZGQoJ2F4LXVwbG9hZC1wcm9ncmVzcy1wYW5lbCcpO1xuICAgIGNvbnN0IHByb2dyZXNzTGFiZWwgPSB0aGlzLnJlbmRyZXIuY3JlYXRlRWxlbWVudCgnc21hbGwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBwcm9ncmVzc0xhYmVsLmlubmVyVGV4dCA9IGZpbGUubmFtZTtcbiAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xuICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZCh0aGlzLnByb2dyZXNzUmVmLCBwcm9ncmVzc0Rpdik7XG4gICAgY29uc3QgY29tID0gdGhpcy5pbmplY3Rpb25TZXJ2aWNlLmFwcGVuZENvbXBvbmVudChBWFByb2dyZXNzQmFyQ29tcG9uZW50LCB7IHByb2dyZXNzOiAwIH0sIHByb2dyZXNzRGl2KS5pbnN0YW5jZSBhcyBBWFByb2dyZXNzQmFyQ29tcG9uZW50O1xuICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZChwcm9ncmVzc0RpdiwgcHJvZ3Jlc3NMYWJlbCk7XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGUpID0+IHtcbiAgICAgIHRoaXMub25Mb2FkLmVtaXQoe1xuICAgICAgICBmaWxlLFxuICAgICAgICBkYXRhOiAoZSBhcyBhbnkpLnRhcmdldC5yZXN1bHRcbiAgICAgIH0pO1xuICAgICAgLy9cbiAgICAgIC8vIEZha2UgVXBsb2FkXG4gICAgICBsZXQgcHYgPSAwO1xuICAgICAgbGV0IHVwbG9hZGVkID0gMDtcbiAgICAgIGNvbnN0IGludHYgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIHVwbG9hZGVkICs9IDEwMjQgKiAxMDAwO1xuICAgICAgICBpZiAodXBsb2FkZWQgPiBlLnRvdGFsKSB7XG4gICAgICAgICAgdXBsb2FkZWQgPSBlLnRvdGFsO1xuICAgICAgICB9XG4gICAgICAgIHB2ID0gTWF0aC5jZWlsKCh1cGxvYWRlZCAvIGUudG90YWwpICogMTAwKTtcbiAgICAgICAgY29tLnByb2dyZXNzID0gcHY7XG4gICAgICAgIHRoaXMub25Qcm9ncmVzcy5lbWl0KHtcbiAgICAgICAgICBmaWxlLFxuICAgICAgICAgIHRvdGFsOiBlLnRvdGFsLFxuICAgICAgICAgIHVwbG9hZGVkLFxuICAgICAgICAgIHZhbHVlOiBwdlxuICAgICAgICB9KTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKGNvbS5wcm9ncmVzcyA+PSAxMDApIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKGludHYpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kcmVyLnJlbW92ZUNoaWxkKHRoaXMucHJvZ3Jlc3NSZWYsIHByb2dyZXNzRGl2KTtcbiAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB0aGlzLmZpbGVzLnB1c2goZmlsZSk7XG4gIH1cblxuICBnZXQgYWNjZXNzVHlwZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT0gdGhpcy5jb250ZW50VHlwZSkuYWNjZXB0O1xuICB9XG59XG4iLCI8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIFthY2NlcHRdPVwiYWNjZXNzVHlwZXMuam9pbignLCcpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIiAvPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PSAnaW5saW5lJzsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgPGF4LWZvcm0tZ3JvdXAgc2l6ZT1cInt7c2l6ZX19XCI+XG4gICAgPGF4LXRleHQtYm94IFt2YWx1ZV09XCJmaWxlTmFtZVwiIHJlYWRvbmx5PVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtdGV4dC1ib3g+XG4gICAgPGF4LWJ1dHRvbiB0eXBlPVwiYmxhbmsgbGlnaHRcIiBpY29uPVwiZmFyIGZhLXRpbWVzXCIgKGNsaWNrKT1cInJlbW92ZSgpXCIgKm5nSWY9XCJmaWxlTmFtZVwiIFt0YWJJbmRleF09XCItMVwiPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxheC1idXR0b24gdHlwZT1cInByaW1hcnkgYmxhbmtcIiBpY29uPVwiZmFyIGZhLXVwbG9hZFwiIChjbGljayk9XCJvcGVuKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgPC9heC1mb3JtLWdyb3VwPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYXggdXBsb2FkLWZpbGUtYm94XCIgKGNsaWNrKT1cIm9wZW4oKVwiICNkcm9wUmVmPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRGaWxlUHJvZ3Jlc3NFdmVudCB7XG4gIHJlYWRvbmx5IGZpbGU6IEZpbGU7XG4gIHJlYWRvbmx5IHVwbG9hZGVkOiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG4gIHJlYWRvbmx5IHZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRGaWxlTG9hZEV2ZW50IHtcbiAgcmVhZG9ubHkgZmlsZTogRmlsZTtcbiAgcmVhZG9ubHkgZGF0YTogQXJyYXlCdWZmZXI7XG59XG4iXX0=
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { AXUploadFileComponent } from './upload-file.component';
|
4
|
+
import { AXButtonModule } from '../button/button.module';
|
5
|
+
import { AXTextBoxModule } from '../textbox/textbox.module';
|
6
|
+
import { AXProgressBarModule } from '../progress-bar/progress-bar.module';
|
7
|
+
import { AXLabelModule } from '../label/label.module';
|
8
|
+
import { AXFormGroupModule } from '../form-group/form-group.module';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
export class AXUploadFileModule {
|
11
|
+
}
|
12
|
+
AXUploadFileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
13
|
+
AXUploadFileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileModule, declarations: [AXUploadFileComponent], imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule], exports: [AXUploadFileComponent] });
|
14
|
+
AXUploadFileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileModule, providers: [], imports: [[CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule]] });
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXUploadFileModule, decorators: [{
|
16
|
+
type: NgModule,
|
17
|
+
args: [{
|
18
|
+
declarations: [AXUploadFileComponent],
|
19
|
+
imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule],
|
20
|
+
exports: [AXUploadFileComponent],
|
21
|
+
providers: []
|
22
|
+
}]
|
23
|
+
}] });
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBUXBFLE1BQU0sT0FBTyxrQkFBa0I7O2dIQUFsQixrQkFBa0I7aUhBQWxCLGtCQUFrQixpQkFMZCxxQkFBcUIsYUFDMUIsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixhQUNwRyxxQkFBcUI7aUhBR3BCLGtCQUFrQixhQUZsQixFQUFFLFlBRkosQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7NEZBSXBHLGtCQUFrQjtrQkFOOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO29CQUMvRyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDaEMsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYVXBsb2FkRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94Lm1vZHVsZSc7XG5pbXBvcnQgeyBBWFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnLi4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgQVhMYWJlbE1vZHVsZSB9IGZyb20gJy4uL2xhYmVsL2xhYmVsLm1vZHVsZSc7XG5pbXBvcnQgeyBBWEZvcm1Hcm91cE1vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBWFVwbG9hZEZpbGVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhUZXh0Qm94TW9kdWxlLCBBWFByb2dyZXNzQmFyTW9kdWxlLCBBWExhYmVsTW9kdWxlLCBBWEZvcm1Hcm91cE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBWFVwbG9hZEZpbGVDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkRmlsZU1vZHVsZSB7fVxuIl19
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { Component, QueryList, ContentChildren, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core';
|
2
|
+
import { AXValidatableComponent } from '../base/element.class';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AXValidationFormComponent {
|
5
|
+
constructor(ref, cdr) {
|
6
|
+
this.ref = ref;
|
7
|
+
this.cdr = cdr;
|
8
|
+
this.widgets = [];
|
9
|
+
this.validateOn = 'submit';
|
10
|
+
this.onInit = new EventEmitter();
|
11
|
+
}
|
12
|
+
ngAfterViewInit() {
|
13
|
+
this.onInit.emit({
|
14
|
+
component: this,
|
15
|
+
htmlElement: this.ref.nativeElement
|
16
|
+
});
|
17
|
+
}
|
18
|
+
validate() {
|
19
|
+
this.widgets.push(...this.widgetsQuery.toArray().filter(c => !this.widgets.includes(c)));
|
20
|
+
//
|
21
|
+
this.widgets.forEach(w => {
|
22
|
+
if (w.validation && w.validation.validateOn == null) {
|
23
|
+
w.validation.validateOn = this.validateOn;
|
24
|
+
}
|
25
|
+
});
|
26
|
+
return new Promise(resolve => {
|
27
|
+
if (!this.widgets || this.widgets.length === 0) {
|
28
|
+
return Promise.resolve({ result: true });
|
29
|
+
}
|
30
|
+
Promise.all(this.widgets.map((c) => c.validate())).then((rules) => {
|
31
|
+
const failed = rules.filter((c) => !c.result);
|
32
|
+
if (failed.length) {
|
33
|
+
resolve({
|
34
|
+
result: false,
|
35
|
+
items: failed
|
36
|
+
});
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
resolve({ result: true });
|
40
|
+
}
|
41
|
+
});
|
42
|
+
});
|
43
|
+
}
|
44
|
+
addWidget(widget) {
|
45
|
+
if (widget)
|
46
|
+
this.widgets.push(widget);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
AXValidationFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationFormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
50
|
+
AXValidationFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXValidationFormComponent, selector: "ax-validation-form", inputs: { validateOn: "validateOn" }, outputs: { onInit: "onInit" }, queries: [{ propertyName: "widgetsQuery", predicate: AXValidatableComponent, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationFormComponent, decorators: [{
|
52
|
+
type: Component,
|
53
|
+
args: [{
|
54
|
+
selector: 'ax-validation-form',
|
55
|
+
template: '<ng-content></ng-content>'
|
56
|
+
}]
|
57
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { widgetsQuery: [{
|
58
|
+
type: ContentChildren,
|
59
|
+
args: [AXValidatableComponent, { descendants: true }]
|
60
|
+
}], validateOn: [{
|
61
|
+
type: Input
|
62
|
+
}], onInit: [{
|
63
|
+
type: Output
|
64
|
+
}] } });
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0vRCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQW9CLEdBQWUsRUFBVSxHQUFzQjtRQUEvQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFHM0QsWUFBTyxHQUE2QixFQUFFLENBQUM7UUFPL0MsZUFBVSxHQUFpQyxRQUFRLENBQUM7UUFHcEQsV0FBTSxHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO0lBYkcsQ0FBQztJQWdCeEUsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLEVBQUU7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO2dCQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzNDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksT0FBTyxDQUFxQixPQUFPLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDckUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsT0FBTyxDQUFDO3dCQUNOLE1BQU0sRUFBRSxLQUFLO3dCQUNiLEtBQUssRUFBRSxNQUFNO3FCQUNkLENBQUMsQ0FBQztpQkFDSjtxQkFDSTtvQkFDSCxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDM0I7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELFNBQVMsQ0FBQyxNQUE4QjtRQUN0QyxJQUFHLE1BQU07WUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzt1SEF6RFUseUJBQXlCOzJHQUF6Qix5QkFBeUIsNEpBUW5CLHNCQUFzQixnREFWN0IsMkJBQTJCOzRGQUUxQix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7aUlBVVMsWUFBWTtzQkFEbkIsZUFBZTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTlELFVBQVU7c0JBRFQsS0FBSztnQkFJTixNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuL3ZhbGlkYXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWEJhc2VFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXZhbGlkYXRpb24tZm9ybScsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cblxuICBwcml2YXRlIHdpZGdldHM6IEFYVmFsaWRhdGFibGVDb21wb25lbnRbXSA9IFtdO1xuXG5cbiAgQENvbnRlbnRDaGlsZHJlbihBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgd2lkZ2V0c1F1ZXJ5OiBRdWVyeUxpc3Q8QVhWYWxpZGF0YWJsZUNvbXBvbmVudD47XG5cbiAgQElucHV0KClcbiAgdmFsaWRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0JyA9ICdzdWJtaXQnO1xuXG4gIEBPdXRwdXQoKVxuICBvbkluaXQ6IEV2ZW50RW1pdHRlcjxBWEJhc2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PigpO1xuXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub25Jbml0LmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlKCk6IFByb21pc2U8QVhWYWxpZGF0aW9uUmVzdWx0PiB7XG4gICAgdGhpcy53aWRnZXRzLnB1c2goLi4udGhpcy53aWRnZXRzUXVlcnkudG9BcnJheSgpLmZpbHRlcihjID0+ICF0aGlzLndpZGdldHMuaW5jbHVkZXMoYykpKTtcbiAgICAvL1xuICAgIHRoaXMud2lkZ2V0cy5mb3JFYWNoKHcgPT4ge1xuICAgICAgaWYgKHcudmFsaWRhdGlvbiAmJiB3LnZhbGlkYXRpb24udmFsaWRhdGVPbiA9PSBudWxsKSB7XG4gICAgICAgIHcudmFsaWRhdGlvbi52YWxpZGF0ZU9uID0gdGhpcy52YWxpZGF0ZU9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFYVmFsaWRhdGlvblJlc3VsdD4ocmVzb2x2ZSA9PiB7XG4gICAgICBpZiAoIXRoaXMud2lkZ2V0cyB8fCB0aGlzLndpZGdldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBQcm9taXNlLmFsbCh0aGlzLndpZGdldHMubWFwKChjKSA9PiBjLnZhbGlkYXRlKCkpKS50aGVuKChydWxlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZhaWxlZCA9IHJ1bGVzLmZpbHRlcigoYzogYW55KSA9PiAhYy5yZXN1bHQpO1xuICAgICAgICBpZiAoZmFpbGVkLmxlbmd0aCkge1xuICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgcmVzdWx0OiBmYWxzZSxcbiAgICAgICAgICAgIGl0ZW1zOiBmYWlsZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgYWRkV2lkZ2V0KHdpZGdldDogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCkge1xuICAgIGlmKHdpZGdldClcbiAgICAgIHRoaXMud2lkZ2V0cy5wdXNoKHdpZGdldCk7XG4gIH1cblxufVxuIl19
|
@@ -0,0 +1,111 @@
|
|
1
|
+
import { Component, ElementRef, Inject, Input, Optional } from '@angular/core';
|
2
|
+
import { AXTranslator } from '@acorex/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
// @dynamic
|
5
|
+
export class AXValidationRules {
|
6
|
+
static addRule(name, rule) {
|
7
|
+
const exists = AXValidationRules.get(name);
|
8
|
+
if (exists) {
|
9
|
+
exists.rule = rule;
|
10
|
+
}
|
11
|
+
else {
|
12
|
+
AXValidationRules.registredRules.push({
|
13
|
+
name,
|
14
|
+
rule
|
15
|
+
});
|
16
|
+
}
|
17
|
+
}
|
18
|
+
static get(name) {
|
19
|
+
return this.registredRules.find(c => c.name === name);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
AXValidationRules.registredRules = [];
|
23
|
+
export class AXValidationRuleComponent {
|
24
|
+
constructor(ref) {
|
25
|
+
this.ref = ref;
|
26
|
+
this.type = 'required';
|
27
|
+
this.enabled = true;
|
28
|
+
if (ref)
|
29
|
+
ref.nativeElement["__axContext__"] = this;
|
30
|
+
}
|
31
|
+
validate(value) {
|
32
|
+
if (this.enabled === false) {
|
33
|
+
return Promise.resolve({ result: true });
|
34
|
+
}
|
35
|
+
const regRule = AXValidationRules.get(this.type);
|
36
|
+
if (regRule) {
|
37
|
+
return this.internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
return this.internalValidate(this.type, value, this.message, this.value);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
internalValidate(type, value, message, ruleValue) {
|
44
|
+
return new Promise(resolve => {
|
45
|
+
switch (type) {
|
46
|
+
case 'required':
|
47
|
+
resolve({
|
48
|
+
message: message || AXTranslator.get('validation.messages.required'),
|
49
|
+
result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))
|
50
|
+
});
|
51
|
+
break;
|
52
|
+
case 'regex':
|
53
|
+
const ex = new RegExp(ruleValue);
|
54
|
+
resolve({
|
55
|
+
message: message || AXTranslator.get('validation.messages.regex'),
|
56
|
+
result: ex.test(value)
|
57
|
+
});
|
58
|
+
break;
|
59
|
+
case 'custom':
|
60
|
+
case 'callback':
|
61
|
+
if (typeof ruleValue === 'function') {
|
62
|
+
const res = {};
|
63
|
+
res.message = message;
|
64
|
+
const val = ruleValue({ value, message });
|
65
|
+
if (val instanceof Promise) {
|
66
|
+
val.then(c => {
|
67
|
+
res.result = c;
|
68
|
+
}).catch(c => {
|
69
|
+
res.result = false;
|
70
|
+
}).finally(() => {
|
71
|
+
resolve(res);
|
72
|
+
});
|
73
|
+
}
|
74
|
+
else {
|
75
|
+
res.result = val;
|
76
|
+
resolve(res);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
resolve({ result: true });
|
81
|
+
}
|
82
|
+
break;
|
83
|
+
default:
|
84
|
+
resolve({ result: true });
|
85
|
+
}
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
AXValidationRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationRuleComponent, deps: [{ token: ElementRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
90
|
+
AXValidationRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXValidationRuleComponent, selector: "ax-validation-rule", inputs: { type: "type", message: "message", value: "value", enabled: "enabled" }, ngImport: i0, template: '', isInline: true });
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationRuleComponent, decorators: [{
|
92
|
+
type: Component,
|
93
|
+
args: [{
|
94
|
+
selector: 'ax-validation-rule',
|
95
|
+
template: ''
|
96
|
+
}]
|
97
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
98
|
+
type: Inject,
|
99
|
+
args: [ElementRef]
|
100
|
+
}, {
|
101
|
+
type: Optional
|
102
|
+
}] }]; }, propDecorators: { type: [{
|
103
|
+
type: Input
|
104
|
+
}], message: [{
|
105
|
+
type: Input
|
106
|
+
}], value: [{
|
107
|
+
type: Input
|
108
|
+
}], enabled: [{
|
109
|
+
type: Input
|
110
|
+
}] } });
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1ydWxlLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJ1bGUud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRzVDLFdBQVc7QUFDWCxNQUFNLE9BQU8saUJBQWlCO0lBR3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBWSxFQUFFLElBQXNCO1FBQ3hELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQ0k7WUFDSCxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUNwQyxJQUFJO2dCQUNKLElBQUk7YUFDTCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7QUFqQmMsZ0NBQWMsR0FBK0MsRUFBRSxDQUFDO0FBeUJqRixNQUFNLE9BQU8seUJBQXlCO0lBWXBDLFlBR1UsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQWIxQixTQUFJLEdBQTBCLFVBQVUsQ0FBQztRQU96QyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBT3RCLElBQUksR0FBRztZQUNMLEdBQUcsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEg7YUFDSTtZQUNILE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQUdPLGdCQUFnQixDQUFDLElBQVksRUFBRSxLQUFXLEVBQUUsT0FBZ0IsRUFBRSxTQUFlO1FBQ25GLE9BQU8sSUFBSSxPQUFPLENBQXlCLE9BQU8sQ0FBQyxFQUFFO1lBQ25ELFFBQVEsSUFBSSxFQUFFO2dCQUNaLEtBQUssVUFBVTtvQkFDYixPQUFPLENBQUM7d0JBQ04sT0FBTyxFQUFFLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDO3dCQUNwRSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUM5RyxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pDLE9BQU8sQ0FBQzt3QkFDTixPQUFPLEVBQUUsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7d0JBQ2pFLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztxQkFDdkIsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBQ1IsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxVQUFVO29CQUNiLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxFQUFFO3dCQUNuQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7d0JBQ3BCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO3dCQUN0QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxHQUFHLFlBQVksT0FBTyxFQUFFOzRCQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dDQUNYLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOzRCQUNqQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0NBQ1gsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7NEJBQ3JCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0NBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUNmLENBQUMsQ0FBQyxDQUFDO3lCQUNKOzZCQUNJOzRCQUNILEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDOzRCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQ2Q7cUJBQ0Y7eUJBQ0k7d0JBQ0gsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7cUJBQzNCO29CQUNELE1BQU07Z0JBQ1I7b0JBQ0UsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQTlFVSx5QkFBeUIsa0JBYTFCLFVBQVU7MkdBYlQseUJBQXlCLDRJQUYxQixFQUFFOzRGQUVELHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsRUFBRTtpQkFDYjs7MEJBY0ksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsUUFBUTs0Q0FaWCxJQUFJO3NCQURILEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgaW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQsIEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVUeXBlcyB9IGZyb20gJy4vdmFsaWRhdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uUnVsZXMge1xuICBwcml2YXRlIHN0YXRpYyByZWdpc3RyZWRSdWxlczogeyBuYW1lOiBzdHJpbmcsIHJ1bGU6IEFYVmFsaWRhdGlvblJ1bGUgfVtdID0gW107XG5cbiAgcHVibGljIHN0YXRpYyBhZGRSdWxlKG5hbWU6IHN0cmluZywgcnVsZTogQVhWYWxpZGF0aW9uUnVsZSkge1xuICAgIGNvbnN0IGV4aXN0cyA9IEFYVmFsaWRhdGlvblJ1bGVzLmdldChuYW1lKTtcbiAgICBpZiAoZXhpc3RzKSB7XG4gICAgICBleGlzdHMucnVsZSA9IHJ1bGU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgQVhWYWxpZGF0aW9uUnVsZXMucmVnaXN0cmVkUnVsZXMucHVzaCh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHJ1bGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJlZFJ1bGVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdmFsaWRhdGlvbi1ydWxlJyxcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQgaW1wbGVtZW50cyBBWFZhbGlkYXRpb25SdWxlIHtcbiAgQElucHV0KClcbiAgdHlwZTogQVhWYWxpZGF0aW9uUnVsZVR5cGVzID0gJ3JlcXVpcmVkJztcbiAgQElucHV0KClcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICB2YWx1ZTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChFbGVtZW50UmVmKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSByZWY/OiBFbGVtZW50UmVmKSB7XG4gICAgaWYgKHJlZilcbiAgICAgIHJlZi5uYXRpdmVFbGVtZW50W1wiX19heENvbnRleHRfX1wiXSA9IHRoaXM7XG4gIH1cblxuICB2YWxpZGF0ZSh2YWx1ZTogYW55KTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlZ1J1bGUgPSBBWFZhbGlkYXRpb25SdWxlcy5nZXQodGhpcy50eXBlKTtcbiAgICBpZiAocmVnUnVsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxWYWxpZGF0ZShyZWdSdWxlLnJ1bGUudHlwZSwgdmFsdWUsIHRoaXMubWVzc2FnZSB8fCByZWdSdWxlLnJ1bGUubWVzc2FnZSwgcmVnUnVsZS5ydWxlLnZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFZhbGlkYXRlKHRoaXMudHlwZSwgdmFsdWUsIHRoaXMubWVzc2FnZSwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cblxuICBwcml2YXRlIGludGVybmFsVmFsaWRhdGUodHlwZTogc3RyaW5nLCB2YWx1ZT86IGFueSwgbWVzc2FnZT86IHN0cmluZywgcnVsZVZhbHVlPzogYW55KTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+KHJlc29sdmUgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgQVhUcmFuc2xhdG9yLmdldCgndmFsaWRhdGlvbi5tZXNzYWdlcy5yZXF1aXJlZCcpLFxuICAgICAgICAgICAgcmVzdWx0OiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9ICcnICYmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWdleCc6XG4gICAgICAgICAgY29uc3QgZXggPSBuZXcgUmVnRXhwKHJ1bGVWYWx1ZSk7XG4gICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlIHx8IEFYVHJhbnNsYXRvci5nZXQoJ3ZhbGlkYXRpb24ubWVzc2FnZXMucmVnZXgnKSxcbiAgICAgICAgICAgIHJlc3VsdDogZXgudGVzdCh2YWx1ZSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgY2FzZSAnY2FsbGJhY2snOlxuICAgICAgICAgIGlmICh0eXBlb2YgcnVsZVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCByZXM6IGFueSA9IHt9O1xuICAgICAgICAgICAgcmVzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgdmFsID0gcnVsZVZhbHVlKHsgdmFsdWUsIG1lc3NhZ2UgfSk7XG4gICAgICAgICAgICBpZiAodmFsIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICB2YWwudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICByZXMucmVzdWx0ID0gYztcbiAgICAgICAgICAgICAgfSkuY2F0Y2goYyA9PiB7XG4gICAgICAgICAgICAgICAgcmVzLnJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHJlcy5yZXN1bHQgPSB2YWw7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB0eXBlIEFYVmFsaWRhdGlvblJ1bGVUeXBlcyA9ICdyZXF1aXJlZCcgfCAncmVnZXgnIHwgJ2NhbGxiYWNrJyB8ICdjdXN0b20nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYVmFsaWRhdGlvblJ1bGUge1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICB0eXBlOiBBWFZhbGlkYXRpb25SdWxlVHlwZXM7XG4gIHZhbHVlPzogYW55O1xuICBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgcmVzdWx0OiBib29sZWFuO1xuICB0YXJnZXQ/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUmVzdWx0IHtcbiAgcmVzdWx0OiBib29sZWFuO1xuICBpdGVtcz86IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHRbXTtcbn1cblxuXG4iXX0=
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import { Component, Input, Output, EventEmitter, Injectable, ElementRef, Optional, Inject } from '@angular/core';
|
2
|
+
import { AXValidationRuleComponent } from './validation-rule.widget';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AXValidation {
|
5
|
+
constructor() {
|
6
|
+
this.validateOn = 'submit';
|
7
|
+
}
|
8
|
+
validate(value) {
|
9
|
+
if (!this.rules || this.rules.length === 0) {
|
10
|
+
return Promise.resolve({ result: true });
|
11
|
+
}
|
12
|
+
return new Promise(resolve => {
|
13
|
+
Promise.all(this.rules.map(c => {
|
14
|
+
if (c instanceof AXValidationRuleComponent) {
|
15
|
+
return c.validate(value);
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
const v = new AXValidationRuleComponent();
|
19
|
+
Object.assign(v, c);
|
20
|
+
return v.validate(value);
|
21
|
+
}
|
22
|
+
})).then(d => {
|
23
|
+
const error = d.find(c => c.result === false);
|
24
|
+
if (error) {
|
25
|
+
resolve(error);
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
resolve({ result: true });
|
29
|
+
}
|
30
|
+
});
|
31
|
+
});
|
32
|
+
}
|
33
|
+
}
|
34
|
+
AXValidation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
35
|
+
AXValidation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidation });
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidation, decorators: [{
|
37
|
+
type: Injectable
|
38
|
+
}] });
|
39
|
+
export class AXValidationComponent extends AXValidation {
|
40
|
+
constructor(ref) {
|
41
|
+
super();
|
42
|
+
this.ref = ref;
|
43
|
+
this.rulesChange = new EventEmitter();
|
44
|
+
this.showMessage = true;
|
45
|
+
this._rules = [];
|
46
|
+
this.validateOn = null;
|
47
|
+
}
|
48
|
+
_getComponenets() {
|
49
|
+
return Array.from(this.ref?.nativeElement.querySelectorAll('ax-validation-rule')).map(c => c["__axContext__"]);
|
50
|
+
}
|
51
|
+
get rules() {
|
52
|
+
return this._rules;
|
53
|
+
}
|
54
|
+
set rules(v) {
|
55
|
+
this._rules = v;
|
56
|
+
if (this.rulesChange) {
|
57
|
+
this.rulesChange.emit(v);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
ngAfterContentInit() {
|
61
|
+
if (this.rules && this.rules.length === 0) {
|
62
|
+
this.rules.push(...this._getComponenets());
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
AXValidationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationComponent, deps: [{ token: ElementRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
67
|
+
AXValidationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXValidationComponent, selector: "ax-validation", inputs: { rules: "rules", validateOn: "validateOn" }, outputs: { rulesChange: "rulesChange", showMessage: "showMessage" }, providers: [{ provide: AXValidation, useExisting: AXValidationComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXValidationComponent, decorators: [{
|
69
|
+
type: Component,
|
70
|
+
args: [{
|
71
|
+
selector: 'ax-validation',
|
72
|
+
template: '<ng-content></ng-content>',
|
73
|
+
providers: [{ provide: AXValidation, useExisting: AXValidationComponent }]
|
74
|
+
}]
|
75
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
76
|
+
type: Inject,
|
77
|
+
args: [ElementRef]
|
78
|
+
}, {
|
79
|
+
type: Optional
|
80
|
+
}] }]; }, propDecorators: { rulesChange: [{
|
81
|
+
type: Output
|
82
|
+
}], showMessage: [{
|
83
|
+
type: Output
|
84
|
+
}], rules: [{
|
85
|
+
type: Input
|
86
|
+
}], validateOn: [{
|
87
|
+
type: Input
|
88
|
+
}] } });
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBOEIsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUtyRSxNQUFNLE9BQWdCLFlBQVk7SUFEbEM7UUFJRSxlQUFVLEdBQWlDLFFBQVEsQ0FBQztLQThCckQ7SUEzQkMsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBeUIsT0FBTyxDQUFDLEVBQUU7WUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVkseUJBQXlCLEVBQUU7b0JBQzFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDMUI7cUJBQ0k7b0JBQ0gsTUFBTSxDQUFDLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO29CQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDcEIsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMxQjtZQUNILENBQUMsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNULE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLEtBQUssRUFBRTtvQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUMzQjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswR0EvQm1CLFlBQVk7OEdBQVosWUFBWTs0RkFBWixZQUFZO2tCQURqQyxVQUFVOztBQTBDWCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQU1yRCxZQUdVLEdBQWdCO1FBRXhCLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQU8xQixnQkFBVyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUd2RixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVwQixXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQWN4QyxlQUFVLEdBQWlDLElBQUksQ0FBQztJQXZCaEQsQ0FBQztJQVZELGVBQWU7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQXFCLENBQUMsQ0FBQztJQUNySSxDQUFDO0lBbUJELElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBcUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQU1ELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOzttSEExQ1UscUJBQXFCLGtCQU90QixVQUFVO3VHQVBULHFCQUFxQixtS0FGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUMsaURBRGhFLDJCQUEyQjs0RkFHMUIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDO2lCQUMzRTs7MEJBUUksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsUUFBUTs0Q0FRWCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQU1JLEtBQUs7c0JBRGYsS0FBSztnQkFZTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZUNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdGlvbi1ydWxlLndpZGdldCc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnLi92YWxpZGF0aW9uLmNsYXNzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhWYWxpZGF0aW9uIHtcblxuICBhYnN0cmFjdCBydWxlczogQVhWYWxpZGF0aW9uUnVsZVtdO1xuICB2YWxpZGF0ZU9uOiAnYmx1cicgfCAnY2hhbmdlJyB8ICdzdWJtaXQnID0gJ3N1Ym1pdCc7XG4gIHNob3dNZXNzYWdlOiBib29sZWFuO1xuXG4gIHZhbGlkYXRlKHZhbHVlOiBhbnkpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICBpZiAoIXRoaXMucnVsZXMgfHwgdGhpcy5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PihyZXNvbHZlID0+IHtcbiAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICB0aGlzLnJ1bGVzLm1hcChjID0+IHtcbiAgICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjLnZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB2ID0gbmV3IEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQoKTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odiwgYyk7XG4gICAgICAgICAgICByZXR1cm4gdi52YWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKS50aGVuKGQgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9IGQuZmluZChjID0+IGMucmVzdWx0ID09PSBmYWxzZSk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlc29sdmUoZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC12YWxpZGF0aW9uJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRpb24sIHVzZUV4aXN0aW5nOiBBWFZhbGlkYXRpb25Db21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQVhWYWxpZGF0aW9uIHtcblxuICBfZ2V0Q29tcG9uZW5ldHMoKTogQVhWYWxpZGF0aW9uUnVsZVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdheC12YWxpZGF0aW9uLXJ1bGUnKSkubWFwKGMgPT4gY1tcIl9fYXhDb250ZXh0X19cIl0gYXMgQVhWYWxpZGF0aW9uUnVsZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEVsZW1lbnRSZWYpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwcml2YXRlIHJlZj86IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG5cbiAgQE91dHB1dCgpXG4gIHJ1bGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhWYWxpZGF0aW9uUnVsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWxpZGF0aW9uUnVsZVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzaG93TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfcnVsZXM6IEFYVmFsaWRhdGlvblJ1bGVbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcnVsZXMoKTogQVhWYWxpZGF0aW9uUnVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fcnVsZXM7XG4gIH1cbiAgcHVibGljIHNldCBydWxlcyh2OiBBWFZhbGlkYXRpb25SdWxlW10pIHtcbiAgICB0aGlzLl9ydWxlcyA9IHY7XG4gICAgaWYgKHRoaXMucnVsZXNDaGFuZ2UpIHtcbiAgICAgIHRoaXMucnVsZXNDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICB2YWxpZGF0ZU9uOiAnYmx1cicgfCAnY2hhbmdlJyB8ICdzdWJtaXQnID0gbnVsbDtcblxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5ydWxlcyAmJiB0aGlzLnJ1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5ydWxlcy5wdXNoKC4uLnRoaXMuX2dldENvbXBvbmVuZXRzKCkpO1xuICAgIH1cbiAgfVxufVxuIl19
|