ngx-axis-appforge 0.0.3 → 0.0.4
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/.editorconfig +17 -0
- package/angular.json +40 -0
- package/axis-components/badge/badge.css +3 -0
- package/axis-components/badge/badge.html +20 -0
- package/axis-components/badge/badge.options.ts +23 -0
- package/axis-components/badge/badge.ts +17 -0
- package/axis-components/badge/design/config.ts +52 -0
- package/axis-components/badge/design/ng-package.json +5 -0
- package/axis-components/badge/design/setting/setting.css +0 -0
- package/axis-components/badge/design/setting/setting.html +181 -0
- package/axis-components/badge/design/setting/setting.ts +126 -0
- package/axis-components/badge/ng-package.json +5 -0
- package/axis-components/button/button.css +3 -0
- package/axis-components/button/button.html +13 -0
- package/axis-components/button/button.options.ts +17 -0
- package/axis-components/button/button.ts +56 -0
- package/axis-components/button/design/config.ts +30 -0
- package/axis-components/button/design/ng-package.json +5 -0
- package/axis-components/button/design/setting/setting.css +0 -0
- package/axis-components/button/design/setting/setting.html +151 -0
- package/axis-components/button/design/setting/setting.ts +76 -0
- package/axis-components/button/ng-package.json +5 -0
- package/axis-components/cmp-map.ts +52 -0
- package/axis-components/cmplib.ts +9 -0
- package/axis-components/desc/desc.css +8 -0
- package/axis-components/desc/desc.html +19 -0
- package/axis-components/desc/desc.options.ts +24 -0
- package/axis-components/desc/desc.ts +29 -0
- package/axis-components/desc/design/config.ts +113 -0
- package/axis-components/desc/design/desc-item-setting/desc-item-setting.css +0 -0
- package/axis-components/desc/design/desc-item-setting/desc-item-setting.html +47 -0
- package/axis-components/desc/design/desc-item-setting/desc-item-setting.ts +40 -0
- package/axis-components/desc/design/desc-items-menu/desc-items-menu.css +0 -0
- package/axis-components/desc/design/desc-items-menu/desc-items-menu.html +9 -0
- package/axis-components/desc/design/desc-items-menu/desc-items-menu.ts +23 -0
- package/axis-components/desc/design/desc-setting/desc-setting.css +0 -0
- package/axis-components/desc/design/desc-setting/desc-setting.html +76 -0
- package/axis-components/desc/design/desc-setting/desc-setting.ts +51 -0
- package/axis-components/desc/design/ng-package.json +5 -0
- package/axis-components/desc/ng-package.json +5 -0
- package/axis-components/design/cmplib/cmplib.css +5 -0
- package/axis-components/design/cmplib/cmplib.html +52 -0
- package/axis-components/design/cmplib/cmplib.ts +96 -0
- package/axis-components/design/design/config.ts +29 -0
- package/axis-components/design/design/ng-package.json +5 -0
- package/axis-components/design/design/setting/setting.css +0 -0
- package/axis-components/design/design/setting/setting.html +33 -0
- package/axis-components/design/design/setting/setting.ts +33 -0
- package/axis-components/design/design.css +15 -0
- package/axis-components/design/design.html +51 -0
- package/axis-components/design/design.options.ts +9 -0
- package/axis-components/design/design.ts +509 -0
- package/axis-components/design/ng-package.json +5 -0
- package/axis-components/design/preview/drag.service.ts +148 -0
- package/axis-components/design/preview/drop-handler.ts +56 -0
- package/axis-components/design/preview/preview.css +3 -0
- package/axis-components/design/preview/preview.html +1 -0
- package/axis-components/design/preview/preview.ts +250 -0
- package/axis-components/design/preview/select.service.ts +140 -0
- package/axis-components/design/shortcut-key.ts +160 -0
- package/axis-components/design/toolbar/toolbar.css +24 -0
- package/axis-components/design/toolbar/toolbar.html +96 -0
- package/axis-components/design/toolbar/toolbar.ts +65 -0
- package/axis-components/design/tree/drag-drop.ts +125 -0
- package/axis-components/design/tree/tree.css +30 -0
- package/axis-components/design/tree/tree.html +49 -0
- package/axis-components/design/tree/tree.ts +292 -0
- package/axis-components/dynamic-container/design/config.ts +30 -0
- package/axis-components/dynamic-container/design/ng-package.json +5 -0
- package/axis-components/dynamic-container/design/setting/setting.css +0 -0
- package/axis-components/dynamic-container/design/setting/setting.html +20 -0
- package/axis-components/dynamic-container/design/setting/setting.ts +30 -0
- package/axis-components/dynamic-container/dynamic-container.css +3 -0
- package/axis-components/dynamic-container/dynamic-container.html +2 -0
- package/axis-components/dynamic-container/dynamic-container.options.ts +6 -0
- package/axis-components/dynamic-container/dynamic-container.ts +17 -0
- package/axis-components/dynamic-container/ng-package.json +5 -0
- package/axis-components/editor/editor.css +47 -0
- package/axis-components/editor/editor.html +10 -0
- package/axis-components/editor/editor.options.ts +10 -0
- package/axis-components/editor/editor.ts +86 -0
- package/axis-components/editor/ng-package.json +5 -0
- package/axis-components/examples/examples/badge.ts +17 -0
- package/axis-components/examples/examples/button.ts +38 -0
- package/axis-components/examples/examples/desc.ts +31 -0
- package/axis-components/examples/examples/design.ts +15 -0
- package/axis-components/examples/examples/dynamic-container.ts +21 -0
- package/axis-components/examples/examples/flex.ts +18 -0
- package/axis-components/examples/examples/form-item.ts +39 -0
- package/axis-components/examples/examples/form.ts +315 -0
- package/axis-components/examples/examples/icon.ts +16 -0
- package/axis-components/examples/examples/image.ts +15 -0
- package/axis-components/examples/examples/input-component.ts +15 -0
- package/axis-components/examples/examples/input-icon.ts +15 -0
- package/axis-components/examples/examples/input-json.ts +15 -0
- package/axis-components/examples/examples/input-number.ts +15 -0
- package/axis-components/examples/examples/input.ts +15 -0
- package/axis-components/examples/examples/modal.ts +15 -0
- package/axis-components/examples/examples/scope.ts +17 -0
- package/axis-components/examples/examples/single-selector.ts +25 -0
- package/axis-components/examples/examples/splitter.ts +36 -0
- package/axis-components/examples/examples/table.ts +126 -0
- package/axis-components/examples/examples/text.ts +15 -0
- package/axis-components/examples/examples/textarea.ts +15 -0
- package/axis-components/examples/examples/tree-selector.ts +35 -0
- package/axis-components/examples/examples/upload.ts +15 -0
- package/axis-components/examples/examples.ts +73 -0
- package/axis-components/flex/design/config.ts +49 -0
- package/axis-components/flex/design/ng-package.json +5 -0
- package/axis-components/flex/design/setting/setting.css +0 -0
- package/axis-components/flex/design/setting/setting.html +72 -0
- package/axis-components/flex/design/setting/setting.ts +43 -0
- package/axis-components/flex/flex.css +5 -0
- package/axis-components/flex/flex.html +6 -0
- package/axis-components/flex/flex.options.ts +12 -0
- package/axis-components/flex/flex.ts +15 -0
- package/axis-components/flex/ng-package.json +5 -0
- package/axis-components/form/design/config.ts +71 -0
- package/axis-components/form/design/ng-package.json +5 -0
- package/axis-components/form/design/setting/setting.css +0 -0
- package/axis-components/form/design/setting/setting.html +21 -0
- package/axis-components/form/design/setting/setting.ts +31 -0
- package/axis-components/form/form.css +3 -0
- package/axis-components/form/form.html +3 -0
- package/axis-components/form/form.options.ts +9 -0
- package/axis-components/form/form.ts +121 -0
- package/axis-components/form/ng-package.json +5 -0
- package/axis-components/form-item/design/config.ts +43 -0
- package/axis-components/form-item/design/ng-package.json +5 -0
- package/axis-components/form-item/design/setting/input-validator/input-validator.css +8 -0
- package/axis-components/form-item/design/setting/input-validator/input-validator.html +140 -0
- package/axis-components/form-item/design/setting/input-validator/input-validator.ts +158 -0
- package/axis-components/form-item/design/setting/setting.css +0 -0
- package/axis-components/form-item/design/setting/setting.html +39 -0
- package/axis-components/form-item/design/setting/setting.ts +40 -0
- package/axis-components/form-item/form-item.css +4 -0
- package/axis-components/form-item/form-item.html +16 -0
- package/axis-components/form-item/form-item.options.ts +12 -0
- package/axis-components/form-item/form-item.ts +128 -0
- package/axis-components/form-item/ng-package.json +5 -0
- package/axis-components/icon/design/config.ts +29 -0
- package/axis-components/icon/design/ng-package.json +5 -0
- package/axis-components/icon/design/setting/setting.css +0 -0
- package/axis-components/icon/design/setting/setting.html +67 -0
- package/axis-components/icon/design/setting/setting.ts +48 -0
- package/axis-components/icon/icon.css +0 -0
- package/axis-components/icon/icon.html +7 -0
- package/axis-components/icon/icon.options.ts +10 -0
- package/axis-components/icon/icon.ts +17 -0
- package/axis-components/icon/ng-package.json +5 -0
- package/axis-components/image/design/config.ts +30 -0
- package/axis-components/image/design/ng-package.json +5 -0
- package/axis-components/image/design/setting/setting.css +0 -0
- package/axis-components/image/design/setting/setting.html +42 -0
- package/axis-components/image/design/setting/setting.ts +37 -0
- package/axis-components/image/image.css +58 -0
- package/axis-components/image/image.html +14 -0
- package/axis-components/image/image.options.ts +8 -0
- package/axis-components/image/image.ts +29 -0
- package/axis-components/image/ng-package.json +5 -0
- package/axis-components/input/design/config.ts +80 -0
- package/axis-components/input/design/ng-package.json +5 -0
- package/axis-components/input/design/setting/setting.css +0 -0
- package/axis-components/input/design/setting/setting.html +79 -0
- package/axis-components/input/design/setting/setting.ts +51 -0
- package/axis-components/input/input.css +4 -0
- package/axis-components/input/input.html +32 -0
- package/axis-components/input/input.options.ts +14 -0
- package/axis-components/input/input.ts +53 -0
- package/axis-components/input/ng-package.json +5 -0
- package/axis-components/input-component/design/config.ts +30 -0
- package/axis-components/input-component/design/ng-package.json +5 -0
- package/axis-components/input-component/design/setting/setting.css +0 -0
- package/axis-components/input-component/design/setting/setting.html +33 -0
- package/axis-components/input-component/design/setting/setting.ts +33 -0
- package/axis-components/input-component/input-component.css +4 -0
- package/axis-components/input-component/input-component.html +25 -0
- package/axis-components/input-component/input-component.options.ts +7 -0
- package/axis-components/input-component/input-component.ts +50 -0
- package/axis-components/input-component/ng-package.json +5 -0
- package/axis-components/input-icon/design/config.ts +30 -0
- package/axis-components/input-icon/design/ng-package.json +5 -0
- package/axis-components/input-icon/design/setting/setting.css +0 -0
- package/axis-components/input-icon/design/setting/setting.html +29 -0
- package/axis-components/input-icon/design/setting/setting.ts +33 -0
- package/axis-components/input-icon/input-icon.css +4 -0
- package/axis-components/input-icon/input-icon.html +70 -0
- package/axis-components/input-icon/input-icon.options.ts +7 -0
- package/axis-components/input-icon/input-icon.ts +51 -0
- package/axis-components/input-icon/ng-package.json +5 -0
- package/axis-components/input-json/design/config.ts +29 -0
- package/axis-components/input-json/design/ng-package.json +5 -0
- package/axis-components/input-json/design/setting/setting.css +0 -0
- package/axis-components/input-json/design/setting/setting.html +7 -0
- package/axis-components/input-json/design/setting/setting.ts +26 -0
- package/axis-components/input-json/input-json.css +4 -0
- package/axis-components/input-json/input-json.html +19 -0
- package/axis-components/input-json/input-json.ts +67 -0
- package/axis-components/input-json/ng-package.json +5 -0
- package/axis-components/input-number/design/config.ts +30 -0
- package/axis-components/input-number/design/ng-package.json +5 -0
- package/axis-components/input-number/design/setting/setting.css +0 -0
- package/axis-components/input-number/design/setting/setting.html +118 -0
- package/axis-components/input-number/design/setting/setting.ts +66 -0
- package/axis-components/input-number/input-number.css +22 -0
- package/axis-components/input-number/input-number.html +11 -0
- package/axis-components/input-number/input-number.options.ts +17 -0
- package/axis-components/input-number/input-number.ts +30 -0
- package/axis-components/input-number/ng-package.json +5 -0
- package/axis-components/modal/design/config.ts +50 -0
- package/axis-components/modal/design/ng-package.json +5 -0
- package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.css +0 -0
- package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.html +15 -0
- package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.ts +34 -0
- package/axis-components/modal/design/setting/setting.css +0 -0
- package/axis-components/modal/design/setting/setting.html +139 -0
- package/axis-components/modal/design/setting/setting.ts +92 -0
- package/axis-components/modal/modal.css +0 -0
- package/axis-components/modal/modal.html +7 -0
- package/axis-components/modal/modal.options.ts +20 -0
- package/axis-components/modal/modal.ts +57 -0
- package/axis-components/modal/ng-package.json +5 -0
- package/axis-components/ng-package.json +5 -0
- package/axis-components/scope/design/config.ts +59 -0
- package/axis-components/scope/design/ng-package.json +5 -0
- package/axis-components/scope/design/setting/datasource-editor/datasource-editor.css +28 -0
- package/axis-components/scope/design/setting/datasource-editor/datasource-editor.html +188 -0
- package/axis-components/scope/design/setting/datasource-editor/datasource-editor.ts +245 -0
- package/axis-components/scope/design/setting/setting.css +0 -0
- package/axis-components/scope/design/setting/setting.html +19 -0
- package/axis-components/scope/design/setting/setting.ts +30 -0
- package/axis-components/scope/ng-package.json +5 -0
- package/axis-components/scope/scope.css +6 -0
- package/axis-components/scope/scope.html +4 -0
- package/axis-components/scope/scope.options.ts +8 -0
- package/axis-components/scope/scope.ts +48 -0
- package/axis-components/single-selector/design/config.ts +30 -0
- package/axis-components/single-selector/design/ng-package.json +5 -0
- package/axis-components/single-selector/design/setting/setting.css +0 -0
- package/axis-components/single-selector/design/setting/setting.html +164 -0
- package/axis-components/single-selector/design/setting/setting.ts +80 -0
- package/axis-components/single-selector/ng-package.json +5 -0
- package/axis-components/single-selector/single-selector.css +8 -0
- package/axis-components/single-selector/single-selector.html +51 -0
- package/axis-components/single-selector/single-selector.options.ts +22 -0
- package/axis-components/single-selector/single-selector.ts +80 -0
- package/axis-components/splitter/design/config.ts +84 -0
- package/axis-components/splitter/design/ng-package.json +5 -0
- package/axis-components/splitter/design/splitter-menu/splitter-menu.css +0 -0
- package/axis-components/splitter/design/splitter-menu/splitter-menu.html +10 -0
- package/axis-components/splitter/design/splitter-menu/splitter-menu.ts +22 -0
- package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.css +0 -0
- package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.html +66 -0
- package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.ts +47 -0
- package/axis-components/splitter/design/splitter-setting/splitter-setting.css +0 -0
- package/axis-components/splitter/design/splitter-setting/splitter-setting.html +28 -0
- package/axis-components/splitter/design/splitter-setting/splitter-setting.ts +30 -0
- package/axis-components/splitter/ng-package.json +5 -0
- package/axis-components/splitter/splitter.css +7 -0
- package/axis-components/splitter/splitter.html +12 -0
- package/axis-components/splitter/splitter.options.ts +18 -0
- package/axis-components/splitter/splitter.ts +40 -0
- package/axis-components/table/design/config.ts +147 -0
- package/axis-components/table/design/ng-package.json +5 -0
- package/axis-components/table/design/table-field-setting/table-field-setting.css +0 -0
- package/axis-components/table/design/table-field-setting/table-field-setting.html +259 -0
- package/axis-components/table/design/table-field-setting/table-field-setting.ts +105 -0
- package/axis-components/table/design/table-fields-menu/table-fields-menu.css +0 -0
- package/axis-components/table/design/table-fields-menu/table-fields-menu.html +9 -0
- package/axis-components/table/design/table-fields-menu/table-fields-menu.ts +24 -0
- package/axis-components/table/design/table-setting/table-setting.css +0 -0
- package/axis-components/table/design/table-setting/table-setting.html +417 -0
- package/axis-components/table/design/table-setting/table-setting.ts +173 -0
- package/axis-components/table/expand.ts +12 -0
- package/axis-components/table/ng-package.json +5 -0
- package/axis-components/table/select.ts +66 -0
- package/axis-components/table/table-setter/table-setter.css +55 -0
- package/axis-components/table/table-setter/table-setter.html +38 -0
- package/axis-components/table/table-setter/table-setter.ts +121 -0
- package/axis-components/table/table.css +5 -0
- package/axis-components/table/table.html +191 -0
- package/axis-components/table/table.options.ts +72 -0
- package/axis-components/table/table.ts +204 -0
- package/axis-components/text/design/config.ts +30 -0
- package/axis-components/text/design/ng-package.json +5 -0
- package/axis-components/text/design/setting/setting.css +0 -0
- package/axis-components/text/design/setting/setting.html +84 -0
- package/axis-components/text/design/setting/setting.ts +54 -0
- package/axis-components/text/ng-package.json +5 -0
- package/axis-components/text/text.css +3 -0
- package/axis-components/text/text.html +17 -0
- package/axis-components/text/text.options.ts +10 -0
- package/axis-components/text/text.ts +54 -0
- package/axis-components/textarea/design/config.ts +30 -0
- package/axis-components/textarea/design/ng-package.json +5 -0
- package/axis-components/textarea/design/setting/setting.css +0 -0
- package/axis-components/textarea/design/setting/setting.html +76 -0
- package/axis-components/textarea/design/setting/setting.ts +55 -0
- package/axis-components/textarea/ng-package.json +5 -0
- package/axis-components/textarea/textarea.css +4 -0
- package/axis-components/textarea/textarea.html +11 -0
- package/axis-components/textarea/textarea.options.ts +13 -0
- package/axis-components/textarea/textarea.ts +49 -0
- package/axis-components/tree-selector/design/config.ts +55 -0
- package/axis-components/tree-selector/design/ng-package.json +5 -0
- package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.css +0 -0
- package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.html +9 -0
- package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.ts +26 -0
- package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.css +0 -0
- package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.html +80 -0
- package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.ts +58 -0
- package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.css +0 -0
- package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.html +235 -0
- package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.ts +87 -0
- package/axis-components/tree-selector/ng-package.json +5 -0
- package/axis-components/tree-selector/tree-selector.css +43 -0
- package/axis-components/tree-selector/tree-selector.html +65 -0
- package/axis-components/tree-selector/tree-selector.options.ts +50 -0
- package/axis-components/tree-selector/tree-selector.ts +252 -0
- package/axis-components/upload/design/config.ts +37 -0
- package/axis-components/upload/design/ng-package.json +5 -0
- package/axis-components/upload/design/setting/setting.css +0 -0
- package/axis-components/upload/design/setting/setting.html +288 -0
- package/axis-components/upload/design/setting/setting.ts +96 -0
- package/axis-components/upload/ng-package.json +5 -0
- package/axis-components/upload/upload.css +3 -0
- package/axis-components/upload/upload.html +36 -0
- package/axis-components/upload/upload.options.ts +29 -0
- package/axis-components/upload/upload.ts +130 -0
- package/core/base/base-menu.ts +22 -0
- package/core/base/base.ts +143 -0
- package/core/base/design-builder.ts +8 -0
- package/core/base/funfield-base.ts +106 -0
- package/core/base/funfield-value-base.ts +53 -0
- package/core/base/value-access.ts +70 -0
- package/core/directives/dynamic.ts +216 -0
- package/core/directives/scope.ts +432 -0
- package/core/models/api.options.ts +5 -0
- package/core/models/base.options.ts +11 -0
- package/core/models/cmplib.ts +7 -0
- package/core/models/data-source.options.ts +11 -0
- package/core/models/data.options.ts +6 -0
- package/core/models/design-build.ts +26 -0
- package/core/models/design-config.ts +14 -0
- package/core/models/design-tree-node.ts +16 -0
- package/core/models/event-desc.ts +28 -0
- package/core/models/event-handler.ts +6 -0
- package/core/models/event.options.ts +14 -0
- package/core/models/examples.ts +21 -0
- package/core/models/form-registe.options.ts +12 -0
- package/core/models/fun-field.options.ts +6 -0
- package/core/models/initobs.ts +8 -0
- package/core/models/options-node.ts +149 -0
- package/core/models/static-data-source.options.ts +4 -0
- package/core/models/trigge-events.options.ts +3 -0
- package/core/models/value-access.options.ts +10 -0
- package/core/ng-package.json +5 -0
- package/core/pipes/how-long.pipe.ts +69 -0
- package/core/public-api.ts +39 -0
- package/core/share/api-handler/api-handler.css +0 -0
- package/core/share/api-handler/api-handler.html +38 -0
- package/core/share/api-handler/api-handler.ts +51 -0
- package/core/share/array-filter-handler/array-filter-handler.css +0 -0
- package/core/share/array-filter-handler/array-filter-handler.html +26 -0
- package/core/share/array-filter-handler/array-filter-handler.ts +65 -0
- package/core/share/array-filter-handler/input-filter-options/filter-options.css +19 -0
- package/core/share/array-filter-handler/input-filter-options/filter-options.html +57 -0
- package/core/share/array-filter-handler/input-filter-options/filter-options.ts +100 -0
- package/core/share/base-design-setting/base-design-setting.css +0 -0
- package/core/share/base-design-setting/base-design-setting.html +50 -0
- package/core/share/base-design-setting/base-design-setting.ts +55 -0
- package/core/share/base-event-handler-descs.ts +100 -0
- package/core/share/common-menu/common-menu.css +0 -0
- package/core/share/common-menu/common-menu.html +21 -0
- package/core/share/common-menu/common-menu.ts +73 -0
- package/core/share/data-handler/data-handler.css +0 -0
- package/core/share/data-handler/data-handler.html +13 -0
- package/core/share/data-handler/data-handler.ts +39 -0
- package/core/share/events-handler.service.ts +185 -0
- package/core/share/fun-field/fun-field.css +55 -0
- package/core/share/fun-field/fun-field.html +175 -0
- package/core/share/fun-field/fun-field.ts +363 -0
- package/core/share/input-trigger/input-trigger.css +16 -0
- package/core/share/input-trigger/input-trigger.html +114 -0
- package/core/share/input-trigger/input-trigger.ts +394 -0
- package/core/share/msg-tip-handler/msg-tip-handler.css +0 -0
- package/core/share/msg-tip-handler/msg-tip-handler.html +40 -0
- package/core/share/msg-tip-handler/msg-tip-handler.ts +46 -0
- package/core/share/refresh-data-source-handler/refresh-data-source-handler.css +0 -0
- package/core/share/refresh-data-source-handler/refresh-data-source-handler.html +29 -0
- package/core/share/refresh-data-source-handler/refresh-data-source-handler.ts +55 -0
- package/core/share/route-handler/route-handler.css +0 -0
- package/core/share/route-handler/route-handler.html +49 -0
- package/core/share/route-handler/route-handler.ts +51 -0
- package/core/share/set-data-source-handler/set-data-source-handler.css +0 -0
- package/core/share/set-data-source-handler/set-data-source-handler.html +23 -0
- package/core/share/set-data-source-handler/set-data-source-handler.ts +44 -0
- package/core/share/simple-menu/simple-menu.css +0 -0
- package/core/share/simple-menu/simple-menu.html +5 -0
- package/core/share/simple-menu/simple-menu.ts +17 -0
- package/core/share/tokens.ts +29 -0
- package/core/share/value-design-setting/value-design-setting.css +0 -0
- package/core/share/value-design-setting/value-design-setting.html +48 -0
- package/core/share/value-design-setting/value-design-setting.ts +54 -0
- package/core/utils/code-name.utils.ts +19 -0
- package/core/utils/components-loader.ts +29 -0
- package/core/utils/declaration.utils.ts +38 -0
- package/core/utils/dynamic.util.ts +57 -0
- package/core/utils/form-validators.ts +160 -0
- package/core/utils/form.util.ts +25 -0
- package/core/utils/http.utils.ts +8 -0
- package/core/utils/object.utils.ts +182 -0
- package/core/utils/scripts-loader.ts +25 -0
- package/ng-package.json +12 -0
- package/package.json +16 -217
- package/providers/ng-package.json +5 -0
- package/{fesm2022/ngx-axis-appforge-providers.mjs → providers/providers.ts} +8 -16
- package/providers/public-api.ts +1 -0
- package/public-api.ts +1 -0
- package/tsconfig.json +35 -0
- package/tsconfig.lib.json +19 -0
- package/tsconfig.lib.prod.json +11 -0
- package/axis-components/badge/design/index.d.ts +0 -5
- package/axis-components/badge/index.d.ts +0 -27
- package/axis-components/button/design/index.d.ts +0 -5
- package/axis-components/button/index.d.ts +0 -32
- package/axis-components/desc/design/index.d.ts +0 -5
- package/axis-components/desc/index.d.ts +0 -30
- package/axis-components/design/design/index.d.ts +0 -5
- package/axis-components/design/index.d.ts +0 -246
- package/axis-components/dynamic-container/design/index.d.ts +0 -5
- package/axis-components/dynamic-container/index.d.ts +0 -14
- package/axis-components/editor/index.d.ts +0 -33
- package/axis-components/flex/design/index.d.ts +0 -5
- package/axis-components/flex/index.d.ts +0 -20
- package/axis-components/form/design/index.d.ts +0 -5
- package/axis-components/form/index.d.ts +0 -30
- package/axis-components/form-item/design/index.d.ts +0 -5
- package/axis-components/form-item/index.d.ts +0 -34
- package/axis-components/icon/design/index.d.ts +0 -5
- package/axis-components/icon/index.d.ts +0 -16
- package/axis-components/image/design/index.d.ts +0 -5
- package/axis-components/image/index.d.ts +0 -16
- package/axis-components/index.d.ts +0 -5
- package/axis-components/input/design/index.d.ts +0 -5
- package/axis-components/input/index.d.ts +0 -27
- package/axis-components/input-component/design/index.d.ts +0 -5
- package/axis-components/input-component/index.d.ts +0 -33
- package/axis-components/input-icon/design/index.d.ts +0 -5
- package/axis-components/input-icon/index.d.ts +0 -24
- package/axis-components/input-json/design/index.d.ts +0 -5
- package/axis-components/input-json/index.d.ts +0 -24
- package/axis-components/input-number/design/index.d.ts +0 -5
- package/axis-components/input-number/index.d.ts +0 -25
- package/axis-components/modal/design/index.d.ts +0 -5
- package/axis-components/modal/index.d.ts +0 -33
- package/axis-components/scope/design/index.d.ts +0 -5
- package/axis-components/scope/index.d.ts +0 -24
- package/axis-components/single-selector/design/index.d.ts +0 -5
- package/axis-components/single-selector/index.d.ts +0 -37
- package/axis-components/splitter/design/index.d.ts +0 -5
- package/axis-components/splitter/index.d.ts +0 -28
- package/axis-components/table/design/index.d.ts +0 -5
- package/axis-components/table/index.d.ts +0 -183
- package/axis-components/text/design/index.d.ts +0 -5
- package/axis-components/text/index.d.ts +0 -24
- package/axis-components/textarea/design/index.d.ts +0 -5
- package/axis-components/textarea/index.d.ts +0 -25
- package/axis-components/tree-selector/design/index.d.ts +0 -5
- package/axis-components/tree-selector/index.d.ts +0 -76
- package/axis-components/upload/design/index.d.ts +0 -5
- package/axis-components/upload/index.d.ts +0 -51
- package/core/index.d.ts +0 -773
- package/fesm2022/ngx-axis-appforge-axis-components-badge-design.mjs +0 -191
- package/fesm2022/ngx-axis-appforge-axis-components-badge-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-badge.mjs +0 -39
- package/fesm2022/ngx-axis-appforge-axis-components-badge.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-button-design.mjs +0 -116
- package/fesm2022/ngx-axis-appforge-axis-components-button-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-button.mjs +0 -78
- package/fesm2022/ngx-axis-appforge-axis-components-button.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-desc-design.mjs +0 -224
- package/fesm2022/ngx-axis-appforge-axis-components-desc-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-desc.mjs +0 -51
- package/fesm2022/ngx-axis-appforge-axis-components-desc.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-design-design.mjs +0 -69
- package/fesm2022/ngx-axis-appforge-axis-components-design-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs +0 -1746
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container-design.mjs +0 -65
- package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container.mjs +0 -26
- package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-editor.mjs +0 -99
- package/fesm2022/ngx-axis-appforge-axis-components-editor.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-flex-design.mjs +0 -98
- package/fesm2022/ngx-axis-appforge-axis-components-flex-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs +0 -31
- package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form-design.mjs +0 -108
- package/fesm2022/ngx-axis-appforge-axis-components-form-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form-item-design.mjs +0 -242
- package/fesm2022/ngx-axis-appforge-axis-components-form-item-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form-item.mjs +0 -144
- package/fesm2022/ngx-axis-appforge-axis-components-form-item.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs +0 -132
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-icon-design.mjs +0 -88
- package/fesm2022/ngx-axis-appforge-axis-components-icon-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-icon.mjs +0 -28
- package/fesm2022/ngx-axis-appforge-axis-components-icon.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-image-design.mjs +0 -75
- package/fesm2022/ngx-axis-appforge-axis-components-image-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-image.mjs +0 -43
- package/fesm2022/ngx-axis-appforge-axis-components-image.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs +0 -70
- package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs +0 -61
- package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-design.mjs +0 -142
- package/fesm2022/ngx-axis-appforge-axis-components-input-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-icon-design.mjs +0 -71
- package/fesm2022/ngx-axis-appforge-axis-components-input-icon-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-icon.mjs +0 -64
- package/fesm2022/ngx-axis-appforge-axis-components-input-icon.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-json-design.mjs +0 -60
- package/fesm2022/ngx-axis-appforge-axis-components-input-json-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs +0 -70
- package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-number-design.mjs +0 -107
- package/fesm2022/ngx-axis-appforge-axis-components-input-number-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-number.mjs +0 -48
- package/fesm2022/ngx-axis-appforge-axis-components-input-number.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input.mjs +0 -68
- package/fesm2022/ngx-axis-appforge-axis-components-input.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-modal-design.mjs +0 -181
- package/fesm2022/ngx-axis-appforge-axis-components-modal-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-modal.mjs +0 -74
- package/fesm2022/ngx-axis-appforge-axis-components-modal.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-scope-design.mjs +0 -330
- package/fesm2022/ngx-axis-appforge-axis-components-scope-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs +0 -55
- package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-single-selector-design.mjs +0 -120
- package/fesm2022/ngx-axis-appforge-axis-components-single-selector-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-single-selector.mjs +0 -102
- package/fesm2022/ngx-axis-appforge-axis-components-single-selector.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-splitter-design.mjs +0 -178
- package/fesm2022/ngx-axis-appforge-axis-components-splitter-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-splitter.mjs +0 -49
- package/fesm2022/ngx-axis-appforge-axis-components-splitter.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs +0 -442
- package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs +0 -452
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-text-design.mjs +0 -95
- package/fesm2022/ngx-axis-appforge-axis-components-text-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-text.mjs +0 -64
- package/fesm2022/ngx-axis-appforge-axis-components-text.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-textarea-design.mjs +0 -94
- package/fesm2022/ngx-axis-appforge-axis-components-textarea-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-textarea.mjs +0 -64
- package/fesm2022/ngx-axis-appforge-axis-components-textarea.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector-design.mjs +0 -222
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs +0 -295
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-upload-design.mjs +0 -146
- package/fesm2022/ngx-axis-appforge-axis-components-upload-design.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components-upload.mjs +0 -156
- package/fesm2022/ngx-axis-appforge-axis-components-upload.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-axis-components.mjs +0 -988
- package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-core.mjs +0 -3169
- package/fesm2022/ngx-axis-appforge-core.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge-providers.mjs.map +0 -1
- package/fesm2022/ngx-axis-appforge.mjs +0 -6
- package/fesm2022/ngx-axis-appforge.mjs.map +0 -1
- package/index.d.ts +0 -2
- package/providers/index.d.ts +0 -13
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NextInfo, DesignBuildResult, DesignBindElementsResult, DesignConfig, OptionsNode, nameCode, SimpleMenu } from "ngx-axis-appforge/core";
|
|
2
|
+
import { Setting } from "./setting/setting";
|
|
3
|
+
|
|
4
|
+
export const Config: DesignConfig = {
|
|
5
|
+
|
|
6
|
+
componentName: "表单项",
|
|
7
|
+
buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {
|
|
8
|
+
return {
|
|
9
|
+
treeNode: new OptionsNode({
|
|
10
|
+
parentId: nextInfo.parentId,
|
|
11
|
+
scopeId: nextInfo.scopeId,
|
|
12
|
+
name: nameCode("表单项", nextInfo.currentObject.name),
|
|
13
|
+
canSetting: true,
|
|
14
|
+
canDrag: true,
|
|
15
|
+
dragType: "component",
|
|
16
|
+
canDrop: true,
|
|
17
|
+
dropType: "component",
|
|
18
|
+
dropObj: nextInfo.currentObject,
|
|
19
|
+
defaultDropIndex: "child",
|
|
20
|
+
parentObj: nextInfo.parentObject,
|
|
21
|
+
indexOfParentObj: nextInfo.indexOfParent,
|
|
22
|
+
rootOptions: nextInfo.currentObject,
|
|
23
|
+
children: [],
|
|
24
|
+
settingType: Setting,
|
|
25
|
+
contextMenu: SimpleMenu,
|
|
26
|
+
icon: "form"
|
|
27
|
+
}),
|
|
28
|
+
next: [
|
|
29
|
+
{
|
|
30
|
+
parentObject: nextInfo.currentObject,
|
|
31
|
+
indexOfParent: "child",
|
|
32
|
+
parentId: nextInfo.currentObject.id,
|
|
33
|
+
scopeId: nextInfo.scopeId
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {
|
|
39
|
+
return {
|
|
40
|
+
[options.id]: { element, dropElement: element.querySelector(".ant-form-item-control-input-content") as HTMLElement ?? element }
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
<nz-collapse [nzBordered]="false">
|
|
2
|
+
<ng-template #addButton>
|
|
3
|
+
<a nz-button nzType="link" style="float: right;" (click)="$event.stopPropagation();openWithCreate()">
|
|
4
|
+
<nz-icon nzType="plus"></nz-icon>
|
|
5
|
+
添加
|
|
6
|
+
</a>
|
|
7
|
+
</ng-template>
|
|
8
|
+
<nz-collapse-panel nzHeader="表单项验证" nzActive [nzExtra]="addButton">
|
|
9
|
+
@if (!value()?.length) {
|
|
10
|
+
<nz-empty nzNotFoundContent="暂无验证器"></nz-empty>
|
|
11
|
+
}@else{
|
|
12
|
+
<div nz-flex nzVertical nzGap="8px" style="padding: 6px;">
|
|
13
|
+
@for (item of value()??[]; track item;let i=$index) {
|
|
14
|
+
<div nz-flex nzGap="8px" nzAlign="center">
|
|
15
|
+
<div style="width: 64px;">
|
|
16
|
+
@switch (item.type) {
|
|
17
|
+
@case ("required") {
|
|
18
|
+
<nz-tag nzColor="magenta">必填验证</nz-tag>
|
|
19
|
+
}
|
|
20
|
+
@case ("length") {
|
|
21
|
+
<nz-tag nzColor="blue">长度验证</nz-tag>
|
|
22
|
+
}
|
|
23
|
+
@case ("value") {
|
|
24
|
+
<nz-tag nzColor="purple">值验证</nz-tag>
|
|
25
|
+
}
|
|
26
|
+
@case ("regex") {
|
|
27
|
+
<nz-tag nzColor="cyan">正则验证</nz-tag>
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
</div>
|
|
31
|
+
<div class="validator-desc">{{validatorDesc()?.[i]}}</div>
|
|
32
|
+
<div>
|
|
33
|
+
<a nz-button nzType="link" nzSize="small" (click)="openWithUpdate(i)">
|
|
34
|
+
<i nz-icon nzType="edit" nzTheme="outline"></i>
|
|
35
|
+
</a>
|
|
36
|
+
<a nz-button nzType="link" nzSize="small" nzDanger (click)="deleteValidator(i)">
|
|
37
|
+
<i nz-icon nzType="delete" nzTheme="outline"></i>
|
|
38
|
+
</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
}
|
|
42
|
+
</div>
|
|
43
|
+
}
|
|
44
|
+
</nz-collapse-panel>
|
|
45
|
+
@if (showLine()) {
|
|
46
|
+
<div></div>
|
|
47
|
+
}
|
|
48
|
+
</nz-collapse>
|
|
49
|
+
|
|
50
|
+
<nz-modal [(nzVisible)]="showModal" nzTitle="验证器" nzWidth="450px" (nzOnCancel)="showModal.set(false)" (nzOnOk)="save()">
|
|
51
|
+
<ng-container *nzModalContent>
|
|
52
|
+
<form [formGroup]="fg" nz-form>
|
|
53
|
+
<nz-form-item>
|
|
54
|
+
<nz-form-label nzSpan="6" nzRequired>
|
|
55
|
+
验证类型
|
|
56
|
+
</nz-form-label>
|
|
57
|
+
<nz-form-control nzSpan="18">
|
|
58
|
+
<nz-select formControlName="type">
|
|
59
|
+
<nz-option nzValue="required" nzLabel="必填验证"></nz-option>
|
|
60
|
+
<nz-option nzValue="length" nzLabel="长度验证"></nz-option>
|
|
61
|
+
<nz-option nzValue="value" nzLabel="值验证"></nz-option>
|
|
62
|
+
<nz-option nzValue="regex" nzLabel="正则验证"></nz-option>
|
|
63
|
+
</nz-select>
|
|
64
|
+
</nz-form-control>
|
|
65
|
+
</nz-form-item>
|
|
66
|
+
<nz-form-item>
|
|
67
|
+
<nz-form-label nzSpan="6" nzRequired>
|
|
68
|
+
禁用
|
|
69
|
+
</nz-form-label>
|
|
70
|
+
<nz-form-control nzSpan="18">
|
|
71
|
+
<axis-fun-field formControlName="disabled">
|
|
72
|
+
<nz-switch ngModel [ngModelOptions]="{standalone:true}"></nz-switch>
|
|
73
|
+
</axis-fun-field>
|
|
74
|
+
</nz-form-control>
|
|
75
|
+
</nz-form-item>
|
|
76
|
+
@switch (fg.value.type) {
|
|
77
|
+
@case ("length") {
|
|
78
|
+
<nz-form-item>
|
|
79
|
+
<nz-form-label nzSpan="6">
|
|
80
|
+
最小长度
|
|
81
|
+
</nz-form-label>
|
|
82
|
+
<nz-form-control nzSpan="18">
|
|
83
|
+
<axis-fun-field formControlName="minLength">
|
|
84
|
+
<nz-input-number style="width: 100%" nzPlaceHolder="不限制" nzMin="0" ngModel
|
|
85
|
+
[ngModelOptions]="{standalone:true}"></nz-input-number>
|
|
86
|
+
</axis-fun-field>
|
|
87
|
+
</nz-form-control>
|
|
88
|
+
</nz-form-item>
|
|
89
|
+
<nz-form-item>
|
|
90
|
+
<nz-form-label nzSpan="6">
|
|
91
|
+
最大长度
|
|
92
|
+
</nz-form-label>
|
|
93
|
+
<nz-form-control nzSpan="18">
|
|
94
|
+
<axis-fun-field formControlName="maxLength">
|
|
95
|
+
<nz-input-number style="width: 100%" nzPlaceHolder="不限制" nzMin="0" ngModel
|
|
96
|
+
[ngModelOptions]="{standalone:true}"></nz-input-number>
|
|
97
|
+
</axis-fun-field>
|
|
98
|
+
</nz-form-control>
|
|
99
|
+
</nz-form-item>
|
|
100
|
+
}
|
|
101
|
+
@case ("value") {
|
|
102
|
+
<nz-form-item>
|
|
103
|
+
<nz-form-label nzSpan="6">
|
|
104
|
+
最小值
|
|
105
|
+
</nz-form-label>
|
|
106
|
+
<nz-form-control nzSpan="18">
|
|
107
|
+
<axis-fun-field formControlName="minValue">
|
|
108
|
+
<nz-input-number style="width: 100%" nzPlaceHolder="不限制" ngModel
|
|
109
|
+
[ngModelOptions]="{standalone:true}"></nz-input-number>
|
|
110
|
+
</axis-fun-field>
|
|
111
|
+
</nz-form-control>
|
|
112
|
+
</nz-form-item>
|
|
113
|
+
<nz-form-item>
|
|
114
|
+
<nz-form-label nzSpan="6">
|
|
115
|
+
最大值
|
|
116
|
+
</nz-form-label>
|
|
117
|
+
<nz-form-control nzSpan="18">
|
|
118
|
+
<axis-fun-field formControlName="maxValue">
|
|
119
|
+
<nz-input-number style="width: 100%" nzPlaceHolder="不限制" ngModel
|
|
120
|
+
[ngModelOptions]="{standalone:true}"></nz-input-number>
|
|
121
|
+
</axis-fun-field>
|
|
122
|
+
</nz-form-control>
|
|
123
|
+
</nz-form-item>
|
|
124
|
+
}
|
|
125
|
+
@case ("regex") {
|
|
126
|
+
<nz-form-item>
|
|
127
|
+
<nz-form-label nzSpan="6">
|
|
128
|
+
正则表达式
|
|
129
|
+
</nz-form-label>
|
|
130
|
+
<nz-form-control nzSpan="18">
|
|
131
|
+
<axis-fun-field formControlName="pattern">
|
|
132
|
+
<input nz-input nzPlaceHolder="输入正则表达式" ngModel [ngModelOptions]="{standalone:true}" />
|
|
133
|
+
</axis-fun-field>
|
|
134
|
+
</nz-form-control>
|
|
135
|
+
</nz-form-item>
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
</form>
|
|
139
|
+
</ng-container>
|
|
140
|
+
</nz-modal>
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, model, signal } from "@angular/core";
|
|
2
|
+
import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from "@angular/forms";
|
|
3
|
+
import { copy, FormValidators, FunField, FunFieldBase, FunFieldOptions, updateAndValidAll } from "ngx-axis-appforge/core";
|
|
4
|
+
import { NzGridModule } from "ng-zorro-antd/grid";
|
|
5
|
+
import { NzIconModule } from "ng-zorro-antd/icon";
|
|
6
|
+
import { NzListModule } from "ng-zorro-antd/list";
|
|
7
|
+
import { NzSpaceModule } from "ng-zorro-antd/space";
|
|
8
|
+
import { NzTagModule } from "ng-zorro-antd/tag";
|
|
9
|
+
import { NzEmptyModule } from "ng-zorro-antd/empty";
|
|
10
|
+
import { NzButtonModule } from "ng-zorro-antd/button";
|
|
11
|
+
import { NzModalModule } from "ng-zorro-antd/modal";
|
|
12
|
+
import { NzCollapseModule } from "ng-zorro-antd/collapse";
|
|
13
|
+
import { NzFormModule } from "ng-zorro-antd/form";
|
|
14
|
+
import { NzSelectModule } from "ng-zorro-antd/select";
|
|
15
|
+
import { NzInputModule } from "ng-zorro-antd/input";
|
|
16
|
+
import { NzSwitchModule } from "ng-zorro-antd/switch";
|
|
17
|
+
import { CommonModule } from "@angular/common";
|
|
18
|
+
import { NzFlexModule } from "ng-zorro-antd/flex";
|
|
19
|
+
import { NzInputNumberModule } from "ng-zorro-antd/input-number";
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
selector: 'axis-design-form-item-setting-input-validator',
|
|
23
|
+
imports: [NzListModule, NzTagModule, NzSpaceModule, NzGridModule, NzIconModule, NzEmptyModule, NzButtonModule, NzModalModule, FormsModule, NzCollapseModule, NzFormModule, ReactiveFormsModule, FunField, NzSelectModule, NzInputModule, NzSwitchModule, CommonModule, NzFlexModule, NzInputNumberModule],
|
|
24
|
+
templateUrl: './input-validator.html',
|
|
25
|
+
styleUrl: './input-validator.css',
|
|
26
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
|
+
providers: [
|
|
28
|
+
{
|
|
29
|
+
provide: NG_VALUE_ACCESSOR,
|
|
30
|
+
useExisting: forwardRef(() => InputValidator),
|
|
31
|
+
multi: true
|
|
32
|
+
},
|
|
33
|
+
]
|
|
34
|
+
})
|
|
35
|
+
export class InputValidator extends FunFieldBase implements ControlValueAccessor {
|
|
36
|
+
|
|
37
|
+
constructor(private element: ElementRef) {
|
|
38
|
+
super();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
readonly value = model<any[]>();
|
|
42
|
+
readonly showLine = signal(false);
|
|
43
|
+
onChange: any;
|
|
44
|
+
editIndex = -1;
|
|
45
|
+
readonly showModal = model(false);
|
|
46
|
+
readonly validatorDesc = computed(() => this.buildValidatorsDesc());
|
|
47
|
+
|
|
48
|
+
override fg: UntypedFormGroup = this.fb.group({
|
|
49
|
+
type: ["required", FormValidators.required],
|
|
50
|
+
disabled: [undefined, FormValidators.requiredFun],
|
|
51
|
+
minLength: [],
|
|
52
|
+
maxLength: [],
|
|
53
|
+
minValue: [],
|
|
54
|
+
maxValue: [],
|
|
55
|
+
pattern: [],
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
protected override funFields: FunFieldOptions = {
|
|
59
|
+
disabled: {
|
|
60
|
+
defaultValue: false
|
|
61
|
+
},
|
|
62
|
+
minLength: {
|
|
63
|
+
defaultValue: null
|
|
64
|
+
},
|
|
65
|
+
maxLength: {
|
|
66
|
+
defaultValue: null
|
|
67
|
+
},
|
|
68
|
+
minValue: {
|
|
69
|
+
defaultValue: null
|
|
70
|
+
},
|
|
71
|
+
maxValue: {
|
|
72
|
+
defaultValue: null
|
|
73
|
+
},
|
|
74
|
+
pattern: {
|
|
75
|
+
defaultValue: ""
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
writeValue(v: any): void {
|
|
80
|
+
this.value.set(v);
|
|
81
|
+
}
|
|
82
|
+
registerOnChange(fn: any): void {
|
|
83
|
+
this.onChange = fn;
|
|
84
|
+
}
|
|
85
|
+
registerOnTouched(fn: any): void { }
|
|
86
|
+
|
|
87
|
+
ngAfterViewInit(): void {
|
|
88
|
+
if (this.element.nativeElement.nextElementSibling) {
|
|
89
|
+
this.showLine.set(true);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
private buildValidatorsDesc(): string[] | undefined {
|
|
94
|
+
return this.value()?.map(v => {
|
|
95
|
+
switch (v.type) {
|
|
96
|
+
case "required":
|
|
97
|
+
return "此项必填";
|
|
98
|
+
case "length":
|
|
99
|
+
return `长度范围:${this.wrapNumberField(v, "minLength")} ~ ${this.wrapNumberField(v, "maxLength")}`;
|
|
100
|
+
case "value":
|
|
101
|
+
return `值范围:${this.wrapNumberField(v, "minValue")} ~ ${this.wrapNumberField(v, "maxValue")}`;
|
|
102
|
+
case "regex":
|
|
103
|
+
return `表达式:${this.wrapFunField(v, "pattern")}`;
|
|
104
|
+
default:
|
|
105
|
+
return "";
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private wrapFunField(obj: any, field: string): any {
|
|
111
|
+
if (obj.hasOwnProperty(`$${field}`)) {
|
|
112
|
+
return "[动态值]";
|
|
113
|
+
}
|
|
114
|
+
return obj[field];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
private wrapNumberField(obj: any, field: string): any {
|
|
118
|
+
const value = this.wrapFunField(obj, field);
|
|
119
|
+
if (typeof value != "number" && !value) {
|
|
120
|
+
return "[不限制]";
|
|
121
|
+
}
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
openWithCreate() {
|
|
126
|
+
this.editIndex = -1;
|
|
127
|
+
this.reset();
|
|
128
|
+
this.showModal.set(true);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
openWithUpdate(index: number) {
|
|
132
|
+
this.editIndex = index;
|
|
133
|
+
this.reset(this.value()![this.editIndex]);
|
|
134
|
+
this.showModal.set(true);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
save() {
|
|
138
|
+
if (updateAndValidAll(this.fg)) {
|
|
139
|
+
const nextValue = copy(this.value() ?? [], true);
|
|
140
|
+
const validator = this.recoverFunField(this.fg.value)
|
|
141
|
+
if (this.editIndex == -1) {
|
|
142
|
+
nextValue.push(validator);
|
|
143
|
+
} else {
|
|
144
|
+
nextValue[this.editIndex] = validator;
|
|
145
|
+
}
|
|
146
|
+
this.showModal.set(false);
|
|
147
|
+
this.value.set(nextValue);
|
|
148
|
+
this.onChange(this.value());
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
deleteValidator(index: number) {
|
|
153
|
+
this.value()!.splice(index, 1);
|
|
154
|
+
this.value.set([...this.value()!]);
|
|
155
|
+
this.onChange(this.value());
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<form [formGroup]="fg" nz-form>
|
|
2
|
+
<nz-collapse [nzBordered]="false">
|
|
3
|
+
<nz-collapse-panel nzHeader="基本设置" nzActive>
|
|
4
|
+
<nz-form-item>
|
|
5
|
+
<nz-form-label nzSpan="8">
|
|
6
|
+
表单项名
|
|
7
|
+
</nz-form-label>
|
|
8
|
+
<nz-form-control nzSpan="16">
|
|
9
|
+
<axis-fun-field formControlName="name">
|
|
10
|
+
<input nz-input ngModel [ngModelOptions]="{standalone:true}" />
|
|
11
|
+
</axis-fun-field>
|
|
12
|
+
</nz-form-control>
|
|
13
|
+
</nz-form-item>
|
|
14
|
+
<nz-form-item>
|
|
15
|
+
<nz-form-label nzSpan="8">
|
|
16
|
+
表单项标签
|
|
17
|
+
</nz-form-label>
|
|
18
|
+
<nz-form-control nzSpan="16">
|
|
19
|
+
<axis-fun-field formControlName="label">
|
|
20
|
+
<input nz-input ngModel [ngModelOptions]="{standalone:true}" />
|
|
21
|
+
</axis-fun-field>
|
|
22
|
+
</nz-form-control>
|
|
23
|
+
</nz-form-item>
|
|
24
|
+
<nz-form-item>
|
|
25
|
+
<nz-form-label nzSpan="8" nzRequired>
|
|
26
|
+
标签宽度
|
|
27
|
+
</nz-form-label>
|
|
28
|
+
<nz-form-control nzSpan="16">
|
|
29
|
+
<axis-fun-field formControlName="labelWidth">
|
|
30
|
+
<input nz-input ngModel [ngModelOptions]="{standalone:true}" />
|
|
31
|
+
</axis-fun-field>
|
|
32
|
+
</nz-form-control>
|
|
33
|
+
</nz-form-item>
|
|
34
|
+
</nz-collapse-panel>
|
|
35
|
+
<axis-design-form-item-setting-input-validator
|
|
36
|
+
formControlName="validators"></axis-design-form-item-setting-input-validator>
|
|
37
|
+
<axis-base-design-setting [fg]="fg"></axis-base-design-setting>
|
|
38
|
+
</nz-collapse>
|
|
39
|
+
</form>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import { NzCollapseModule } from 'ng-zorro-antd/collapse';
|
|
4
|
+
import { NzFormModule } from 'ng-zorro-antd/form';
|
|
5
|
+
import { BaseDesignSetting, baseFbConfig, baseFunField, FunFieldValueBase, FunFieldOptions, FormValidators, FunField } from 'ngx-axis-appforge/core';
|
|
6
|
+
import { NzSwitchModule } from 'ng-zorro-antd/switch';
|
|
7
|
+
import { NzInputModule } from 'ng-zorro-antd/input';
|
|
8
|
+
import { InputValidator } from "./input-validator/input-validator";
|
|
9
|
+
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'axis-design-form-item-setting',
|
|
12
|
+
imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, BaseDesignSetting, FunField, NzSwitchModule, NzInputModule, InputValidator],
|
|
13
|
+
templateUrl: './setting.html',
|
|
14
|
+
styleUrl: './setting.css',
|
|
15
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
+
})
|
|
17
|
+
export class Setting extends FunFieldValueBase {
|
|
18
|
+
|
|
19
|
+
override fg: UntypedFormGroup = this.fb.group({
|
|
20
|
+
...baseFbConfig,
|
|
21
|
+
name: [],
|
|
22
|
+
label: [],
|
|
23
|
+
labelWidth: [undefined, FormValidators.requiredFun],
|
|
24
|
+
validators: [],
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
protected override funFields: FunFieldOptions = {
|
|
28
|
+
...baseFunField,
|
|
29
|
+
name: {
|
|
30
|
+
defaultValue: "unknown",
|
|
31
|
+
},
|
|
32
|
+
label: {
|
|
33
|
+
defaultValue: "未命名",
|
|
34
|
+
},
|
|
35
|
+
labelWidth: {
|
|
36
|
+
defaultValue: "120px",
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@if (options.label()) {
|
|
2
|
+
<nz-form-item style="width: 100%;">
|
|
3
|
+
<nz-form-label [style.width]="options.labelWidth()" [nzRequired]="isRequired()">
|
|
4
|
+
{{options.label()}}
|
|
5
|
+
</nz-form-label>
|
|
6
|
+
<nz-form-control style="flex:1" [nzValidateStatus]="control">
|
|
7
|
+
<ng-container [axisDynamic]="options.child()" [(ngModel)]="value"
|
|
8
|
+
(ngModelChange)="onModelChange($event)"></ng-container>
|
|
9
|
+
</nz-form-control>
|
|
10
|
+
</nz-form-item>
|
|
11
|
+
}@else {
|
|
12
|
+
<div>
|
|
13
|
+
<ng-container [axisDynamic]="options.child()" [(ngModel)]="value"
|
|
14
|
+
(ngModelChange)="onModelChange($event)"></ng-container>
|
|
15
|
+
</div>
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { signal } from "@angular/core";
|
|
2
|
+
import { BaseOptions } from "ngx-axis-appforge/core";
|
|
3
|
+
|
|
4
|
+
export class FormItemOptions extends BaseOptions {
|
|
5
|
+
|
|
6
|
+
readonly name = "";
|
|
7
|
+
readonly label = signal("");
|
|
8
|
+
readonly labelWidth = signal("120px");
|
|
9
|
+
readonly validators = signal<any[]>([]);
|
|
10
|
+
readonly child = signal<any>(undefined);
|
|
11
|
+
|
|
12
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, effect, inject, model, OnInit, signal } from '@angular/core';
|
|
2
|
+
import { FormItemOptions } from './form-item.options';
|
|
3
|
+
import { AXIS_FORM_REGISTE_CONTROL_TOKEN, AXIS_FORMITEM_REGISTE_VALUE_ACCESS_TOKEN, Base, DynamicDirective, FormValidators, RegisteValueAccessOptions } from 'ngx-axis-appforge/core';
|
|
4
|
+
import { NzFormModule } from 'ng-zorro-antd/form';
|
|
5
|
+
import { FormBuilder, FormsModule, ValidatorFn } from '@angular/forms';
|
|
6
|
+
import { debounceTime, merge, NEVER } from 'rxjs';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'axis-form-item',
|
|
10
|
+
imports: [NzFormModule, DynamicDirective, FormsModule],
|
|
11
|
+
templateUrl: './form-item.html',
|
|
12
|
+
styleUrl: './form-item.css',
|
|
13
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
|
+
providers: [
|
|
15
|
+
{
|
|
16
|
+
provide: AXIS_FORMITEM_REGISTE_VALUE_ACCESS_TOKEN,
|
|
17
|
+
useFactory: (formItem: FormItem) => {
|
|
18
|
+
return formItem.registeValueAccess.bind(formItem);
|
|
19
|
+
},
|
|
20
|
+
deps: [FormItem]
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
})
|
|
24
|
+
export class FormItem extends Base<FormItemOptions> implements OnInit {
|
|
25
|
+
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
if (this.getScope()) {
|
|
29
|
+
effect(() => {
|
|
30
|
+
this.control.setValidators(this.validatorSignal() ?? null);
|
|
31
|
+
});
|
|
32
|
+
effect(() => {
|
|
33
|
+
this.validatorSignal.set(this.buildSnapshotValidators());
|
|
34
|
+
this.unsubscribe(["validatorsChange"]);
|
|
35
|
+
this.addSubscribe(merge(...this.options.validators().map(v => this.getScope()!.dynamicOptions(v)?.obs ?? NEVER))
|
|
36
|
+
.pipe(debounceTime(50))
|
|
37
|
+
.subscribe(_ => {
|
|
38
|
+
this.validatorSignal.set(this.buildSnapshotValidators());
|
|
39
|
+
}), "validatorsChange");
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
protected override options: FormItemOptions = new FormItemOptions();
|
|
45
|
+
private readonly registe = inject(AXIS_FORM_REGISTE_CONTROL_TOKEN, { optional: true });
|
|
46
|
+
private readonly fb = inject(FormBuilder);
|
|
47
|
+
readonly control = this.fb.control([]);
|
|
48
|
+
readonly value = model<any>();
|
|
49
|
+
readonly validatorSignal = signal<ValidatorFn[]>([]);
|
|
50
|
+
readonly isRequired = computed(() => this.validatorSignal().includes(FormValidators.required));
|
|
51
|
+
private valueAccessValidFn?: ValidatorFn;
|
|
52
|
+
|
|
53
|
+
ngOnInit(): void {
|
|
54
|
+
if (this.options.name) {
|
|
55
|
+
this.control.registerOnChange((v: any) => {
|
|
56
|
+
this.value.set(v);
|
|
57
|
+
});
|
|
58
|
+
this.registe?.({
|
|
59
|
+
name: this.options.name,
|
|
60
|
+
control: this.control,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
onModelChange(value: any) {
|
|
66
|
+
if (this.options.name) {
|
|
67
|
+
this.control.markAsDirty();
|
|
68
|
+
this.control.setValue(value);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private buildSnapshotValidators(): ValidatorFn[] {
|
|
73
|
+
return this.buildValidators(this.options.validators().map(v => this.getScope()!.snapshotOptions(v)));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private buildValidators(validators: any[]): ValidatorFn[] {
|
|
77
|
+
const output: ValidatorFn[] = [];
|
|
78
|
+
if (this.valueAccessValidFn) {
|
|
79
|
+
output.push(this.valueAccessValidFn);
|
|
80
|
+
}
|
|
81
|
+
for (const v of validators) {
|
|
82
|
+
if (v.disabled) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
switch (v.type) {
|
|
86
|
+
case "required":
|
|
87
|
+
output.push(FormValidators.required);
|
|
88
|
+
break;
|
|
89
|
+
case "length":
|
|
90
|
+
if (v.minLength || v.minLength == 0) {
|
|
91
|
+
output.push(FormValidators.minLength(v.minLength));
|
|
92
|
+
}
|
|
93
|
+
if (v.maxLength || v.maxLength == 0) {
|
|
94
|
+
output.push(FormValidators.maxLength(v.maxLength));
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case "value":
|
|
98
|
+
if (v.minValue || v.minValue == 0) {
|
|
99
|
+
output.push(FormValidators.min(v.minValue));
|
|
100
|
+
}
|
|
101
|
+
if (v.maxValue || v.maxValue == 0) {
|
|
102
|
+
output.push(FormValidators.max(v.maxValue));
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
case "regex":
|
|
106
|
+
if (v.pattern) {
|
|
107
|
+
output.push(FormValidators.pattern(v.pattern));
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return output;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
registeValueAccess(opt: RegisteValueAccessOptions) {
|
|
116
|
+
if (opt.initValue !== undefined) {
|
|
117
|
+
this.registe?.({
|
|
118
|
+
name: this.options.name,
|
|
119
|
+
initValue: opt.initValue
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (opt.validFn) {
|
|
123
|
+
this.valueAccessValidFn = (c) => opt.validFn!(c) ? null : { error: true };
|
|
124
|
+
this.validatorSignal.set(this.buildSnapshotValidators());
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NextInfo, DesignBuildResult, DesignBindElementsResult, DesignConfig, OptionsNode, nameCode, SimpleMenu } from "ngx-axis-appforge/core";
|
|
2
|
+
import { Setting } from "./setting/setting";
|
|
3
|
+
|
|
4
|
+
export const Config: DesignConfig = {
|
|
5
|
+
componentName: "图标",
|
|
6
|
+
buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {
|
|
7
|
+
return {
|
|
8
|
+
treeNode: new OptionsNode({
|
|
9
|
+
parentId: nextInfo.parentId,
|
|
10
|
+
scopeId: nextInfo.scopeId,
|
|
11
|
+
name: nameCode("图标", nextInfo.currentObject.icon),
|
|
12
|
+
canSetting: true,
|
|
13
|
+
canDrag: true,
|
|
14
|
+
dragType: "component",
|
|
15
|
+
parentObj: nextInfo.parentObject,
|
|
16
|
+
indexOfParentObj: nextInfo.indexOfParent,
|
|
17
|
+
rootOptions: nextInfo.currentObject,
|
|
18
|
+
settingType: Setting,
|
|
19
|
+
contextMenu: SimpleMenu,
|
|
20
|
+
icon: "fire"
|
|
21
|
+
})
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {
|
|
25
|
+
return {
|
|
26
|
+
[options.id]: { element }
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
};
|
|
File without changes
|