@kp-ui/lowcode-pc 1.0.0 → 1.0.1
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/_virtual/_plugin-vue_export-helper.js +11 -0
- package/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/assets/styles/style.css +463 -388
- package/core/src/components/DragBtn.vue.js +8 -0
- package/core/src/components/DragBtn.vue.js.map +1 -0
- package/core/src/components/DragBtn.vue2.js +33 -0
- package/core/src/components/DragBtn.vue2.js.map +1 -0
- package/core/src/components/common/RenderWidgetList.vue.js +8 -0
- package/core/src/components/common/RenderWidgetList.vue.js.map +1 -0
- package/core/src/components/common/RenderWidgetList.vue2.js +97 -0
- package/core/src/components/common/RenderWidgetList.vue2.js.map +1 -0
- package/core/src/components/common/desginer/WidgetWrapper.vue.js +8 -0
- package/core/src/components/common/desginer/WidgetWrapper.vue.js.map +1 -0
- package/core/src/components/common/desginer/WidgetWrapper.vue2.js +67 -0
- package/core/src/components/common/desginer/WidgetWrapper.vue2.js.map +1 -0
- package/core/src/components/common/render/Debugger.vue.js +8 -0
- package/core/src/components/common/render/Debugger.vue.js.map +1 -0
- package/core/src/components/common/render/Debugger.vue2.js +73 -0
- package/core/src/components/common/render/Debugger.vue2.js.map +1 -0
- package/core/src/components/common/render/LowcodeRenderProvider.vue.js +61 -0
- package/core/src/components/common/render/LowcodeRenderProvider.vue.js.map +1 -0
- package/core/src/components/common/render/LowcodeRenderProvider.vue2.js +5 -0
- package/core/src/components/common/render/LowcodeRenderProvider.vue2.js.map +1 -0
- package/core/src/components/common/render/RenderForm.vue.js +69 -0
- package/core/src/components/common/render/RenderForm.vue.js.map +1 -0
- package/core/src/components/common/render/RenderForm.vue2.js +5 -0
- package/core/src/components/common/render/RenderForm.vue2.js.map +1 -0
- package/core/src/components/common/render/useFormContext.js +262 -0
- package/core/src/components/common/render/useFormContext.js.map +1 -0
- package/core/src/components/contextMenu/WidgetContextMenu.vue.js +8 -0
- package/core/src/components/contextMenu/WidgetContextMenu.vue.js.map +1 -0
- package/core/src/components/contextMenu/WidgetContextMenu.vue2.js +125 -0
- package/core/src/components/contextMenu/WidgetContextMenu.vue2.js.map +1 -0
- package/core/src/components/contextMenu/useWidgetContextMenu.js +165 -0
- package/core/src/components/contextMenu/useWidgetContextMenu.js.map +1 -0
- package/core/src/constants/LayoutTypeEnum.js +10 -0
- package/core/src/constants/LayoutTypeEnum.js.map +1 -0
- package/core/src/constants/WidgetTypeEnum.js +64 -0
- package/core/src/constants/WidgetTypeEnum.js.map +1 -0
- package/core/src/constants/index.js +9 -0
- package/core/src/constants/index.js.map +1 -0
- package/core/src/hooks/useAppRef.js +57 -0
- package/core/src/hooks/useAppRef.js.map +1 -0
- package/core/src/hooks/useDataHttp.js +65 -0
- package/core/src/hooks/useDataHttp.js.map +1 -0
- package/core/src/hooks/useDesigner.js +60 -0
- package/core/src/hooks/useDesigner.js.map +1 -0
- package/{assets/useField.mjs → core/src/hooks/useField.js} +25 -5
- package/core/src/hooks/useField.js.map +1 -0
- package/core/src/hooks/useFormValidation.js +112 -0
- package/core/src/hooks/useFormValidation.js.map +1 -0
- package/core/src/hooks/useLowcode.js +94 -0
- package/core/src/hooks/useLowcode.js.map +1 -0
- package/core/src/hooks/useWebMCP.js +82 -0
- package/core/src/hooks/useWebMCP.js.map +1 -0
- package/core/src/hooks/useWidget.js +15 -0
- package/core/src/hooks/useWidget.js.map +1 -0
- package/{assets/en-US.mjs → core/src/lang/en-US.js} +41 -0
- package/core/src/lang/en-US.js.map +1 -0
- package/{assets/en-US_extension.mjs → core/src/lang/en-US_extension.js} +1 -0
- package/core/src/lang/en-US_extension.js.map +1 -0
- package/{assets/en-US_render.mjs → core/src/lang/en-US_render.js} +1 -0
- package/core/src/lang/en-US_render.js.map +1 -0
- package/{assets/zh-CN.mjs → core/src/lang/zh-CN.js} +81 -6
- package/core/src/lang/zh-CN.js.map +1 -0
- package/{assets/zh-CN_extension.mjs → core/src/lang/zh-CN_extension.js} +1 -0
- package/core/src/lang/zh-CN_extension.js.map +1 -0
- package/{assets/zh-CN_render.mjs → core/src/lang/zh-CN_render.js} +1 -0
- package/core/src/lang/zh-CN_render.js.map +1 -0
- package/core/src/utils/format.js +46 -0
- package/core/src/utils/format.js.map +1 -0
- package/core/src/utils/getFileName.js +10 -0
- package/core/src/utils/getFileName.js.map +1 -0
- package/core/src/utils/i18n.js +33 -0
- package/core/src/utils/i18n.js.map +1 -0
- package/core/src/utils/smart-vue-i18n/index.js +84 -0
- package/core/src/utils/smart-vue-i18n/index.js.map +1 -0
- package/core/src/utils/useEmitter.js +95 -0
- package/core/src/utils/useEmitter.js.map +1 -0
- package/core/src/utils/util.js +155 -0
- package/core/src/utils/util.js.map +1 -0
- package/core/src/utils/validators.js +114 -0
- package/core/src/utils/validators.js.map +1 -0
- package/install.js +31 -0
- package/install.js.map +1 -0
- package/package.json +9 -4
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js.map +1 -0
- package/{assets/data-table-widget.mjs → src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js} +22 -6
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.js.map +1 -0
- package/{assets/grid-col-widget.mjs → src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js} +13 -8
- package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.js.map +1 -0
- package/{assets/grid-sub-form-widget.mjs → src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js} +4 -3
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue3.js +2 -0
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue3.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/grid-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/grid-widget.vue.js.map +1 -0
- package/{assets/grid-widget.mjs → src/components/desginer/form-widget/container-widget/grid-widget.vue2.js} +13 -9
- package/src/components/desginer/form-widget/container-widget/grid-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/index.js +19 -0
- package/src/components/desginer/form-widget/container-widget/index.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue.js.map +1 -0
- package/{assets/tab-widget.mjs → src/components/desginer/form-widget/container-widget/tab-widget.vue2.js} +5 -3
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js +316 -0
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js.map +1 -0
- package/{assets/vf-box-widget.mjs → src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js} +5 -3
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.js +9 -0
- package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.js.map +1 -0
- package/{assets/vf-collapse-widget.mjs → src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js} +6 -6
- package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.js +8 -0
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.js.map +1 -0
- package/{assets/vf-dialog-widget.mjs → src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js} +12 -4
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -0
- package/src/components/desginer/form-widget/index.vue.js +2 -0
- package/src/components/desginer/form-widget/index.vue.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/bpmn-editor.js +30 -0
- package/src/components/desginer/widget-panel/advanced/bpmn-editor.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/cascader.js +68 -0
- package/src/components/desginer/widget-panel/advanced/cascader.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/code-editor.js +44 -0
- package/src/components/desginer/widget-panel/advanced/code-editor.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/data-table.js +104 -0
- package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/diy-compontent.js +30 -0
- package/src/components/desginer/widget-panel/advanced/diy-compontent.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/file-upload.js +43 -0
- package/src/components/desginer/widget-panel/advanced/file-upload.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/rich-editor.js +40 -0
- package/src/components/desginer/widget-panel/advanced/rich-editor.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/tree-select.js +69 -0
- package/src/components/desginer/widget-panel/advanced/tree-select.js.map +1 -0
- package/src/components/desginer/widget-panel/advanced/tree.js +47 -0
- package/src/components/desginer/widget-panel/advanced/tree.js.map +1 -0
- package/src/components/desginer/widget-panel/advancedFieldsEnums.js +24 -0
- package/src/components/desginer/widget-panel/advancedFieldsEnums.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/button.js +37 -0
- package/src/components/desginer/widget-panel/basicFields/button.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/buttonList.js +45 -0
- package/src/components/desginer/widget-panel/basicFields/buttonList.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/checkbox.js +64 -0
- package/src/components/desginer/widget-panel/basicFields/checkbox.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/color.js +38 -0
- package/src/components/desginer/widget-panel/basicFields/color.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/date.js +55 -0
- package/src/components/desginer/widget-panel/basicFields/date.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/dateRange.js +55 -0
- package/src/components/desginer/widget-panel/basicFields/dateRange.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/divider.js +31 -0
- package/src/components/desginer/widget-panel/basicFields/divider.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/dropdown.js +42 -0
- package/src/components/desginer/widget-panel/basicFields/dropdown.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/htmlText.js +29 -0
- package/src/components/desginer/widget-panel/basicFields/htmlText.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/input.js +56 -0
- package/src/components/desginer/widget-panel/basicFields/input.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/number.js +50 -0
- package/src/components/desginer/widget-panel/basicFields/number.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/radio.js +70 -0
- package/src/components/desginer/widget-panel/basicFields/radio.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/rate.js +45 -0
- package/src/components/desginer/widget-panel/basicFields/rate.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/select.js +77 -0
- package/src/components/desginer/widget-panel/basicFields/select.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/slider.js +47 -0
- package/src/components/desginer/widget-panel/basicFields/slider.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/staticText.js +29 -0
- package/src/components/desginer/widget-panel/basicFields/staticText.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/switch.js +41 -0
- package/src/components/desginer/widget-panel/basicFields/switch.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/textarea.js +53 -0
- package/src/components/desginer/widget-panel/basicFields/textarea.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/time.js +51 -0
- package/src/components/desginer/widget-panel/basicFields/time.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFields/timeRange.js +52 -0
- package/src/components/desginer/widget-panel/basicFields/timeRange.js.map +1 -0
- package/src/components/desginer/widget-panel/basicFieldsEnums.js +46 -0
- package/src/components/desginer/widget-panel/basicFieldsEnums.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/grid-col.js +29 -0
- package/src/components/desginer/widget-panel/containers/grid-col.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/grid-sub-form.js +27 -0
- package/src/components/desginer/widget-panel/containers/grid-sub-form.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/grid.js +24 -0
- package/src/components/desginer/widget-panel/containers/grid.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/index.js +19 -0
- package/src/components/desginer/widget-panel/containers/index.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/tab-pane.js +23 -0
- package/src/components/desginer/widget-panel/containers/tab-pane.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/tab.js +27 -0
- package/src/components/desginer/widget-panel/containers/tab.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/vf-box.js +47 -0
- package/src/components/desginer/widget-panel/containers/vf-box.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/vf-collapse.js +25 -0
- package/src/components/desginer/widget-panel/containers/vf-collapse.js.map +1 -0
- package/src/components/desginer/widget-panel/containers/vf-dialog.js +55 -0
- package/src/components/desginer/widget-panel/containers/vf-dialog.js.map +1 -0
- package/src/components/desginer/widget-panel/widgetsConfig.js +7 -0
- package/src/components/desginer/widget-panel/widgetsConfig.js.map +1 -0
- package/src/components/field-widget/bpmn-editor-widget.vue.js +8 -0
- package/src/components/field-widget/bpmn-editor-widget.vue.js.map +1 -0
- package/{assets/bpmn-editor-widget.mjs → src/components/field-widget/bpmn-editor-widget.vue2.js} +5 -5
- package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -0
- package/src/components/field-widget/button-list-widget.vue.js +8 -0
- package/src/components/field-widget/button-list-widget.vue.js.map +1 -0
- package/{assets/button-list-widget.mjs → src/components/field-widget/button-list-widget.vue2.js} +12 -5
- package/src/components/field-widget/button-list-widget.vue2.js.map +1 -0
- package/src/components/field-widget/button-widget.vue.js +8 -0
- package/src/components/field-widget/button-widget.vue.js.map +1 -0
- package/{assets/button-widget.mjs → src/components/field-widget/button-widget.vue2.js} +4 -4
- package/src/components/field-widget/button-widget.vue2.js.map +1 -0
- package/src/components/field-widget/cascader-widget.vue.js +5 -0
- package/src/components/field-widget/cascader-widget.vue.js.map +1 -0
- package/{assets/cascader-widget.mjs → src/components/field-widget/cascader-widget.vue2.js} +6 -4
- package/src/components/field-widget/cascader-widget.vue2.js.map +1 -0
- package/src/components/field-widget/checkbox-widget.vue.js +5 -0
- package/src/components/field-widget/checkbox-widget.vue.js.map +1 -0
- package/{assets/checkbox-widget.mjs → src/components/field-widget/checkbox-widget.vue2.js} +9 -10
- package/src/components/field-widget/checkbox-widget.vue2.js.map +1 -0
- package/src/components/field-widget/code-editor-widget.vue.js +8 -0
- package/src/components/field-widget/code-editor-widget.vue.js.map +1 -0
- package/{assets/code-editor-widget.mjs → src/components/field-widget/code-editor-widget.vue2.js} +10 -5
- package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -0
- package/src/components/field-widget/color-widget.vue.js +8 -0
- package/src/components/field-widget/color-widget.vue.js.map +1 -0
- package/{assets/color-widget.mjs → src/components/field-widget/color-widget.vue2.js} +5 -5
- package/src/components/field-widget/color-widget.vue2.js.map +1 -0
- package/src/components/field-widget/date-range-widget.vue.js +8 -0
- package/src/components/field-widget/date-range-widget.vue.js.map +1 -0
- package/{assets/date-range-widget.mjs → src/components/field-widget/date-range-widget.vue2.js} +5 -5
- package/src/components/field-widget/date-range-widget.vue2.js.map +1 -0
- package/src/components/field-widget/date-widget.vue.js +8 -0
- package/src/components/field-widget/date-widget.vue.js.map +1 -0
- package/{assets/date-widget.mjs → src/components/field-widget/date-widget.vue2.js} +5 -5
- package/src/components/field-widget/date-widget.vue2.js.map +1 -0
- package/src/components/field-widget/divider-widget.vue.js +5 -0
- package/src/components/field-widget/divider-widget.vue.js.map +1 -0
- package/{assets/divider-widget.mjs → src/components/field-widget/divider-widget.vue2.js} +3 -2
- package/src/components/field-widget/divider-widget.vue2.js.map +1 -0
- package/src/components/field-widget/diy-compontent-widget.vue.js +5 -0
- package/src/components/field-widget/diy-compontent-widget.vue.js.map +1 -0
- package/{assets/diy-compontent-widget.mjs → src/components/field-widget/diy-compontent-widget.vue2.js} +4 -3
- package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -0
- package/src/components/field-widget/dropdown-widget.vue.js +8 -0
- package/src/components/field-widget/dropdown-widget.vue.js.map +1 -0
- package/{assets/dropdown-widget.mjs → src/components/field-widget/dropdown-widget.vue2.js} +15 -23
- package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -0
- package/src/components/field-widget/file-upload-widget.vue.js +8 -0
- package/src/components/field-widget/file-upload-widget.vue.js.map +1 -0
- package/{assets/file-upload-widget.mjs → src/components/field-widget/file-upload-widget.vue2.js} +15 -10
- package/src/components/field-widget/file-upload-widget.vue2.js.map +1 -0
- package/src/components/field-widget/form-item-wrapper.vue.js +8 -0
- package/src/components/field-widget/form-item-wrapper.vue.js.map +1 -0
- package/{assets/form-item-wrapper.mjs → src/components/field-widget/form-item-wrapper.vue2.js} +5 -7
- package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -0
- package/{assets/useSelect.mjs → src/components/field-widget/hooks/useSelect.js} +3 -2
- package/src/components/field-widget/hooks/useSelect.js.map +1 -0
- package/src/components/field-widget/html-text-widget.vue.js +8 -0
- package/src/components/field-widget/html-text-widget.vue.js.map +1 -0
- package/{assets/html-text-widget.mjs → src/components/field-widget/html-text-widget.vue2.js} +4 -4
- package/src/components/field-widget/html-text-widget.vue2.js.map +1 -0
- package/src/components/field-widget/html-text-widget.vue3.js +2 -0
- package/src/components/field-widget/html-text-widget.vue3.js.map +1 -0
- package/src/components/field-widget/index.js +12 -0
- package/src/components/field-widget/index.js.map +1 -0
- package/src/components/field-widget/input-widget.vue.js +8 -0
- package/src/components/field-widget/input-widget.vue.js.map +1 -0
- package/{assets/input-widget.mjs → src/components/field-widget/input-widget.vue2.js} +5 -5
- package/src/components/field-widget/input-widget.vue2.js.map +1 -0
- package/src/components/field-widget/number-widget.vue.js +5 -0
- package/src/components/field-widget/number-widget.vue.js.map +1 -0
- package/{assets/number-widget.mjs → src/components/field-widget/number-widget.vue2.js} +4 -3
- package/src/components/field-widget/number-widget.vue2.js.map +1 -0
- package/src/components/field-widget/radio-widget.vue.js +8 -0
- package/src/components/field-widget/radio-widget.vue.js.map +1 -0
- package/{assets/radio-widget.mjs → src/components/field-widget/radio-widget.vue2.js} +11 -12
- package/src/components/field-widget/radio-widget.vue2.js.map +1 -0
- package/src/components/field-widget/rate-widget.vue.js +8 -0
- package/src/components/field-widget/rate-widget.vue.js.map +1 -0
- package/{assets/rate-widget.mjs → src/components/field-widget/rate-widget.vue2.js} +5 -5
- package/src/components/field-widget/rate-widget.vue2.js.map +1 -0
- package/src/components/field-widget/rich-editor-widget.vue.js +8 -0
- package/src/components/field-widget/rich-editor-widget.vue.js.map +1 -0
- package/{assets/rich-editor-widget.mjs → src/components/field-widget/rich-editor-widget.vue2.js} +5 -5
- package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -0
- package/src/components/field-widget/select-widget.vue.js +8 -0
- package/src/components/field-widget/select-widget.vue.js.map +1 -0
- package/{assets/select-widget.mjs → src/components/field-widget/select-widget.vue2.js} +5 -6
- package/src/components/field-widget/select-widget.vue2.js.map +1 -0
- package/src/components/field-widget/slider-widget.vue.js +5 -0
- package/src/components/field-widget/slider-widget.vue.js.map +1 -0
- package/{assets/slider-widget.mjs → src/components/field-widget/slider-widget.vue2.js} +4 -3
- package/src/components/field-widget/slider-widget.vue2.js.map +1 -0
- package/src/components/field-widget/static-text-widget.vue.js +5 -0
- package/src/components/field-widget/static-text-widget.vue.js.map +1 -0
- package/{assets/static-text-widget.mjs → src/components/field-widget/static-text-widget.vue2.js} +3 -2
- package/src/components/field-widget/static-text-widget.vue2.js.map +1 -0
- package/src/components/field-widget/switch-widget.vue.js +8 -0
- package/src/components/field-widget/switch-widget.vue.js.map +1 -0
- package/{assets/switch-widget.mjs → src/components/field-widget/switch-widget.vue2.js} +5 -5
- package/src/components/field-widget/switch-widget.vue2.js.map +1 -0
- package/src/components/field-widget/textarea-widget.vue.js +8 -0
- package/src/components/field-widget/textarea-widget.vue.js.map +1 -0
- package/{assets/textarea-widget.mjs → src/components/field-widget/textarea-widget.vue2.js} +5 -5
- package/src/components/field-widget/textarea-widget.vue2.js.map +1 -0
- package/src/components/field-widget/time-range-widget.vue.js +8 -0
- package/src/components/field-widget/time-range-widget.vue.js.map +1 -0
- package/{assets/time-range-widget.mjs → src/components/field-widget/time-range-widget.vue2.js} +5 -5
- package/src/components/field-widget/time-range-widget.vue2.js.map +1 -0
- package/src/components/field-widget/time-widget.vue.js +8 -0
- package/src/components/field-widget/time-widget.vue.js.map +1 -0
- package/{assets/time-widget.mjs → src/components/field-widget/time-widget.vue2.js} +5 -5
- package/src/components/field-widget/time-widget.vue2.js.map +1 -0
- package/src/components/field-widget/tree-widget.vue.js +8 -0
- package/src/components/field-widget/tree-widget.vue.js.map +1 -0
- package/{assets/tree-widget.mjs → src/components/field-widget/tree-widget.vue2.js} +6 -6
- package/src/components/field-widget/tree-widget.vue2.js.map +1 -0
- package/src/components/field-widget/treeSelect-widget.vue.js +5 -0
- package/src/components/field-widget/treeSelect-widget.vue.js.map +1 -0
- package/{assets/treeSelect-widget.mjs → src/components/field-widget/treeSelect-widget.vue2.js} +13 -12
- package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -0
- package/src/components/field-widget/vue-render-widget.vue.js +5 -0
- package/src/components/field-widget/vue-render-widget.vue.js.map +1 -0
- package/{assets/vue-render-widget.mjs → src/components/field-widget/vue-render-widget.vue2.js} +6 -8
- package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -0
- package/src/components/form-render/RenderWigetList.vue.js +5 -0
- package/src/components/form-render/RenderWigetList.vue.js.map +1 -0
- package/src/components/form-render/RenderWigetList.vue2.js +46 -0
- package/src/components/form-render/RenderWigetList.vue2.js.map +1 -0
- package/src/components/form-render/container-items/data-table-widget.vue.js +8 -0
- package/src/components/form-render/container-items/data-table-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/data-table-widget.vue2.js +198 -0
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/grid-col-widget.vue.js +8 -0
- package/src/components/form-render/container-items/grid-col-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/grid-col-widget.vue2.js +56 -0
- package/src/components/form-render/container-items/grid-col-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +8 -0
- package/src/components/form-render/container-items/grid-sub-form-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +282 -0
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/grid-widget.vue.js +8 -0
- package/src/components/form-render/container-items/grid-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/grid-widget.vue2.js +61 -0
- package/src/components/form-render/container-items/grid-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/grid-widget.vue3.js +2 -0
- package/src/components/form-render/container-items/grid-widget.vue3.js.map +1 -0
- package/src/components/form-render/container-items/index.js +21 -0
- package/src/components/form-render/container-items/index.js.map +1 -0
- package/src/components/form-render/container-items/tab-widget.vue.js +8 -0
- package/src/components/form-render/container-items/tab-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/tab-widget.vue2.js +66 -0
- package/src/components/form-render/container-items/tab-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/vf-box-widget.vue.js +8 -0
- package/src/components/form-render/container-items/vf-box-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/vf-box-widget.vue2.js +59 -0
- package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -0
- package/src/components/form-render/container-items/vf-collapse-widget.vue.js +9 -0
- package/src/components/form-render/container-items/vf-collapse-widget.vue.js.map +1 -0
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +70 -0
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -0
- package/src/components/public/ActionButtonListRender.vue.js +53 -0
- package/src/components/public/ActionButtonListRender.vue.js.map +1 -0
- package/src/components/public/ActionButtonListRender.vue2.js +130 -0
- package/src/components/public/ActionButtonListRender.vue2.js.map +1 -0
- package/src/components/public/ConfigView/CustomPageRender.vue.js +74 -0
- package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -0
- package/src/components/public/ConfigView/CustomPageRender.vue2.js +5 -0
- package/src/components/public/ConfigView/CustomPageRender.vue2.js.map +1 -0
- package/src/components/public/CustomerModal/CustomerModal.vue.js +5 -0
- package/src/components/public/CustomerModal/CustomerModal.vue.js.map +1 -0
- package/{assets/CustomerModal.mjs → src/components/public/CustomerModal/CustomerModal.vue2.js} +7 -91
- package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -0
- package/{assets/useCustomerModal.mjs → src/components/public/CustomerModal/useCustomerModal.js} +2 -1
- package/src/components/public/CustomerModal/useCustomerModal.js.map +1 -0
- package/src/components/public/DataTableColumnDialog.vue.js +8 -0
- package/src/components/public/DataTableColumnDialog.vue.js.map +1 -0
- package/src/components/public/DataTableColumnDialog.vue2.js +333 -0
- package/src/components/public/DataTableColumnDialog.vue2.js.map +1 -0
- package/src/components/public/DynamicDialog.vue.js +226 -0
- package/src/components/public/DynamicDialog.vue.js.map +1 -0
- package/src/components/public/DynamicDialog.vue3.js +6 -0
- package/src/components/public/DynamicDialog.vue3.js.map +1 -0
- package/src/components/render/index.vue.js +8 -0
- package/src/components/render/index.vue.js.map +1 -0
- package/src/components/render/index.vue2.js +105 -0
- package/src/components/render/index.vue2.js.map +1 -0
- package/src/components/render/useRenderWidget.js +11 -0
- package/src/components/render/useRenderWidget.js.map +1 -0
- package/src/hooks/useLowcode.js +113 -0
- package/src/hooks/useLowcode.js.map +1 -0
- package/stats.html +4949 -0
- package/types/index.d.ts +1 -0
- package/types/pc/install.d.ts +9 -0
- package/assets/install.mjs +0 -5405
- package/index.js +0 -7
- package/types/core/src/components/DragBtn.vue.d.ts +0 -7
- package/types/core/src/components/HttpEditor.vue.d.ts +0 -46
- package/types/core/src/components/common/EventItemEditor.vue.d.ts +0 -12
- package/types/core/src/components/common/LowcodeI18nProvider.vue.d.ts +0 -17
- package/types/core/src/components/common/RenderWidgetList.vue.d.ts +0 -16
- package/types/core/src/components/common/desginer/RenderDesignerWrapper.vue.d.ts +0 -2
- package/types/core/src/components/common/desginer/WidgetWrapper.vue.d.ts +0 -30
- package/types/core/src/components/common/render/ActionButtonListDialog.vue.d.ts +0 -345
- package/types/core/src/components/common/render/Debugger.vue.d.ts +0 -10
- package/types/core/src/components/common/render/LowcodeRenderProvider.vue.d.ts +0 -26
- package/types/core/src/components/common/render/index.d.ts +0 -6
- package/types/core/src/components/common/render/useFormContext.d.ts +0 -148
- package/types/core/src/components/common/render/useFormDataProcessor.d.ts +0 -10
- package/types/core/src/components/contextMenu/WidgetContextMenu.vue.d.ts +0 -21
- package/types/core/src/components/contextMenu/useWidgetContextMenu.d.ts +0 -25
- package/types/core/src/components/index.d.ts +0 -16
- package/types/core/src/components/layout/LowcodeLayout.vue.d.ts +0 -24
- package/types/core/src/components/property-editor/index.d.ts +0 -3
- package/types/core/src/components/property-editor/propertyRegister.d.ts +0 -199
- package/types/core/src/components/property-editor/useEditor.d.ts +0 -19
- package/types/core/src/components/setting-plane/WidgetSettingPlane.vue.d.ts +0 -2
- package/types/core/src/components/setting-plane/form-crud-setting.vue.d.ts +0 -10
- package/types/core/src/components/setting-plane/form-setting.vue.d.ts +0 -332
- package/types/core/src/components/setting-plane/index.d.ts +0 -3
- package/types/core/src/components/setting-plane/index.vue.d.ts +0 -675
- package/types/core/src/components/settings/PanelItemDrag.vue.d.ts +0 -24
- package/types/core/src/components/settings/WidgetPanel.vue.d.ts +0 -20
- package/types/core/src/components/toolbar-panel/index.vue.d.ts +0 -689
- package/types/core/src/constants/EditorTypeEnum.d.ts +0 -151
- package/types/core/src/constants/LayoutTypeEnum.d.ts +0 -5
- package/types/core/src/constants/WidgetTypeEnum.d.ts +0 -65
- package/types/core/src/constants/index.d.ts +0 -12
- package/types/core/src/hooks/index.d.ts +0 -6
- package/types/core/src/hooks/useAppRef.d.ts +0 -9
- package/types/core/src/hooks/useDataHttp.d.ts +0 -207
- package/types/core/src/hooks/useDesigner.d.ts +0 -20
- package/types/core/src/hooks/useField.d.ts +0 -95
- package/types/core/src/hooks/useFormValidation.d.ts +0 -54
- package/types/core/src/hooks/useInputEvent.d.ts +0 -10
- package/types/core/src/hooks/useLowcode.d.ts +0 -22
- package/types/core/src/hooks/useNativeDragAndDrop.d.ts +0 -34
- package/types/core/src/lang/en-US.d.ts +0 -564
- package/types/core/src/lang/en-US_extension.d.ts +0 -23
- package/types/core/src/lang/en-US_render.d.ts +0 -38
- package/types/core/src/lang/zh-CN.d.ts +0 -584
- package/types/core/src/lang/zh-CN_extension.d.ts +0 -23
- package/types/core/src/lang/zh-CN_render.d.ts +0 -38
- package/types/core/src/types/button.d.ts +0 -17
- package/types/core/src/types/designer.d.ts +0 -74
- package/types/core/src/types/fileObject.d.ts +0 -7
- package/types/core/src/types/global.d.ts +0 -20
- package/types/core/src/types/index.d.ts +0 -8
- package/types/core/src/types/rowSelectionType.d.ts +0 -12
- package/types/core/src/types/schema.d.ts +0 -169
- package/types/core/src/types/widgetProps.d.ts +0 -8
- package/types/core/src/utils/emitter.d.ts +0 -17
- package/types/core/src/utils/event-bus.d.ts +0 -10
- package/types/core/src/utils/file.d.ts +0 -0
- package/types/core/src/utils/format.d.ts +0 -46
- package/types/core/src/utils/getFileName.d.ts +0 -1
- package/types/core/src/utils/i18n.d.ts +0 -27
- package/types/core/src/utils/index.d.ts +0 -8
- package/types/core/src/utils/insertAssetsToBody.d.ts +0 -3
- package/types/core/src/utils/request/handleAxiosError.d.ts +0 -11
- package/types/core/src/utils/request/http.d.ts +0 -4
- package/types/core/src/utils/smart-vue-i18n/index.d.ts +0 -11
- package/types/core/src/utils/transformWidgetList.d.ts +0 -2
- package/types/core/src/utils/useEmitter.d.ts +0 -31
- package/types/core/src/utils/util.d.ts +0 -81
- package/types/core/src/utils/validators.d.ts +0 -25
- package/types/core/src/utils/widgetRegistry.d.ts +0 -27
- package/types/pc/src/components/desginer/form-widget/RenderDesignerPC.vue.d.ts +0 -2
- package/types/pc/src/components/desginer/form-widget/container-widget/data-table-widget.vue.d.ts +0 -77
- package/types/pc/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.d.ts +0 -16
- package/types/pc/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.d.ts +0 -5
- package/types/pc/src/components/desginer/form-widget/container-widget/grid-widget.vue.d.ts +0 -5
- package/types/pc/src/components/desginer/form-widget/container-widget/index.d.ts +0 -153
- package/types/pc/src/components/desginer/form-widget/container-widget/tab-widget.vue.d.ts +0 -5
- package/types/pc/src/components/desginer/form-widget/container-widget/useTableWidget.d.ts +0 -274
- package/types/pc/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.d.ts +0 -32
- package/types/pc/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.d.ts +0 -33
- package/types/pc/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.d.ts +0 -4
- package/types/pc/src/components/desginer/form-widget/index.vue.d.ts +0 -171
- package/types/pc/src/components/desginer/index.vue.d.ts +0 -52
- package/types/pc/src/components/desginer/widget-panel/advanced/bpmn-editor.d.ts +0 -13
- package/types/pc/src/components/desginer/widget-panel/advanced/cascader.d.ts +0 -31
- package/types/pc/src/components/desginer/widget-panel/advanced/code-editor.d.ts +0 -18
- package/types/pc/src/components/desginer/widget-panel/advanced/data-table.d.ts +0 -52
- package/types/pc/src/components/desginer/widget-panel/advanced/diy-compontent.d.ts +0 -10
- package/types/pc/src/components/desginer/widget-panel/advanced/file-upload.d.ts +0 -24
- package/types/pc/src/components/desginer/widget-panel/advanced/index.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/advanced/rich-editor.d.ts +0 -22
- package/types/pc/src/components/desginer/widget-panel/advanced/tree-select.d.ts +0 -33
- package/types/pc/src/components/desginer/widget-panel/advanced/tree.d.ts +0 -27
- package/types/pc/src/components/desginer/widget-panel/advancedFieldsEnums.d.ts +0 -11
- package/types/pc/src/components/desginer/widget-panel/basicFields/button.d.ts +0 -17
- package/types/pc/src/components/desginer/widget-panel/basicFields/buttonList.d.ts +0 -22
- package/types/pc/src/components/desginer/widget-panel/basicFields/checkbox.d.ts +0 -27
- package/types/pc/src/components/desginer/widget-panel/basicFields/color.d.ts +0 -16
- package/types/pc/src/components/desginer/widget-panel/basicFields/date.d.ts +0 -29
- package/types/pc/src/components/desginer/widget-panel/basicFields/dateRange.d.ts +0 -29
- package/types/pc/src/components/desginer/widget-panel/basicFields/divider.d.ts +0 -12
- package/types/pc/src/components/desginer/widget-panel/basicFields/dropdown.d.ts +0 -18
- package/types/pc/src/components/desginer/widget-panel/basicFields/htmlText.d.ts +0 -11
- package/types/pc/src/components/desginer/widget-panel/basicFields/input.d.ts +0 -31
- package/types/pc/src/components/desginer/widget-panel/basicFields/number.d.ts +0 -26
- package/types/pc/src/components/desginer/widget-panel/basicFields/radio.d.ts +0 -38
- package/types/pc/src/components/desginer/widget-panel/basicFields/rate.d.ts +0 -23
- package/types/pc/src/components/desginer/widget-panel/basicFields/select.d.ts +0 -35
- package/types/pc/src/components/desginer/widget-panel/basicFields/slider.d.ts +0 -25
- package/types/pc/src/components/desginer/widget-panel/basicFields/staticText.d.ts +0 -11
- package/types/pc/src/components/desginer/widget-panel/basicFields/switch.d.ts +0 -19
- package/types/pc/src/components/desginer/widget-panel/basicFields/textarea.d.ts +0 -35
- package/types/pc/src/components/desginer/widget-panel/basicFields/time.d.ts +0 -26
- package/types/pc/src/components/desginer/widget-panel/basicFields/timeRange.d.ts +0 -27
- package/types/pc/src/components/desginer/widget-panel/basicFieldsEnums.d.ts +0 -38
- package/types/pc/src/components/desginer/widget-panel/containers/grid-col.d.ts +0 -17
- package/types/pc/src/components/desginer/widget-panel/containers/grid-sub-form.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/containers/grid.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/containers/index.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/containers/tab-pane.d.ts +0 -23
- package/types/pc/src/components/desginer/widget-panel/containers/tab.d.ts +0 -9
- package/types/pc/src/components/desginer/widget-panel/containers/vf-box.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/containers/vf-collapse.d.ts +0 -13
- package/types/pc/src/components/desginer/widget-panel/containers/vf-dialog.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/containersEnums.d.ts +0 -1
- package/types/pc/src/components/desginer/widget-panel/index.vue.d.ts +0 -8
- package/types/pc/src/components/desginer/widget-panel/widgetsConfig.d.ts +0 -28
- package/types/pc/src/components/field-widget/hooks/useSelect.d.ts +0 -72
- package/types/pc/src/components/field-widget/index.d.ts +0 -3
- package/types/pc/src/components/field-widget/useField.d.ts +0 -95
- package/types/pc/src/components/form-render/RenderWigetList.vue.d.ts +0 -27
- package/types/pc/src/components/form-render/container-items/data-table-widget.vue.d.ts +0 -95
- package/types/pc/src/components/form-render/container-items/grid-col-widget.vue.d.ts +0 -36
- package/types/pc/src/components/form-render/container-items/grid-sub-form-widget.vue.d.ts +0 -39
- package/types/pc/src/components/form-render/container-items/grid-widget.vue.d.ts +0 -35
- package/types/pc/src/components/form-render/container-items/index.d.ts +0 -255
- package/types/pc/src/components/form-render/container-items/tab-widget.vue.d.ts +0 -5
- package/types/pc/src/components/form-render/container-items/vf-box-widget.vue.d.ts +0 -32
- package/types/pc/src/components/form-render/container-items/vf-collapse-widget.vue.d.ts +0 -33
- package/types/pc/src/components/index.d.ts +0 -4
- package/types/pc/src/components/public/ActionButtonListRender.vue.d.ts +0 -121
- package/types/pc/src/components/public/ConfigView/CustomPageRender.vue.d.ts +0 -16
- package/types/pc/src/components/public/CustomerModal/CustomerModal.vue.d.ts +0 -14
- package/types/pc/src/components/public/CustomerModal/customerModal.d.ts +0 -6
- package/types/pc/src/components/public/CustomerModal/useCustomerModal.d.ts +0 -7
- package/types/pc/src/components/public/DynamicDialog.vue.d.ts +0 -97
- package/types/pc/src/components/render/index.vue.d.ts +0 -82
- package/types/pc/src/components/render/useRenderWidget.d.ts +0 -3
- package/types/pc/src/designer.d.ts +0 -233
- package/types/pc/src/hooks/useLowcode.d.ts +0 -21
- package/types/pc/src/hooks/useWidget.d.ts +0 -7
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { useTemplateRef, ref, computed, watchEffect, onMounted, nextTick } from "vue";
|
|
2
|
+
import { set, cloneDeep } from "lodash-es";
|
|
3
|
+
import { message } from "ant-design-vue";
|
|
4
|
+
import { getUuidKey } from "@kp-ui/tool";
|
|
5
|
+
import { useRef, useExecFunction } from "tmgc2-share";
|
|
6
|
+
import { useEmitter } from "../../../utils/useEmitter.js";
|
|
7
|
+
import { useAppRef } from "../../../hooks/useAppRef.js";
|
|
8
|
+
import { useFormValidation } from "../../../hooks/useFormValidation.js";
|
|
9
|
+
import { getContainerWidgetByName, cloneFormConfigWithoutEventHandler, insertCustomCssToHead, insertGlobalFunctionsToHtml, generateId } from "../../../utils/util.js";
|
|
10
|
+
import { useI18n } from "../../../utils/i18n.js";
|
|
11
|
+
const useFormContext = ({ renderForm, props }) => {
|
|
12
|
+
const { formJson } = props;
|
|
13
|
+
const dynamicDialogRef = useTemplateRef("dynamicDialogRef");
|
|
14
|
+
const { i18nt } = useI18n();
|
|
15
|
+
const [readModeFlag, setReadMode] = useRef(false);
|
|
16
|
+
const emitter = useEmitter();
|
|
17
|
+
const formJsonObj = ref();
|
|
18
|
+
const formDataModel = ref({});
|
|
19
|
+
const isLoading = ref(false);
|
|
20
|
+
const widgetRefList = ref(/* @__PURE__ */ new Map());
|
|
21
|
+
const dialogProps = ref({});
|
|
22
|
+
const childFormRef = ref();
|
|
23
|
+
const formWidgetId = Symbol("formWidget");
|
|
24
|
+
const dialogOrDrawerRef = ref();
|
|
25
|
+
const { executeFunction, context, execHttpFunction } = useExecFunction();
|
|
26
|
+
const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);
|
|
27
|
+
const formConfig = computed(() => {
|
|
28
|
+
var _a;
|
|
29
|
+
return ((_a = formJsonObj.value) == null ? void 0 : _a.formConfig) || {};
|
|
30
|
+
});
|
|
31
|
+
const widgetList = computed(() => {
|
|
32
|
+
var _a;
|
|
33
|
+
return ((_a = formJsonObj.value) == null ? void 0 : _a.widgetList) || [];
|
|
34
|
+
});
|
|
35
|
+
const labelPosition = computed(() => {
|
|
36
|
+
var _a;
|
|
37
|
+
return ((_a = formConfig.value) == null ? void 0 : _a.labelPosition) || "horizontal";
|
|
38
|
+
});
|
|
39
|
+
const setChildFormRef = (chid) => {
|
|
40
|
+
childFormRef.value = chid;
|
|
41
|
+
};
|
|
42
|
+
const labelWidth = computed(() => {
|
|
43
|
+
var _a;
|
|
44
|
+
return ((_a = formConfig.value) == null ? void 0 : _a.labelWidth) ? `${formConfig.value.labelWidth}px` : "80px";
|
|
45
|
+
});
|
|
46
|
+
const customClass = computed(() => {
|
|
47
|
+
var _a;
|
|
48
|
+
return ((_a = formConfig.value) == null ? void 0 : _a.customClass) || "";
|
|
49
|
+
});
|
|
50
|
+
let formValidator = useFormValidation(renderForm);
|
|
51
|
+
watchEffect(() => {
|
|
52
|
+
formValidator = useFormValidation(renderForm);
|
|
53
|
+
});
|
|
54
|
+
const setFormJson = async (json) => {
|
|
55
|
+
formJsonObj.value = json || { widgetList: [], formConfig: {} };
|
|
56
|
+
formDataModel.value = {};
|
|
57
|
+
insertCustomCode();
|
|
58
|
+
await nextTick();
|
|
59
|
+
handleOnMounted();
|
|
60
|
+
};
|
|
61
|
+
const getFormData = () => {
|
|
62
|
+
return formDataModel.value || {};
|
|
63
|
+
};
|
|
64
|
+
const setFormData = (data) => {
|
|
65
|
+
if (!data) return;
|
|
66
|
+
Object.keys(data).forEach((key) => {
|
|
67
|
+
if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {
|
|
68
|
+
formDataModel.value[key] = data[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
const setLoading = (loading) => {
|
|
73
|
+
isLoading.value = loading;
|
|
74
|
+
};
|
|
75
|
+
const resetValidation = () => {
|
|
76
|
+
formValidator.resetValidation();
|
|
77
|
+
};
|
|
78
|
+
const clearValidate = () => {
|
|
79
|
+
formValidator.clearValidate();
|
|
80
|
+
};
|
|
81
|
+
const setDialogOrDrawerRef = (ddRef) => {
|
|
82
|
+
dialogOrDrawerRef.value = ddRef;
|
|
83
|
+
};
|
|
84
|
+
const getTopFormRef = () => {
|
|
85
|
+
if (!props.parentForm) {
|
|
86
|
+
return getFormRef();
|
|
87
|
+
}
|
|
88
|
+
let topFormRef = props.parentForm;
|
|
89
|
+
while (topFormRef.parentForm) {
|
|
90
|
+
topFormRef = topFormRef.parentForm;
|
|
91
|
+
}
|
|
92
|
+
return topFormRef;
|
|
93
|
+
};
|
|
94
|
+
const showDialog = (dialogName, formData = {}, extraData = {}) => {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
const topFormRef = getTopFormRef();
|
|
97
|
+
const dialogCon = getContainerWidgetByName((topFormRef == null ? void 0 : topFormRef.widgetList) || [], dialogName) || getContainerWidgetByName(widgetList.value || [], dialogName);
|
|
98
|
+
if (dialogCon === null) {
|
|
99
|
+
message.error(i18nt("render.hint.refNotFound") + dialogName);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!dialogName || dialogCon.type !== "vf-dialog") {
|
|
103
|
+
message.error(i18nt("render.hint.refNotFound") + dialogName);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const dFormJson = {
|
|
107
|
+
widgetList: cloneDeep((dialogCon == null ? void 0 : dialogCon.widgetList) || []),
|
|
108
|
+
formConfig: cloneFormConfigWithoutEventHandler(((_a = topFormRef == null ? void 0 : topFormRef.formConfig) == null ? void 0 : _a.value) || {})
|
|
109
|
+
};
|
|
110
|
+
const wrapperDivId = getUuidKey();
|
|
111
|
+
dialogProps.value = {
|
|
112
|
+
options: dialogCon.options,
|
|
113
|
+
formJson: dFormJson,
|
|
114
|
+
formData: { ...formData },
|
|
115
|
+
optionData: topFormRef.optionData,
|
|
116
|
+
parentFormRef: context.value,
|
|
117
|
+
extraData,
|
|
118
|
+
wrapperId: wrapperDivId,
|
|
119
|
+
vfCtx: { ...formData }
|
|
120
|
+
};
|
|
121
|
+
(_b = dynamicDialogRef.value) == null ? void 0 : _b.show();
|
|
122
|
+
};
|
|
123
|
+
const getParentFormRef = () => {
|
|
124
|
+
return props.parentForm;
|
|
125
|
+
};
|
|
126
|
+
const getChildFormRef = () => {
|
|
127
|
+
var _a;
|
|
128
|
+
return (_a = dynamicDialogRef.value) == null ? void 0 : _a.getFormRef();
|
|
129
|
+
};
|
|
130
|
+
const fieldChangeEventHandler = () => {
|
|
131
|
+
emitter.off$("fieldChange");
|
|
132
|
+
emitter.on$("fieldChange", ({ fieldName, value }) => {
|
|
133
|
+
if (fieldName) {
|
|
134
|
+
set(formDataModel.value, fieldName, value);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const onFormDetail = async () => {
|
|
139
|
+
const serveList = formConfig.value.serveList;
|
|
140
|
+
const res = await execHttpFunction(serveList.vformDetail, {
|
|
141
|
+
vfCtx: props.vfCtx
|
|
142
|
+
});
|
|
143
|
+
console.log("res: ", res);
|
|
144
|
+
return res;
|
|
145
|
+
};
|
|
146
|
+
const onFormUpdate = async () => {
|
|
147
|
+
const valid = await formValidator.validate();
|
|
148
|
+
if (!valid) throw new Error(i18nt("表单验证失败"));
|
|
149
|
+
const serveList = formConfig.value.serveList;
|
|
150
|
+
const res = await execHttpFunction(serveList.vformUpdate, {
|
|
151
|
+
data: formDataModel.value,
|
|
152
|
+
vfCtx: props.vfCtx
|
|
153
|
+
});
|
|
154
|
+
console.log("res: ", res);
|
|
155
|
+
return res;
|
|
156
|
+
};
|
|
157
|
+
const handleOnMounted = () => {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
if ((_a = formConfig.value) == null ? void 0 : _a.onFormMounted) {
|
|
160
|
+
console.log("onFormMounted: ");
|
|
161
|
+
executeFunction({
|
|
162
|
+
functionBody: (_b = formConfig.value) == null ? void 0 : _b.onFormMounted
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
const insertCustomCode = () => {
|
|
167
|
+
const formId = "vfRender" + generateId();
|
|
168
|
+
const { cssCode, functions } = formConfig.value;
|
|
169
|
+
console.log({ cssCode });
|
|
170
|
+
if (cssCode) {
|
|
171
|
+
insertCustomCssToHead(cssCode, formId || "");
|
|
172
|
+
}
|
|
173
|
+
if (functions) {
|
|
174
|
+
insertGlobalFunctionsToHtml(functions, formId || "");
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
const reload = () => {
|
|
178
|
+
var _a;
|
|
179
|
+
const router = (_a = context.value) == null ? void 0 : _a.$router;
|
|
180
|
+
router == null ? void 0 : router.replace({
|
|
181
|
+
query: {
|
|
182
|
+
...router.currentRoute.value.query,
|
|
183
|
+
_t: Date.now()
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
const goBack = (reloadStatus, cb) => {
|
|
188
|
+
var _a, _b;
|
|
189
|
+
const goBack2 = (_a = getFormRef().vfCtx) == null ? void 0 : _a.goBack;
|
|
190
|
+
if (typeof goBack2 === "function") {
|
|
191
|
+
goBack2(reloadStatus, cb);
|
|
192
|
+
} else {
|
|
193
|
+
const router = (_b = context.value) == null ? void 0 : _b.$router;
|
|
194
|
+
router == null ? void 0 : router.go(-1);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
const getFieldValue = (field) => {
|
|
198
|
+
return formDataModel.value[field];
|
|
199
|
+
};
|
|
200
|
+
const getVfCtx = () => {
|
|
201
|
+
return props.vfCtx;
|
|
202
|
+
};
|
|
203
|
+
onMounted(() => {
|
|
204
|
+
if (formJson) {
|
|
205
|
+
setFormJson(formJson);
|
|
206
|
+
}
|
|
207
|
+
fieldChangeEventHandler();
|
|
208
|
+
});
|
|
209
|
+
const expose = {
|
|
210
|
+
context,
|
|
211
|
+
i18nt,
|
|
212
|
+
goBack,
|
|
213
|
+
reload,
|
|
214
|
+
formValidator,
|
|
215
|
+
getFieldValue,
|
|
216
|
+
resetValidation,
|
|
217
|
+
clearValidate,
|
|
218
|
+
getVfCtx,
|
|
219
|
+
getParentFormRef,
|
|
220
|
+
getFormRef,
|
|
221
|
+
getWidgetRef,
|
|
222
|
+
showDialog,
|
|
223
|
+
getFormData,
|
|
224
|
+
getChildFormRef,
|
|
225
|
+
setFormData,
|
|
226
|
+
setReadMode,
|
|
227
|
+
setFormJson,
|
|
228
|
+
setLoading,
|
|
229
|
+
onFormDetail,
|
|
230
|
+
onFormUpdate,
|
|
231
|
+
formDataModel,
|
|
232
|
+
isLoading,
|
|
233
|
+
vfCtx: props.vfCtx,
|
|
234
|
+
// 计算属性
|
|
235
|
+
formConfig,
|
|
236
|
+
dynamicDialogRef,
|
|
237
|
+
setChildFormRef,
|
|
238
|
+
setDialogOrDrawerRef
|
|
239
|
+
};
|
|
240
|
+
return {
|
|
241
|
+
formWidgetId,
|
|
242
|
+
registerToRefList,
|
|
243
|
+
dialogOrDrawerRef,
|
|
244
|
+
emitter,
|
|
245
|
+
// 状态
|
|
246
|
+
formJsonObj,
|
|
247
|
+
readModeFlag,
|
|
248
|
+
// 引用
|
|
249
|
+
widgetRefList,
|
|
250
|
+
widgetList,
|
|
251
|
+
labelPosition,
|
|
252
|
+
labelWidth,
|
|
253
|
+
customClass,
|
|
254
|
+
dialogProps,
|
|
255
|
+
expose,
|
|
256
|
+
...expose
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
export {
|
|
260
|
+
useFormContext
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=useFormContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormContext.js","sources":["../../../../../../../core/src/components/common/render/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, useTemplateRef, watchEffect } from 'vue';\nimport {\n useFormValidation,\n FormConfig,\n Widget,\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@kp-ui/lowcode-core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport { useEmitter } from '@kp-ui/lowcode-core/src/utils/useEmitter';\nimport { useI18n, useAppRef } from '@kp-ui/lowcode-core';\n\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialogRef = useTemplateRef<any>('dynamicDialogRef');\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialogRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialogRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n if (fieldName) {\n // 过滤掉错误值\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n console.log({ cssCode });\n\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n const getFieldValue = (field: string) => {\n return formDataModel.value[field];\n };\n\n const getVfCtx = () => {\n return props.vfCtx;\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n });\n\n const expose = {\n context,\n i18nt,\n goBack,\n reload,\n formValidator,\n getFieldValue,\n resetValidation,\n clearValidate,\n getVfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n showDialog,\n getFormData,\n getChildFormRef,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n formDataModel,\n isLoading,\n vfCtx: props.vfCtx,\n // 计算属性\n formConfig,\n dynamicDialogRef,\n setChildFormRef,\n setDialogOrDrawerRef\n };\n\n return {\n formWidgetId,\n registerToRefList,\n dialogOrDrawerRef,\n\n emitter,\n // 状态\n formJsonObj,\n readModeFlag,\n // 引用\n widgetRefList,\n\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dialogProps,\n\n expose,\n ...expose\n };\n};\n"],"names":["goBack"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from "./WidgetContextMenu.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const WidgetContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8adfdf56"]]);
|
|
5
|
+
export {
|
|
6
|
+
WidgetContextMenu as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=WidgetContextMenu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetContextMenu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { defineComponent, mergeModels, useModel, resolveComponent, createBlock, openBlock, withCtx, createElementVNode, normalizeStyle, createVNode, createElementBlock, Fragment, renderList, unref, createCommentVNode, createSlots, createTextVNode, toDisplayString, resolveDynamicComponent } from "vue";
|
|
2
|
+
import { useWidgetContextMenu } from "./useWidgetContextMenu.js";
|
|
3
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
|
+
...{
|
|
5
|
+
name: "WidgetContextMenu"
|
|
6
|
+
},
|
|
7
|
+
__name: "WidgetContextMenu",
|
|
8
|
+
props: /* @__PURE__ */ mergeModels({
|
|
9
|
+
widget: {},
|
|
10
|
+
index: {},
|
|
11
|
+
visible: { type: Boolean },
|
|
12
|
+
x: {},
|
|
13
|
+
y: {},
|
|
14
|
+
parentWidget: {}
|
|
15
|
+
}, {
|
|
16
|
+
"list": { default: () => [] },
|
|
17
|
+
"listModifiers": {}
|
|
18
|
+
}),
|
|
19
|
+
emits: /* @__PURE__ */ mergeModels(["update:visible"], ["update:list"]),
|
|
20
|
+
setup(__props, { emit: __emit }) {
|
|
21
|
+
const props = __props;
|
|
22
|
+
const list = useModel(__props, "list");
|
|
23
|
+
const emit = __emit;
|
|
24
|
+
const handleVisibleChange = (val) => {
|
|
25
|
+
emit("update:visible", val);
|
|
26
|
+
};
|
|
27
|
+
const { menuConfigs } = useWidgetContextMenu({
|
|
28
|
+
widget: props.widget,
|
|
29
|
+
index: props.index,
|
|
30
|
+
parentWidget: props.parentWidget,
|
|
31
|
+
list,
|
|
32
|
+
onClose: () => handleVisibleChange(false)
|
|
33
|
+
});
|
|
34
|
+
return (_ctx, _cache) => {
|
|
35
|
+
const _component_a_menu_divider = resolveComponent("a-menu-divider");
|
|
36
|
+
const _component_a_menu_item = resolveComponent("a-menu-item");
|
|
37
|
+
const _component_a_sub_menu = resolveComponent("a-sub-menu");
|
|
38
|
+
const _component_a_menu = resolveComponent("a-menu");
|
|
39
|
+
const _component_a_dropdown = resolveComponent("a-dropdown");
|
|
40
|
+
return openBlock(), createBlock(_component_a_dropdown, {
|
|
41
|
+
open: _ctx.visible,
|
|
42
|
+
"onUpdate:open": handleVisibleChange,
|
|
43
|
+
trigger: ["click"]
|
|
44
|
+
}, {
|
|
45
|
+
overlay: withCtx(() => [
|
|
46
|
+
createVNode(_component_a_menu, null, {
|
|
47
|
+
default: withCtx(() => [
|
|
48
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuConfigs), (item) => {
|
|
49
|
+
return openBlock(), createElementBlock(Fragment, {
|
|
50
|
+
key: item.key
|
|
51
|
+
}, [
|
|
52
|
+
item.divider ? (openBlock(), createBlock(_component_a_menu_divider, { key: 0 })) : !item.hidden ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
53
|
+
item.children ? (openBlock(), createBlock(_component_a_sub_menu, {
|
|
54
|
+
key: 0,
|
|
55
|
+
title: item.label
|
|
56
|
+
}, createSlots({
|
|
57
|
+
default: withCtx(() => [
|
|
58
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (sub) => {
|
|
59
|
+
return openBlock(), createBlock(_component_a_menu_item, {
|
|
60
|
+
key: sub.key,
|
|
61
|
+
onClick: sub.onClick
|
|
62
|
+
}, createSlots({
|
|
63
|
+
default: withCtx(() => [
|
|
64
|
+
createTextVNode(" " + toDisplayString(sub.label), 1)
|
|
65
|
+
]),
|
|
66
|
+
_: 2
|
|
67
|
+
}, [
|
|
68
|
+
sub.icon ? {
|
|
69
|
+
name: "icon",
|
|
70
|
+
fn: withCtx(() => [
|
|
71
|
+
(openBlock(), createBlock(resolveDynamicComponent(sub.icon)))
|
|
72
|
+
]),
|
|
73
|
+
key: "0"
|
|
74
|
+
} : void 0
|
|
75
|
+
]), 1032, ["onClick"]);
|
|
76
|
+
}), 128))
|
|
77
|
+
]),
|
|
78
|
+
_: 2
|
|
79
|
+
}, [
|
|
80
|
+
item.icon ? {
|
|
81
|
+
name: "icon",
|
|
82
|
+
fn: withCtx(() => [
|
|
83
|
+
(openBlock(), createBlock(resolveDynamicComponent(item.icon)))
|
|
84
|
+
]),
|
|
85
|
+
key: "0"
|
|
86
|
+
} : void 0
|
|
87
|
+
]), 1032, ["title"])) : (openBlock(), createBlock(_component_a_menu_item, {
|
|
88
|
+
onClick: item.onClick,
|
|
89
|
+
key: item.key
|
|
90
|
+
}, createSlots({
|
|
91
|
+
default: withCtx(() => [
|
|
92
|
+
createTextVNode(" " + toDisplayString(item.label), 1)
|
|
93
|
+
]),
|
|
94
|
+
_: 2
|
|
95
|
+
}, [
|
|
96
|
+
item.icon ? {
|
|
97
|
+
name: "icon",
|
|
98
|
+
fn: withCtx(() => [
|
|
99
|
+
(openBlock(), createBlock(resolveDynamicComponent(item.icon)))
|
|
100
|
+
]),
|
|
101
|
+
key: "0"
|
|
102
|
+
} : void 0
|
|
103
|
+
]), 1032, ["onClick"]))
|
|
104
|
+
], 64)) : createCommentVNode("", true)
|
|
105
|
+
], 64);
|
|
106
|
+
}), 128))
|
|
107
|
+
]),
|
|
108
|
+
_: 1
|
|
109
|
+
})
|
|
110
|
+
]),
|
|
111
|
+
default: withCtx(() => [
|
|
112
|
+
createElementVNode("div", {
|
|
113
|
+
class: "context-menu-trigger",
|
|
114
|
+
style: normalizeStyle({ position: "fixed", left: _ctx.x + "px", top: _ctx.y + "px" })
|
|
115
|
+
}, null, 4)
|
|
116
|
+
]),
|
|
117
|
+
_: 1
|
|
118
|
+
}, 8, ["open"]);
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
export {
|
|
123
|
+
_sfc_main as default
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=WidgetContextMenu.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetContextMenu.vue2.js","sources":["../../../../../../core/src/components/contextMenu/WidgetContextMenu.vue"],"sourcesContent":["<template>\n <a-dropdown :open=\"visible\" @update:open=\"handleVisibleChange\" :trigger=\"['click']\">\n <div\n class=\"context-menu-trigger\"\n :style=\"{ position: 'fixed', left: x + 'px', top: y + 'px' }\"\n ></div>\n <template #overlay>\n <a-menu>\n <template v-for=\"item in menuConfigs\" :key=\"item.key\">\n <a-menu-divider v-if=\"item.divider\" />\n <template v-else-if=\"!item.hidden\">\n <a-sub-menu v-if=\"item.children\" :title=\"item.label\">\n <template #icon v-if=\"item.icon\">\n <component :is=\"item.icon\" />\n </template>\n <a-menu-item\n v-for=\"sub in item.children\"\n :key=\"sub.key\"\n @click=\"sub.onClick\"\n >\n <template #icon v-if=\"sub.icon\">\n <component :is=\"sub.icon\" />\n </template>\n {{ sub.label }}\n </a-menu-item>\n </a-sub-menu>\n <a-menu-item v-else @click=\"item.onClick\" :key=\"item.key\">\n <template #icon v-if=\"item.icon\">\n <component :is=\"item.icon\" />\n </template>\n {{ item.label }}\n </a-menu-item>\n </template>\n </template>\n </a-menu>\n </template>\n </a-dropdown>\n</template>\n\n<script lang=\"ts\" setup>\n import { Widget } from '@kp-ui/lowcode-core/src/types/schema';\n import { useWidgetContextMenu } from './useWidgetContextMenu';\n\n defineOptions({\n name: 'WidgetContextMenu'\n });\n\n const props = defineProps<{\n widget: Widget | null;\n index: number;\n visible: boolean;\n x: number;\n y: number;\n parentWidget?: any;\n }>();\n const list = defineModel<Widget[]>('list', { default: () => [] });\n\n const emit = defineEmits<{\n (e: 'update:visible', visible: boolean): void;\n }>();\n\n const handleVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n };\n\n const { menuConfigs } = useWidgetContextMenu({\n widget: props.widget as Widget,\n index: props.index,\n parentWidget: props.parentWidget,\n list: list,\n onClose: () => handleVisibleChange(false)\n });\n</script>\n\n<style scoped>\n .context-menu-trigger {\n width: 1px;\n height: 1px;\n z-index: 9999;\n }\n</style>\n"],"names":["_useModel","_createBlock","visible","_createVNode","_createElementBlock","_Fragment","_renderList","_unref","_openBlock","_toDisplayString","_resolveDynamicComponent","_createElementVNode","_normalizeStyle","x","y"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+CI,UAAM,QAAQ;AAQd,UAAM,OAAOA,SAAqB,SAAC,MAA6B;AAEhE,UAAM,OAAO;AAIb,UAAM,sBAAsB,CAAC,QAAiB;AAC1C,WAAK,kBAAkB,GAAG;AAAA,IAC9B;AAEA,UAAM,EAAE,YAAA,IAAgB,qBAAqB;AAAA,MACzC,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,cAAc,MAAM;AAAA,MACpB;AAAA,MACA,SAAS,MAAM,oBAAoB,KAAK;AAAA,IAAA,CAC3C;;;;;;;0BAtEDC,YAmCa,uBAAA;AAAA,QAnCA,MAAMC,KAAAA;AAAAA,QAAU,iBAAa;AAAA,QAAsB,SAAS,CAAA,OAAA;AAAA,MAAA;QAK1D,iBACP,MA2BS;AAAA,UA3BTC,YA2BS,mBAAA,MAAA;AAAA,6BA1BK,MAA2B;AAAA,gCAArCC,mBAyBWC,UAAA,MAAAC,WAzBcC,MAAA,WAAA,GAAW,CAAnB,SAAI;;kBAAuB,KAAA,KAAK;AAAA,gBAAA;kBACvB,KAAK,wBAA3BN,YAAsC,2BAAA,EAAA,KAAA,EAAA,CAAA,KAChB,CAAA,KAAK,uBAA3BG,mBAsBWC,UAAA,EAAA,KAAA,KAAA;AAAA,oBArBW,KAAK,yBAAvBJ,YAca,uBAAA;AAAA;sBAdqB,OAAO,KAAK;AAAA,oBAAA;uCAKtC,MAA4B;AAAA,yBADhCO,UAAA,IAAA,GAAAJ,mBAScC,UAAA,MAAAC,WARI,KAAK,WAAZ,QAAG;8CADdL,YASc,wBAAA;AAAA,4BAPT,KAAK,IAAI;AAAA,4BACT,SAAO,IAAI;AAAA,0BAAA;6CAID,MACX;AAAA,8CADW,MACXQ,gBAAG,IAAI,KAAK,GAAA,CAAA;AAAA,4BAAA;;;4BAHU,IAAI;oCAAf;AAAA,0CACP,MAA4B;AAAA,8CAA5BR,YAA4BS,wBAAZ,IAAI,IAAI,CAAA;AAAA,8BAAA;;;;;;;;sBATV,KAAK;8BAAhB;AAAA,oCACP,MAA6B;AAAA,wCAA7BT,YAA6BS,wBAAb,KAAK,IAAI,CAAA;AAAA,wBAAA;;;0DAajCT,YAKc,wBAAA;AAAA,sBALO,SAAO,KAAK;AAAA,sBAAU,KAAK,KAAK;AAAA,oBAAA;uCAGtC,MACX;AAAA,wCADW,MACXQ,gBAAG,KAAK,KAAK,GAAA,CAAA;AAAA,sBAAA;;;sBAHS,KAAK;8BAAhB;AAAA,oCACP,MAA6B;AAAA,wCAA7BR,YAA6BS,wBAAb,KAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;yBA1BjD,MAGO;AAAA,UAHPC,mBAGO,OAAA;AAAA,YAFH,OAAM;AAAA,YACL,OAAKC,eAAA,EAAA,UAAA,SAAA,MAA6BC,KAAAA,IAAC,MAAA,KAAcC,KAAAA,IAAC,MAAA;AAAA,UAAA;;;;;;;"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { computed } from "vue";
|
|
2
|
+
import { RollbackOutlined, UnlockOutlined, LockOutlined, VerticalAlignTopOutlined, VerticalAlignBottomOutlined, ArrowUpOutlined, ArrowDownOutlined, AppstoreOutlined, CopyOutlined, DeleteOutlined } from "@ant-design/icons-vue";
|
|
3
|
+
import { useDesigner } from "../../hooks/useDesigner.js";
|
|
4
|
+
import { useI18n } from "../../utils/i18n.js";
|
|
5
|
+
function useWidgetContextMenu(props) {
|
|
6
|
+
const { designer, isBI } = useDesigner();
|
|
7
|
+
const { i18nt } = useI18n();
|
|
8
|
+
const moveUpWidget = () => {
|
|
9
|
+
designer.value.moveUpWidget(props.list.value, props.index);
|
|
10
|
+
designer.value.emitHistoryChange();
|
|
11
|
+
};
|
|
12
|
+
const moveDownWidget = () => {
|
|
13
|
+
designer.value.moveDownWidget(props.list.value, props.index);
|
|
14
|
+
designer.value.emitHistoryChange();
|
|
15
|
+
};
|
|
16
|
+
const cloneWidget = () => {
|
|
17
|
+
const list = props.list.value;
|
|
18
|
+
if (!list) return;
|
|
19
|
+
const cloned = designer.value.copyWidget(props.widget);
|
|
20
|
+
list.splice(props.index + 1, 0, cloned);
|
|
21
|
+
designer.value.setSelected(cloned);
|
|
22
|
+
designer.value.emitHistoryChange();
|
|
23
|
+
};
|
|
24
|
+
const removeWidget = () => {
|
|
25
|
+
designer.value.removeWidget(props.list.value, props.index, props.parentWidget);
|
|
26
|
+
};
|
|
27
|
+
const selectParentWidget = () => {
|
|
28
|
+
var _a;
|
|
29
|
+
if ((_a = props.parentWidget) == null ? void 0 : _a.id) {
|
|
30
|
+
designer.value.setSelected(props.parentWidget);
|
|
31
|
+
} else {
|
|
32
|
+
designer.value.clearSelected();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const handleAction = (action) => {
|
|
36
|
+
action();
|
|
37
|
+
props.onClose();
|
|
38
|
+
};
|
|
39
|
+
const handleLock = () => {
|
|
40
|
+
props.widget.options.locked = !props.widget.options.locked;
|
|
41
|
+
props.onClose();
|
|
42
|
+
};
|
|
43
|
+
const handleLayer = (type) => {
|
|
44
|
+
const widget = props.widget;
|
|
45
|
+
const zIndex = widget.options.zIndex || 0;
|
|
46
|
+
const list = designer.value.widgetList;
|
|
47
|
+
switch (type) {
|
|
48
|
+
case "top":
|
|
49
|
+
const maxZ = Math.max(...list.map((w) => w.options.zIndex || 0));
|
|
50
|
+
widget.options.zIndex = maxZ + 1;
|
|
51
|
+
break;
|
|
52
|
+
case "bottom":
|
|
53
|
+
const minZ = Math.min(...list.map((w) => w.options.zIndex || 0));
|
|
54
|
+
widget.options.zIndex = minZ - 1;
|
|
55
|
+
break;
|
|
56
|
+
case "up":
|
|
57
|
+
widget.options.zIndex = zIndex + 1;
|
|
58
|
+
break;
|
|
59
|
+
case "down":
|
|
60
|
+
widget.options.zIndex = zIndex - 1;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
props.onClose();
|
|
64
|
+
};
|
|
65
|
+
const menuConfigs = computed(() => {
|
|
66
|
+
var _a;
|
|
67
|
+
const configs = [];
|
|
68
|
+
if ((_a = props.parentWidget) == null ? void 0 : _a.id) {
|
|
69
|
+
configs.push({
|
|
70
|
+
key: "selectParent",
|
|
71
|
+
label: i18nt("designer.hint.selectParentWidget"),
|
|
72
|
+
icon: RollbackOutlined,
|
|
73
|
+
onClick: () => handleAction(selectParentWidget)
|
|
74
|
+
});
|
|
75
|
+
configs.push({ key: "d1", divider: true });
|
|
76
|
+
}
|
|
77
|
+
if (isBI.value) {
|
|
78
|
+
configs.push({
|
|
79
|
+
key: "lock",
|
|
80
|
+
label: props.widget.options.locked ? i18nt("designer.hint.unlock") : i18nt("designer.hint.lock"),
|
|
81
|
+
icon: props.widget.options.locked ? UnlockOutlined : LockOutlined,
|
|
82
|
+
onClick: handleLock
|
|
83
|
+
});
|
|
84
|
+
configs.push({
|
|
85
|
+
key: "layer",
|
|
86
|
+
label: i18nt("designer.hint.layer"),
|
|
87
|
+
icon: AppstoreOutlined,
|
|
88
|
+
children: [
|
|
89
|
+
{
|
|
90
|
+
key: "bringToFront",
|
|
91
|
+
label: i18nt("designer.hint.bringToFront"),
|
|
92
|
+
icon: VerticalAlignTopOutlined,
|
|
93
|
+
onClick: () => handleLayer("top")
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
key: "sendToBack",
|
|
97
|
+
label: i18nt("designer.hint.sendToBack"),
|
|
98
|
+
icon: VerticalAlignBottomOutlined,
|
|
99
|
+
onClick: () => handleLayer("bottom")
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
key: "bringForward",
|
|
103
|
+
label: i18nt("designer.hint.bringForward"),
|
|
104
|
+
icon: ArrowUpOutlined,
|
|
105
|
+
onClick: () => handleLayer("up")
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
key: "sendBackward",
|
|
109
|
+
label: i18nt("designer.hint.sendBackward"),
|
|
110
|
+
icon: ArrowDownOutlined,
|
|
111
|
+
onClick: () => handleLayer("down")
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
});
|
|
115
|
+
configs.push({
|
|
116
|
+
key: "clone",
|
|
117
|
+
label: i18nt("designer.hint.cloneWidget"),
|
|
118
|
+
icon: CopyOutlined,
|
|
119
|
+
onClick: () => handleAction(cloneWidget)
|
|
120
|
+
});
|
|
121
|
+
configs.push({ key: "d2", divider: true });
|
|
122
|
+
} else {
|
|
123
|
+
configs.push({
|
|
124
|
+
key: "moveUp",
|
|
125
|
+
label: i18nt("designer.hint.moveUpWidget"),
|
|
126
|
+
icon: ArrowUpOutlined,
|
|
127
|
+
onClick: () => handleAction(moveUpWidget),
|
|
128
|
+
hidden: props.index <= 0
|
|
129
|
+
});
|
|
130
|
+
configs.push({
|
|
131
|
+
key: "moveDown",
|
|
132
|
+
label: i18nt("designer.hint.moveDownWidget"),
|
|
133
|
+
icon: ArrowDownOutlined,
|
|
134
|
+
onClick: () => handleAction(moveDownWidget),
|
|
135
|
+
hidden: props.index >= props.list.value.length - 1
|
|
136
|
+
});
|
|
137
|
+
configs.push({
|
|
138
|
+
key: "clone",
|
|
139
|
+
label: i18nt("designer.hint.cloneWidget"),
|
|
140
|
+
icon: CopyOutlined,
|
|
141
|
+
onClick: () => handleAction(cloneWidget)
|
|
142
|
+
});
|
|
143
|
+
configs.push({ key: "d3", divider: true });
|
|
144
|
+
}
|
|
145
|
+
configs.push({
|
|
146
|
+
key: "delete",
|
|
147
|
+
label: i18nt("designer.hint.remove"),
|
|
148
|
+
icon: DeleteOutlined,
|
|
149
|
+
onClick: () => handleAction(removeWidget)
|
|
150
|
+
});
|
|
151
|
+
return configs.filter((item) => !item.hidden);
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
menuConfigs,
|
|
155
|
+
moveUpWidget,
|
|
156
|
+
moveDownWidget,
|
|
157
|
+
cloneWidget,
|
|
158
|
+
removeWidget,
|
|
159
|
+
selectParentWidget
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
export {
|
|
163
|
+
useWidgetContextMenu
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=useWidgetContextMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetContextMenu.js","sources":["../../../../../../core/src/components/contextMenu/useWidgetContextMenu.ts"],"sourcesContent":["import { Component, computed, Ref } from 'vue';\nimport { Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport {\n DeleteOutlined,\n LockOutlined,\n UnlockOutlined,\n VerticalAlignTopOutlined,\n VerticalAlignBottomOutlined,\n ArrowUpOutlined,\n ArrowDownOutlined,\n AppstoreOutlined,\n CopyOutlined,\n RollbackOutlined\n} from '@ant-design/icons-vue';\nimport { useDesigner } from '@kp-ui/lowcode-core';\nimport { useI18n } from '@kp-ui/lowcode-core';\n\nexport interface MenuItem {\n key: string;\n label?: string;\n icon?: Component;\n onClick?: () => void;\n divider?: boolean;\n children?: MenuItem[];\n hidden?: boolean;\n}\n\nexport function useWidgetContextMenu(props: {\n widget: Widget;\n index: number;\n parentWidget?: Widget;\n onClose: () => void;\n list: Ref<Widget[]>;\n}) {\n const { designer, isBI } = useDesigner();\n const { i18nt } = useI18n();\n\n // 上移组件\n const moveUpWidget = () => {\n designer.value.moveUpWidget(props.list.value, props.index);\n designer.value.emitHistoryChange();\n };\n\n // 下移组件\n const moveDownWidget = () => {\n designer.value.moveDownWidget(props.list.value, props.index);\n designer.value.emitHistoryChange();\n };\n\n // 复制组件\n const cloneWidget = () => {\n const list = props.list.value;\n if (!list) return;\n const cloned = designer.value.copyWidget(props.widget);\n list.splice(props.index + 1, 0, cloned);\n designer.value.setSelected(cloned);\n designer.value.emitHistoryChange();\n };\n\n // 删除组件\n const removeWidget = () => {\n designer.value.removeWidget(props.list.value, props.index, props.parentWidget);\n };\n\n // 选择父组件\n const selectParentWidget = () => {\n if (props.parentWidget?.id) {\n designer.value.setSelected(props.parentWidget);\n } else {\n designer.value.clearSelected();\n }\n };\n\n const handleAction = (action: () => void) => {\n action();\n props.onClose();\n };\n\n const handleLock = () => {\n props.widget.options.locked = !props.widget.options.locked;\n props.onClose();\n };\n\n const handleLayer = (type: 'top' | 'bottom' | 'up' | 'down') => {\n const widget = props.widget;\n const zIndex = widget.options.zIndex || 0;\n const list = designer.value.widgetList;\n switch (type) {\n case 'top':\n const maxZ = Math.max(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = maxZ + 1;\n break;\n case 'bottom':\n const minZ = Math.min(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = minZ - 1;\n break;\n case 'up':\n widget.options.zIndex = zIndex + 1;\n break;\n case 'down':\n widget.options.zIndex = zIndex - 1;\n break;\n }\n props.onClose();\n };\n\n const menuConfigs = computed<MenuItem[]>(() => {\n const configs: MenuItem[] = [];\n\n // 选择父组件\n if (props.parentWidget?.id) {\n configs.push({\n key: 'selectParent',\n label: i18nt('designer.hint.selectParentWidget'),\n icon: RollbackOutlined,\n onClick: () => handleAction(selectParentWidget)\n });\n configs.push({ key: 'd1', divider: true });\n }\n\n if (isBI.value) {\n // BI 模式特有:锁定\n configs.push({\n key: 'lock',\n label: props.widget.options.locked\n ? i18nt('designer.hint.unlock')\n : i18nt('designer.hint.lock'),\n icon: props.widget.options.locked ? UnlockOutlined : LockOutlined,\n onClick: handleLock\n });\n\n // BI 模式特有:图层\n configs.push({\n key: 'layer',\n label: i18nt('designer.hint.layer'),\n icon: AppstoreOutlined,\n children: [\n {\n key: 'bringToFront',\n label: i18nt('designer.hint.bringToFront'),\n icon: VerticalAlignTopOutlined,\n onClick: () => handleLayer('top')\n },\n {\n key: 'sendToBack',\n label: i18nt('designer.hint.sendToBack'),\n icon: VerticalAlignBottomOutlined,\n onClick: () => handleLayer('bottom')\n },\n {\n key: 'bringForward',\n label: i18nt('designer.hint.bringForward'),\n icon: ArrowUpOutlined,\n onClick: () => handleLayer('up')\n },\n {\n key: 'sendBackward',\n label: i18nt('designer.hint.sendBackward'),\n icon: ArrowDownOutlined,\n onClick: () => handleLayer('down')\n }\n ]\n });\n\n configs.push({\n key: 'clone',\n label: i18nt('designer.hint.cloneWidget'),\n icon: CopyOutlined,\n onClick: () => handleAction(cloneWidget)\n });\n\n configs.push({ key: 'd2', divider: true });\n } else {\n // 非 BI 模式:上移/下移/复制\n configs.push({\n key: 'moveUp',\n label: i18nt('designer.hint.moveUpWidget'),\n icon: ArrowUpOutlined,\n onClick: () => handleAction(moveUpWidget),\n hidden: props.index <= 0\n });\n configs.push({\n key: 'moveDown',\n label: i18nt('designer.hint.moveDownWidget'),\n icon: ArrowDownOutlined,\n onClick: () => handleAction(moveDownWidget),\n hidden: props.index >= props.list.value.length - 1\n });\n\n configs.push({\n key: 'clone',\n label: i18nt('designer.hint.cloneWidget'),\n icon: CopyOutlined,\n onClick: () => handleAction(cloneWidget)\n });\n\n configs.push({ key: 'd3', divider: true });\n }\n\n // 删除\n configs.push({\n key: 'delete',\n label: i18nt('designer.hint.remove'),\n icon: DeleteOutlined,\n onClick: () => handleAction(removeWidget)\n });\n\n return configs.filter(item => !item.hidden);\n });\n\n return {\n menuConfigs,\n moveUpWidget,\n moveDownWidget,\n cloneWidget,\n removeWidget,\n selectParentWidget\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var LayoutTypeEnum = /* @__PURE__ */ ((LayoutTypeEnum2) => {
|
|
2
|
+
LayoutTypeEnum2["PC"] = "PC";
|
|
3
|
+
LayoutTypeEnum2["H5"] = "H5";
|
|
4
|
+
LayoutTypeEnum2["BI"] = "BI";
|
|
5
|
+
return LayoutTypeEnum2;
|
|
6
|
+
})(LayoutTypeEnum || {});
|
|
7
|
+
export {
|
|
8
|
+
LayoutTypeEnum
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=LayoutTypeEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutTypeEnum.js","sources":["../../../../../core/src/constants/LayoutTypeEnum.ts"],"sourcesContent":["export enum LayoutTypeEnum {\n PC = 'PC',\n H5 = 'H5',\n BI = 'BI'\n}\n"],"names":["LayoutTypeEnum"],"mappings":"AAAO,IAAK,mCAAAA,oBAAL;AACHA,kBAAA,IAAA,IAAK;AACLA,kBAAA,IAAA,IAAK;AACLA,kBAAA,IAAA,IAAK;AAHG,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;"}
|