@kp-ui/lowcode-pc 1.0.0-alpha.12 → 1.0.0-alpha.14

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.
Files changed (50) hide show
  1. package/assets/styles/style.css +38 -32
  2. package/core/src/components/common/render/useFormContext.js +3 -2
  3. package/core/src/components/common/render/useFormContext.js.map +1 -1
  4. package/core/src/hooks/useDataHttp.js +3 -3
  5. package/core/src/hooks/useDataHttp.js.map +1 -1
  6. package/core/src/hooks/useField.js +94 -77
  7. package/core/src/hooks/useField.js.map +1 -1
  8. package/core/src/lang/zh-CN.js +1 -1
  9. package/core/src/lang/zh-CN.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +1 -1
  12. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  13. package/src/components/desginer/widget-panel/advanced/data-table.js +1 -0
  14. package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
  15. package/src/components/field-widget/bpmn-editor-widget.vue.js +1 -1
  16. package/src/components/field-widget/bpmn-editor-widget.vue2.js +1 -1
  17. package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
  18. package/src/components/field-widget/button-list-widget.vue.js +1 -1
  19. package/src/components/field-widget/button-list-widget.vue2.js +1 -1
  20. package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
  21. package/src/components/field-widget/code-editor-widget.vue.js +1 -1
  22. package/src/components/field-widget/code-editor-widget.vue2.js +1 -1
  23. package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
  24. package/src/components/field-widget/divider-widget.vue2.js +1 -1
  25. package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
  26. package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
  27. package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
  28. package/src/components/field-widget/dropdown-widget.vue.js +1 -1
  29. package/src/components/field-widget/dropdown-widget.vue2.js +1 -1
  30. package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
  31. package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
  32. package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
  33. package/src/components/field-widget/number-widget.vue2.js +1 -1
  34. package/src/components/field-widget/number-widget.vue2.js.map +1 -1
  35. package/src/components/field-widget/rich-editor-widget.vue.js +1 -1
  36. package/src/components/field-widget/rich-editor-widget.vue2.js +1 -1
  37. package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
  38. package/src/components/field-widget/textarea-widget.vue.js +1 -1
  39. package/src/components/field-widget/textarea-widget.vue2.js +1 -1
  40. package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
  41. package/src/components/field-widget/treeSelect-widget.vue2.js +1 -1
  42. package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
  43. package/src/components/field-widget/vue-render-widget.vue2.js +1 -1
  44. package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
  45. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
  46. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +3 -2
  47. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
  48. package/stats.html +1 -1
  49. package/src/components/field-widget/useField.js +0 -578
  50. package/src/components/field-widget/useField.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./rich-editor-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const richEditorWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c4e08a91"]]);
4
+ const richEditorWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4fccf1cc"]]);
5
5
  export {
6
6
  richEditorWidget as default
7
7
  };
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, createBlock, createCommentVNode, unref, openBlock, mergeProps, withCtx, createElementBlock, createVNode, normalizeStyle, isRef } from "vue";
2
2
  import FormItemWrapper from "./form-item-wrapper.vue.js";
3
- import { useField } from "./useField.js";
4
3
  import { QuillEditor } from "tmgc2-share";
5
4
  import { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
5
+ import { useField } from "../../../core/src/hooks/useField.js";
6
6
  const _hoisted_1 = {
7
7
  key: 0,
8
8
  class: "rich-editor-widget"
@@ -1 +1 @@
1
- {"version":3,"file":"rich-editor-widget.vue2.js","sources":["../../../../src/components/field-widget/rich-editor-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"rich-editor-widget\" v-if=\"!isReadMode\">\n <QuillEditor\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :options=\"editorOption\"\n :disabled=\"handleDisabled || isReadMode\"\n :style=\"\n !!field.options.contentHeight ? `height: ${field.options.contentHeight};` : ''\n \"\n />\n </div>\n <div class=\"readonly-mode-rich-editor\" v-else v-html=\"fieldModel\"> </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { FieldProps, useField } from './useField';\n import { computed, watchEffect } from 'vue';\n import { QuillEditor } from 'tmgc2-share';\n\n defineOptions({\n name: WidgetTypeEnum.richEditor,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n handleHidden,\n handleDisabled,\n defineExposed\n } = useField(props);\n\n const editorOption = computed(() => {\n return {\n placeholder: field.options.placeholder,\n modules: {}\n };\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .rich-editor-widget {\n :deep(.ql-toolbar.ql-snow) {\n border-color: #d9d9d9;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n :deep(.ql-container.ql-snow) {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n border-color: #d9d9d9;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_createVNode","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,eAAe,SAAS,MAAM;AAChC,aAAO;AAAA,QACH,aAAa,MAAM,QAAQ;AAAA,QAC3B,SAAS,CAAA;AAAA,MAAC;AAAA,IAElB,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAjDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAaoB,iBAbpBC,WAaoB,EAAA,KAAA,EAAA,GAbO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAUM;AAAA,WAViCA,MAAA,UAAA,KAAvCC,aAAAG,mBAUM,OAVN,YAUM;AAAA,YATFC,YAQEL,MAAA,WAAA,GAAA;AAAA,uBAPM;AAAA,cAAJ,KAAI;AAAA,cACI,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,SAAS,aAAA;AAAA,cACT,UAAUA,MAAA,cAAA,KAAkBA,MAAA,UAAA;AAAA,cAC5B,OAAKM;AAAAA,kBAAyBN,MAAA,KAAA,EAAM,QAAQ,2BAA2BA,MAAA,KAAA,EAAM,QAAQ,aAAa,MAAA;AAAA,cAAA;AAAA;8BAK3GI,mBAAyE,OAAA;AAAA;YAApE,OAAM;AAAA,YAAmC,WAAQJ,MAAA,UAAA;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"rich-editor-widget.vue2.js","sources":["../../../../src/components/field-widget/rich-editor-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"rich-editor-widget\" v-if=\"!isReadMode\">\n <QuillEditor\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :options=\"editorOption\"\n :disabled=\"handleDisabled || isReadMode\"\n :style=\"\n !!field.options.contentHeight ? `height: ${field.options.contentHeight};` : ''\n \"\n />\n </div>\n <div class=\"readonly-mode-rich-editor\" v-else v-html=\"fieldModel\"> </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { type FieldProps, useField } from '@kp-ui/lowcode-core';\n import { computed, watchEffect } from 'vue';\n import { QuillEditor } from 'tmgc2-share';\n\n defineOptions({\n name: WidgetTypeEnum.richEditor,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n handleHidden,\n handleDisabled,\n defineExposed\n } = useField(props);\n\n const editorOption = computed(() => {\n return {\n placeholder: field.options.placeholder,\n modules: {}\n };\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .rich-editor-widget {\n :deep(.ql-toolbar.ql-snow) {\n border-color: #d9d9d9;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n :deep(.ql-container.ql-snow) {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n border-color: #d9d9d9;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_createVNode","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,eAAe,SAAS,MAAM;AAChC,aAAO;AAAA,QACH,aAAa,MAAM,QAAQ;AAAA,QAC3B,SAAS,CAAA;AAAA,MAAC;AAAA,IAElB,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAjDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAaoB,iBAbpBC,WAaoB,EAAA,KAAA,EAAA,GAbO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAUM;AAAA,WAViCA,MAAA,UAAA,KAAvCC,aAAAG,mBAUM,OAVN,YAUM;AAAA,YATFC,YAQEL,MAAA,WAAA,GAAA;AAAA,uBAPM;AAAA,cAAJ,KAAI;AAAA,cACI,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,SAAS,aAAA;AAAA,cACT,UAAUA,MAAA,cAAA,KAAkBA,MAAA,UAAA;AAAA,cAC5B,OAAKM;AAAAA,kBAAyBN,MAAA,KAAA,EAAM,QAAQ,2BAA2BA,MAAA,KAAA,EAAM,QAAQ,aAAa,MAAA;AAAA,cAAA;AAAA;8BAK3GI,mBAAyE,OAAA;AAAA;YAApE,OAAM;AAAA,YAAmC,WAAQJ,MAAA,UAAA;AAAA,UAAA;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./textarea-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const textareaWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-04869c36"]]);
4
+ const textareaWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ee000014"]]);
5
5
  export {
6
6
  textareaWidget as default
7
7
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, resolveComponent, createBlock, createCommentVNode, unref, openBlock, mergeProps, withCtx, createElementBlock, isRef } from "vue";
2
2
  import FormItemWrapper from "./form-item-wrapper.vue.js";
3
- import { useField } from "./useField.js";
4
3
  import { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
4
+ import { useField } from "../../../core/src/hooks/useField.js";
5
5
  const _hoisted_1 = ["innerHTML"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{
@@ -1 +1 @@
1
- {"version":3,"file":"textarea-widget.vue2.js","sources":["../../../../src/components/field-widget/textarea-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-textarea\n type=\"textarea\"\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n v-if=\"!isReadMode\"\n :size=\"size\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :readonly=\"field.options.readonly\"\n :placeholder=\"field.options.placeholder\"\n :rows=\"field.options.rows\"\n :minlength=\"field.options.minLength\"\n :maxlength=\"field.options.maxLength\"\n :showCount=\"field.options.showCount\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-else=\"isReadMode\">\n <div v-html=\"fieldModel\" class=\"readonly-mode-field\"></div>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.textarea,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n field,\n fieldModel,\n isReadMode,\n size,\n\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .readonly-mode-field {\n display: inline-block;\n white-space: pre-wrap;\n line-height: 1.5;\n max-height: 100px;\n overflow-y: auto;\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cAnDuDA,MAAA,YAAA,KAAxDC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAgBE;AAAA,WAZSA,MAAA,UAAA,kBAJXE,YAgBE,uBAAA;AAAA;YAfE,MAAK;AAAA,YACL,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAExB,MAAMA,MAAA,IAAA;AAAA,YACN,UAAUA,MAAA,cAAA;AAAA,YACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC1B,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACxB,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA,yKAGPI,mBAA2D,OAAA;AAAA;YAAtD,WAAQJ,MAAA,UAAA;AAAA,YAAY,OAAM;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"textarea-widget.vue2.js","sources":["../../../../src/components/field-widget/textarea-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-textarea\n type=\"textarea\"\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n v-if=\"!isReadMode\"\n :size=\"size\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :readonly=\"field.options.readonly\"\n :placeholder=\"field.options.placeholder\"\n :rows=\"field.options.rows\"\n :minlength=\"field.options.minLength\"\n :maxlength=\"field.options.maxLength\"\n :showCount=\"field.options.showCount\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-else=\"isReadMode\">\n <div v-html=\"fieldModel\" class=\"readonly-mode-field\"></div>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import {\n type FieldProps,\n useField,\n WidgetTypeEnum,\n ComponentNameEnum\n } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.textarea,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n field,\n fieldModel,\n isReadMode,\n size,\n\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .readonly-mode-field {\n display: inline-block;\n white-space: pre-wrap;\n line-height: 1.5;\n max-height: 100px;\n overflow-y: auto;\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cAvDuDA,MAAA,YAAA,KAAxDC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAgBE;AAAA,WAZSA,MAAA,UAAA,kBAJXE,YAgBE,uBAAA;AAAA;YAfE,MAAK;AAAA,YACL,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAExB,MAAMA,MAAA,IAAA;AAAA,YACN,UAAUA,MAAA,cAAA;AAAA,YACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC1B,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACxB,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA,yKAGPI,mBAA2D,OAAA;AAAA;YAAtD,WAAQJ,MAAA,UAAA;AAAA,YAAY,OAAM;AAAA,UAAA;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, onMounted, computed, resolveComponent, createBlock, createCommentVNode, unref, openBlock, mergeProps, withCtx, createElementVNode, normalizeClass, withDirectives, createElementBlock, createVNode, isRef, vShow, toDisplayString } from "vue";
2
2
  import FormItemWrapper from "./form-item-wrapper.vue.js";
3
- import { useField } from "./useField.js";
4
3
  import { useSelect } from "./hooks/useSelect.js";
5
4
  import { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
5
+ import { useField } from "../../../core/src/hooks/useField.js";
6
6
  import { formateCascaderCode } from "../../../core/src/utils/format.js";
7
7
  const _hoisted_1 = {
8
8
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"treeSelect-widget.vue2.js","sources":["../../../../src/components/field-widget/treeSelect-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"full-width-input\" :class=\"{ 'readonly-mode-cascader': isReadMode }\">\n <a-tree-select\n v-show=\"!isReadMode\"\n :tree-default-expand-all=\"field.options.treeDefaultExpandAll\"\n ref=\"fieldEditor\"\n :size=\"size\"\n :treeData=\"field.options.optionItems\"\n v-model:value=\"fieldModel\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :placeholder=\"field.options.placeholder || i18nt('render.hint.selectPlaceholder')\"\n :fieldNames=\"{ value: valueKey, label: labelKey, children: childrenKey }\"\n :multiple=\"field.options.multiple\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ contentForReadMode }}</span>\n </template>\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { FieldProps, useField } from './useField';\n import { useSelect } from './hooks/useSelect';\n import { computed, onMounted } from 'vue';\n import { formateCascaderCode } from '@kp-ui/lowcode-core';\n\n defineOptions({\n name: WidgetTypeEnum.treeSelect,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n const { labelKey, valueKey, childrenKey, initOptionItems } = useSelect({\n field,\n fieldModel,\n designState\n });\n\n onMounted(() => {\n initOptionItems();\n });\n\n const contentForReadMode = computed(() => {\n if (!fieldModel.value) return '';\n return formateCascaderCode(field.options.optionItems, fieldModel.value, {\n label: labelKey.value,\n value: valueKey.value,\n children: childrenKey.value\n });\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_normalizeClass","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,UAAU,UAAU,aAAa,gBAAA,IAAoB,UAAU;AAAA,MACnE;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;AAED,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACtC,UAAI,CAAC,WAAW,MAAO,QAAO;AAC9B,aAAO,oBAAoB,MAAM,QAAQ,aAAa,WAAW,OAAO;AAAA,QACpE,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,QAChB,UAAU,YAAY;AAAA,MAAA,CACzB;AAAA,IACL,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA3EwCA,MAAA,YAAA,KAAzCC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAmBM;AAAA,UAnBNI,mBAmBM,OAAA;AAAA,YAnBD,OAAKC,eAAA,CAAC,oBAAkB,EAAA,0BAAqCL,MAAA,UAAA,GAAU,CAAA;AAAA,UAAA;2BACxEM,YAcE,0BAAA;AAAA,cAZG,2BAAyBN,MAAA,KAAA,EAAM,QAAQ;AAAA,uBACpC;AAAA,cAAJ,KAAI;AAAA,cACH,MAAMA,MAAA,IAAA;AAAA,cACN,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACjB,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,UAAUA,MAAA,cAAA;AAAA,cACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,aAAaA,MAAA,KAAA,EAAM,QAAQ,eAAeA,MAAA,KAAA,EAAK,+BAAA;AAAA,cAC/C,YAAU,EAAA,OAAWA,MAAA,QAAA,GAAQ,OAASA,MAAA,QAAA,aAAoBA,MAAA,WAAA,EAAA;AAAA,cAC1D,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,SAAOA,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;uBAZEA,MAAA,UAAA,CAAU;AAAA,YAAA;YAcPA,MAAA,UAAA,kBACZO,mBAAiE,QAAjE,YAAiEC,gBAA5B,mBAAA,KAAkB,GAAA,CAAA;;;;;;;;"}
1
+ {"version":3,"file":"treeSelect-widget.vue2.js","sources":["../../../../src/components/field-widget/treeSelect-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"full-width-input\" :class=\"{ 'readonly-mode-cascader': isReadMode }\">\n <a-tree-select\n v-show=\"!isReadMode\"\n :tree-default-expand-all=\"field.options.treeDefaultExpandAll\"\n ref=\"fieldEditor\"\n :size=\"size\"\n :treeData=\"field.options.optionItems\"\n v-model:value=\"fieldModel\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :placeholder=\"field.options.placeholder || i18nt('render.hint.selectPlaceholder')\"\n :fieldNames=\"{ value: valueKey, label: labelKey, children: childrenKey }\"\n :multiple=\"field.options.multiple\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ contentForReadMode }}</span>\n </template>\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { type FieldProps, useField } from '@kp-ui/lowcode-core';\n import { useSelect } from './hooks/useSelect';\n import { computed, onMounted } from 'vue';\n import { formateCascaderCode } from '@kp-ui/lowcode-core';\n\n defineOptions({\n name: WidgetTypeEnum.treeSelect,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n const { labelKey, valueKey, childrenKey, initOptionItems } = useSelect({\n field,\n fieldModel,\n designState\n });\n\n onMounted(() => {\n initOptionItems();\n });\n\n const contentForReadMode = computed(() => {\n if (!fieldModel.value) return '';\n return formateCascaderCode(field.options.optionItems, fieldModel.value, {\n label: labelKey.value,\n value: valueKey.value,\n children: childrenKey.value\n });\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_normalizeClass","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,UAAU,UAAU,aAAa,gBAAA,IAAoB,UAAU;AAAA,MACnE;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;AAED,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACtC,UAAI,CAAC,WAAW,MAAO,QAAO;AAC9B,aAAO,oBAAoB,MAAM,QAAQ,aAAa,WAAW,OAAO;AAAA,QACpE,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,QAChB,UAAU,YAAY;AAAA,MAAA,CACzB;AAAA,IACL,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA3EwCA,MAAA,YAAA,KAAzCC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAmBM;AAAA,UAnBNI,mBAmBM,OAAA;AAAA,YAnBD,OAAKC,eAAA,CAAC,oBAAkB,EAAA,0BAAqCL,MAAA,UAAA,GAAU,CAAA;AAAA,UAAA;2BACxEM,YAcE,0BAAA;AAAA,cAZG,2BAAyBN,MAAA,KAAA,EAAM,QAAQ;AAAA,uBACpC;AAAA,cAAJ,KAAI;AAAA,cACH,MAAMA,MAAA,IAAA;AAAA,cACN,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACjB,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,UAAUA,MAAA,cAAA;AAAA,cACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,aAAaA,MAAA,KAAA,EAAM,QAAQ,eAAeA,MAAA,KAAA,EAAK,+BAAA;AAAA,cAC/C,YAAU,EAAA,OAAWA,MAAA,QAAA,GAAQ,OAASA,MAAA,QAAA,aAAoBA,MAAA,WAAA,EAAA;AAAA,cAC1D,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,SAAOA,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;uBAZEA,MAAA,UAAA,CAAU;AAAA,YAAA;YAcPA,MAAA,UAAA,kBACZO,mBAAiE,QAAjE,YAAiEC,gBAA5B,mBAAA,KAAkB,GAAA,CAAA;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, createBlock, createCommentVNode, unref, openBlock, mergeProps, withCtx, createElementVNode, resolveDynamicComponent, toRefs } from "vue";
2
2
  import FormItemWrapper from "./form-item-wrapper.vue.js";
3
- import { useField } from "./useField.js";
4
3
  import { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
4
+ import { useField } from "../../../core/src/hooks/useField.js";
5
5
  const _hoisted_1 = { class: "slot-wrapper-render" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{
@@ -1 +1 @@
1
- {"version":3,"file":"vue-render-widget.vue2.js","sources":["../../../../src/components/field-widget/vue-render-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"slot-wrapper-render\">\n <component ref=\"fieldEditor\" :is=\"renderCompont()\" />\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import FormItemWrapper from './form-item-wrapper.vue';\n import { FieldProps, useField } from './useField';\n import { toRefs } from 'vue';\n\n defineOptions({\n name: WidgetTypeEnum.vueRender,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, field, fieldModel, handleHidden, defineExposed, executeFunction } =\n useField(props);\n\n const renderCompont = () => {\n if (field.options.template) {\n const sfcString = field.options.template;\n const templateMatch = sfcString.match(/<template>([\\s\\S]*)<\\/template>/);\n const scriptMatch = sfcString.match(/<script.*?>([\\s\\S]*)<\\/script>/);\n const styleMatch = sfcString.match(/<style.*?>([\\s\\S]*)<\\/style>/);\n\n const template = templateMatch ? templateMatch[1] : '';\n let scriptContent = scriptMatch ? scriptMatch[1] : 'export default {}';\n const style = styleMatch ? styleMatch[1] : '';\n\n // Handle style\n if (style) {\n const styleId = `vue-render-style-${field.options.name}`;\n if (!document.getElementById(styleId)) {\n const styleTag = document.createElement('style');\n styleTag.id = styleId;\n styleTag.textContent = style;\n document.head.appendChild(styleTag);\n }\n }\n\n // Handle script\n // Replace export default with return to make it evaluatable\n scriptContent = scriptContent.replace('export default', 'return');\n\n try {\n const getOptions = new Function(scriptContent);\n const componentOptions = getOptions() || {};\n\n return {\n template,\n ...componentOptions,\n props: ['data'], // Ensure data prop is available if not defined\n setup(props, ctx) {\n // Call original setup if it exists\n const originalSetup = componentOptions.setup\n ? componentOptions.setup(props, ctx)\n : {};\n return {\n ...toRefs(props),\n ...originalSetup\n };\n }\n };\n } catch (e) {\n console.error('Failed to parse component script', e);\n return { template: '<div>Error parsing component</div>' };\n }\n }\n // Assuming executeFunction and fieldModel are defined elsewhere or will be added.\n // This part of the code was provided in the instruction, but its dependencies are not in the original snippet.\n const component = executeFunction({\n functionBody: field.options.customRender,\n params: { data: fieldModel.value },\n keys: ['data']\n });\n\n return component ?? null;\n };\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["props","_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,OAAO,YAAY,cAAc,eAAe,gBAAA,IAC3D,SAAS,KAAK;AAElB,UAAM,gBAAgB,MAAM;AACxB,UAAI,MAAM,QAAQ,UAAU;AACxB,cAAM,YAAY,MAAM,QAAQ;AAChC,cAAM,gBAAgB,UAAU,MAAM,iCAAiC;AACvE,cAAM,cAAc,UAAU,MAAM,gCAAgC;AACpE,cAAM,aAAa,UAAU,MAAM,8BAA8B;AAEjE,cAAM,WAAW,gBAAgB,cAAc,CAAC,IAAI;AACpD,YAAI,gBAAgB,cAAc,YAAY,CAAC,IAAI;AACnD,cAAM,QAAQ,aAAa,WAAW,CAAC,IAAI;AAG3C,YAAI,OAAO;AACP,gBAAM,UAAU,oBAAoB,MAAM,QAAQ,IAAI;AACtD,cAAI,CAAC,SAAS,eAAe,OAAO,GAAG;AACnC,kBAAM,WAAW,SAAS,cAAc,OAAO;AAC/C,qBAAS,KAAK;AACd,qBAAS,cAAc;AACvB,qBAAS,KAAK,YAAY,QAAQ;AAAA,UACtC;AAAA,QACJ;AAIA,wBAAgB,cAAc,QAAQ,kBAAkB,QAAQ;AAEhE,YAAI;AACA,gBAAM,aAAa,IAAI,SAAS,aAAa;AAC7C,gBAAM,mBAAmB,WAAA,KAAgB,CAAA;AAEzC,iBAAO;AAAA,YACH;AAAA,YACA,GAAG;AAAA,YACH,OAAO,CAAC,MAAM;AAAA;AAAA,YACd,MAAMA,QAAO,KAAK;AAEd,oBAAM,gBAAgB,iBAAiB,QACjC,iBAAiB,MAAMA,QAAO,GAAG,IACjC,CAAA;AACN,qBAAO;AAAA,gBACH,GAAG,OAAOA,MAAK;AAAA,gBACf,GAAG;AAAA,cAAA;AAAA,YAEX;AAAA,UAAA;AAAA,QAER,SAAS,GAAG;AACR,kBAAQ,MAAM,oCAAoC,CAAC;AACnD,iBAAO,EAAE,UAAU,qCAAA;AAAA,QACvB;AAAA,MACJ;AAGA,YAAM,YAAY,gBAAgB;AAAA,QAC9B,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,MAAM,WAAW,MAAA;AAAA,QAC3B,MAAM,CAAC,MAAM;AAAA,MAAA,CAChB;AAED,aAAO,aAAa;AAAA,IACxB;AAEA,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cArFwCC,MAAA,YAAA,KAAzCC,aAAAC,YAIoB,iBAJpBC,WAIoB,EAAA,KAAA,EAAA,GAJO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAEM;AAAA,UAFNI,mBAEM,OAFN,YAEM;AAAA,aADFH,aAAAC,YAAqDG,wBAAnB,cAAA,CAAa,GAAA,EAApC,KAAI,cAAA,GAAa,MAAA,GAAA;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"vue-render-widget.vue2.js","sources":["../../../../src/components/field-widget/vue-render-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"slot-wrapper-render\">\n <component ref=\"fieldEditor\" :is=\"renderCompont()\" />\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from '@kp-ui/lowcode-core';\n import { toRefs } from 'vue';\n\n defineOptions({\n name: WidgetTypeEnum.vueRender,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, field, fieldModel, handleHidden, defineExposed, executeFunction } =\n useField(props);\n\n const renderCompont = () => {\n if (field.options.template) {\n const sfcString = field.options.template;\n const templateMatch = sfcString.match(/<template>([\\s\\S]*)<\\/template>/);\n const scriptMatch = sfcString.match(/<script.*?>([\\s\\S]*)<\\/script>/);\n const styleMatch = sfcString.match(/<style.*?>([\\s\\S]*)<\\/style>/);\n\n const template = templateMatch ? templateMatch[1] : '';\n let scriptContent = scriptMatch ? scriptMatch[1] : 'export default {}';\n const style = styleMatch ? styleMatch[1] : '';\n\n // Handle style\n if (style) {\n const styleId = `vue-render-style-${field.options.name}`;\n if (!document.getElementById(styleId)) {\n const styleTag = document.createElement('style');\n styleTag.id = styleId;\n styleTag.textContent = style;\n document.head.appendChild(styleTag);\n }\n }\n\n // Handle script\n // Replace export default with return to make it evaluatable\n scriptContent = scriptContent.replace('export default', 'return');\n\n try {\n const getOptions = new Function(scriptContent);\n const componentOptions = getOptions() || {};\n\n return {\n template,\n ...componentOptions,\n props: ['data'], // Ensure data prop is available if not defined\n setup(props, ctx) {\n // Call original setup if it exists\n const originalSetup = componentOptions.setup\n ? componentOptions.setup(props, ctx)\n : {};\n return {\n ...toRefs(props),\n ...originalSetup\n };\n }\n };\n } catch (e) {\n console.error('Failed to parse component script', e);\n return { template: '<div>Error parsing component</div>' };\n }\n }\n // Assuming executeFunction and fieldModel are defined elsewhere or will be added.\n // This part of the code was provided in the instruction, but its dependencies are not in the original snippet.\n const component = executeFunction({\n functionBody: field.options.customRender,\n params: { data: fieldModel.value },\n keys: ['data']\n });\n\n return component ?? null;\n };\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["props","_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,OAAO,YAAY,cAAc,eAAe,gBAAA,IAC3D,SAAS,KAAK;AAElB,UAAM,gBAAgB,MAAM;AACxB,UAAI,MAAM,QAAQ,UAAU;AACxB,cAAM,YAAY,MAAM,QAAQ;AAChC,cAAM,gBAAgB,UAAU,MAAM,iCAAiC;AACvE,cAAM,cAAc,UAAU,MAAM,gCAAgC;AACpE,cAAM,aAAa,UAAU,MAAM,8BAA8B;AAEjE,cAAM,WAAW,gBAAgB,cAAc,CAAC,IAAI;AACpD,YAAI,gBAAgB,cAAc,YAAY,CAAC,IAAI;AACnD,cAAM,QAAQ,aAAa,WAAW,CAAC,IAAI;AAG3C,YAAI,OAAO;AACP,gBAAM,UAAU,oBAAoB,MAAM,QAAQ,IAAI;AACtD,cAAI,CAAC,SAAS,eAAe,OAAO,GAAG;AACnC,kBAAM,WAAW,SAAS,cAAc,OAAO;AAC/C,qBAAS,KAAK;AACd,qBAAS,cAAc;AACvB,qBAAS,KAAK,YAAY,QAAQ;AAAA,UACtC;AAAA,QACJ;AAIA,wBAAgB,cAAc,QAAQ,kBAAkB,QAAQ;AAEhE,YAAI;AACA,gBAAM,aAAa,IAAI,SAAS,aAAa;AAC7C,gBAAM,mBAAmB,WAAA,KAAgB,CAAA;AAEzC,iBAAO;AAAA,YACH;AAAA,YACA,GAAG;AAAA,YACH,OAAO,CAAC,MAAM;AAAA;AAAA,YACd,MAAMA,QAAO,KAAK;AAEd,oBAAM,gBAAgB,iBAAiB,QACjC,iBAAiB,MAAMA,QAAO,GAAG,IACjC,CAAA;AACN,qBAAO;AAAA,gBACH,GAAG,OAAOA,MAAK;AAAA,gBACf,GAAG;AAAA,cAAA;AAAA,YAEX;AAAA,UAAA;AAAA,QAER,SAAS,GAAG;AACR,kBAAQ,MAAM,oCAAoC,CAAC;AACnD,iBAAO,EAAE,UAAU,qCAAA;AAAA,QACvB;AAAA,MACJ;AAGA,YAAM,YAAY,gBAAgB;AAAA,QAC9B,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,MAAM,WAAW,MAAA;AAAA,QAC3B,MAAM,CAAC,MAAM;AAAA,MAAA,CAChB;AAED,aAAO,aAAa;AAAA,IACxB;AAEA,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cArFwCC,MAAA,YAAA,KAAzCC,aAAAC,YAIoB,iBAJpBC,WAIoB,EAAA,KAAA,EAAA,GAJO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAEM;AAAA,UAFNI,mBAEM,OAFN,YAEM;AAAA,aADFH,aAAAC,YAAqDG,wBAAnB,cAAA,CAAa,GAAA,EAApC,KAAI,cAAA,GAAa,MAAA,GAAA;AAAA,UAAA;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./grid-sub-form-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const GridSubFormWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-80b2c408"]]);
4
+ const GridSubFormWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-417a33c5"]]);
5
5
  export {
6
6
  GridSubFormWidget as default
7
7
  };
@@ -2,6 +2,7 @@ import { defineComponent, provide, ref, onMounted, resolveComponent, withDirecti
2
2
  import { traverseFieldWidgetsOfContainer, generateId, deepClone } from "../../../../core/src/utils/util.js";
3
3
  import _sfc_main$1 from "../RenderWigetList.vue2.js";
4
4
  import { SvgIcon, TpfDelConfirm } from "tmgc2-share";
5
+ import { PlusOutlined, DeleteOutlined } from "@ant-design/icons-vue";
5
6
  import { ComponentNameEnum, ContainerTypeEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
6
7
  import { useField } from "../../../../core/src/hooks/useField.js";
7
8
  import { useI18n } from "../../../../core/src/utils/i18n.js";
@@ -209,7 +210,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
209
210
  onClick: ($event) => insertSubFormRow(sfrIdx)
210
211
  }, {
211
212
  icon: withCtx(() => [
212
- createVNode(unref(SvgIcon), { "icon-class": "icon-el-plus" })
213
+ createVNode(unref(PlusOutlined))
213
214
  ]),
214
215
  _: 2
215
216
  }, 1032, ["title", "disabled", "onClick"]),
@@ -220,7 +221,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
220
221
  onClick: ($event) => deleteSubFormRow(sfrIdx)
221
222
  }, {
222
223
  icon: withCtx(() => [
223
- createVNode(unref(SvgIcon), { "icon-class": "icon-el-delete" })
224
+ createVNode(unref(DeleteOutlined))
224
225
  ]),
225
226
  _: 2
226
227
  }, 1032, ["title", "disabled", "onClick"])
@@ -1 +1 @@
1
- {"version":3,"file":"grid-sub-form-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/grid-sub-form-widget.vue"],"sourcesContent":["<template>\n <div class=\"sub-form-container\" v-show=\"!handleHidden\">\n <div v-for=\"(subFormRowId, sfrIdx) in rowIdData\" class=\"sub-form-row\" :key=\"subFormRowId\">\n <div class=\"row-no-column\">\n <span class=\"row-number-span\">#{{ sfrIdx + 1 }}</span>\n </div>\n <div class=\"grid-sub-form-data-row\">\n <RenderWigetList\n :widgetList=\"widget.widgetList || []\"\n :parentWidget=\"widget\"\n :subFormRowIndex=\"sfrIdx\"\n :subFormRowId=\"subFormRowId\"\n />\n </div>\n <div class=\"sub-form-action-column hide-label\">\n <div class=\"action-button-column\" v-show=\"!isReadMode\">\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.insertSubFormRow')\"\n :disabled=\"actionDisabled || insertDisabled\"\n @click=\"insertSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-plus\" />\n </template>\n </a-button>\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.deleteSubFormRow')\"\n :disabled=\"actionDisabled || deleteDisabled\"\n @click=\"deleteSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-delete\" />\n </template>\n </a-button>\n </div>\n </div>\n </div>\n <div class=\"header-row\">\n <a-button\n block\n v-if=\"!isReadMode\"\n :disabled=\"actionDisabled || insertDisabled\"\n shape=\"round\"\n type=\"dashed\"\n size=\"small\"\n class=\"action-button\"\n @click=\"addSubFormRow\"\n :title=\"i18nt('render.hint.subFormAddActionHint')\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-plus\" />\n </template>\n {{ i18nt('render.hint.subFormAddAction') }}\n </a-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, provide, onMounted, nextTick } from 'vue';\n import {\n deepClone,\n generateId,\n traverseFieldWidgetsOfContainer\n } from '@kp-ui/lowcode-core/src/utils/util';\n import RenderWigetList from '../RenderWigetList.vue';\n import { SvgIcon, TpfDelConfirm } from 'tmgc2-share';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { useI18n } from '@kp-ui/lowcode-core';\n import { useField } from '@kp-ui/lowcode-core';\n import { GridSubFormWidget } from '../../desginer/widget-panel/containers';\n\n defineOptions({\n name: ContainerTypeEnum.GridSubFormWidget,\n componentName: ComponentNameEnum.ContainerWidget,\n inheritAttrs: false\n });\n\n provide('isSubFormField', true);\n provide('getSubFormName', () => props.widget.options.name);\n\n const { i18nt } = useI18n();\n const props = withDefaults(defineProps<WidgetProps<GridSubFormWidget>>(), {});\n\n const rowIdData = ref<string[]>([]);\n const fieldWidgetList = ref<any[]>([]);\n const insertDisabled = ref(false);\n const deleteDisabled = ref(false);\n const actionDisabled = ref(false);\n\n const { formModel, isReadMode, handleHidden, executeFunction, defineExposed } = useField(props);\n\n const extractFieldWidgetList = () => {\n fieldWidgetList.value = [];\n const fieldListFn = (fw: any) => {\n fieldWidgetList.value.push(fw);\n };\n traverseFieldWidgetsOfContainer(props.widget, fieldListFn);\n };\n\n const initRowIdData = (initFlag = false) => {\n rowIdData.value = [];\n const subFormModel = formModel.value[props.widget.options.name];\n if (!!subFormModel && subFormModel.length > 0) {\n subFormModel.forEach(() => {\n rowIdData.value.push('id' + generateId());\n });\n\n if (initFlag) {\n setTimeout(() => {\n handleSubFormRowChange(subFormModel);\n }, 800);\n }\n }\n };\n\n const handleSubFormRowChange = (subFormData: any) => {\n if (props.widget.options.onSubFormRowChange) {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowChange,\n keys: ['subFormData'],\n params: { subFormData }\n });\n }\n };\n\n const handleSubFormRowAdd = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowAdd,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowInsert = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowInsert,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowDelete = (subFormData: any, deletedDataRow: any) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowDelete,\n params: {\n subFormData,\n deletedDataRow\n },\n keys: ['subFormData', 'deletedDataRow']\n });\n };\n\n const addSubFormRow = () => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.push(newSubFormDataRow);\n // Ensure formModel is updated if it was empty/undefined\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.push(newRowId);\n\n nextTick(() => {\n handleSubFormRowAdd(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const insertSubFormRow = (index: number) => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.splice(index, 0, newSubFormDataRow);\n // Ensure formModel is updated\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.splice(index, 0, newRowId);\n\n nextTick(() => {\n handleSubFormRowInsert(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const deleteSubFormRow = (index: number) => {\n TpfDelConfirm({\n type: 'confirm',\n content: i18nt('render.hint.deleteSubFormRow') + '?',\n title: i18nt('render.hint.prompt'),\n okText: i18nt('render.hint.confirm'),\n cancelText: i18nt('render.hint.cancel')\n })\n .then(() => {\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n const deletedDataRow = deepClone(oldSubFormData[index]);\n oldSubFormData.splice(index, 1);\n rowIdData.value.splice(index, 1);\n\n nextTick(() => {\n handleSubFormRowDelete(oldSubFormData, deletedDataRow);\n handleSubFormRowChange(oldSubFormData);\n });\n })\n .catch(() => {});\n };\n\n const handleSubFormFirstRowAdd = () => {\n if (!!props.widget.options.showBlankRow && rowIdData.value.length === 0) {\n if (fieldWidgetList.value.length === 0) extractFieldWidgetList();\n addSubFormRow();\n }\n };\n\n onMounted(() => {\n extractFieldWidgetList();\n initRowIdData(true);\n handleSubFormFirstRowAdd();\n });\n\n defineExpose({\n ...defineExposed,\n insertDisabled,\n deleteDisabled,\n actionDisabled,\n setInsertDisabled: (flag: boolean) => {\n insertDisabled.value = flag;\n },\n setDeleteDisabled: (flag: boolean) => {\n deleteDisabled.value = flag;\n },\n setActionDisabled: (flag: boolean) => {\n actionDisabled.value = flag;\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .sub-form-container {\n margin-bottom: 16px;\n text-align: left;\n background: #fafafa;\n border-radius: 8px;\n padding: 10px;\n\n .header-row {\n margin-top: 15px;\n :deep(.action-button) {\n height: 35px;\n }\n }\n\n .sub-form-row {\n display: flex;\n align-items: center;\n background: white;\n margin: 8px 0;\n border-radius: 6px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);\n\n .row-number-span {\n margin-left: 16px;\n }\n }\n }\n\n .sub-form-action-column {\n display: inline-block;\n align-items: center;\n text-align: center;\n padding: 8px;\n }\n\n .grid-sub-form-data-row {\n display: inline-block;\n flex: 1;\n padding: 10px;\n position: relative;\n &:before,\n &:after {\n content: '';\n display: inline-block;\n width: 1px;\n height: 60%;\n background: #e1e2e3;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n &:before {\n left: 0;\n }\n &:after {\n right: 0;\n }\n :deep(.ant-form-item) {\n margin-bottom: 0;\n }\n }\n\n div.sub-form-action-column.hide-label {\n }\n\n div.row-no-column {\n display: flex;\n align-items: center;\n width: 50px;\n border-radius: 10px;\n background: #f1f2f3;\n padding: 5px 0;\n margin: 0 6px;\n font-size: 14px;\n color: #666;\n }\n\n .action-button-column {\n width: 140px;\n }\n</style>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_createVNode","RenderWigetList","widget","_unref","_createBlock","_createTextVNode"],"mappings":"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"}
1
+ {"version":3,"file":"grid-sub-form-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/grid-sub-form-widget.vue"],"sourcesContent":["<template>\n <div class=\"sub-form-container\" v-show=\"!handleHidden\">\n <div v-for=\"(subFormRowId, sfrIdx) in rowIdData\" class=\"sub-form-row\" :key=\"subFormRowId\">\n <div class=\"row-no-column\">\n <span class=\"row-number-span\">#{{ sfrIdx + 1 }}</span>\n </div>\n <div class=\"grid-sub-form-data-row\">\n <RenderWigetList\n :widgetList=\"widget.widgetList || []\"\n :parentWidget=\"widget\"\n :subFormRowIndex=\"sfrIdx\"\n :subFormRowId=\"subFormRowId\"\n />\n </div>\n <div class=\"sub-form-action-column hide-label\">\n <div class=\"action-button-column\" v-show=\"!isReadMode\">\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.insertSubFormRow')\"\n :disabled=\"actionDisabled || insertDisabled\"\n @click=\"insertSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <PlusOutlined />\n </template>\n </a-button>\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.deleteSubFormRow')\"\n :disabled=\"actionDisabled || deleteDisabled\"\n @click=\"deleteSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <DeleteOutlined />\n </template>\n </a-button>\n </div>\n </div>\n </div>\n <div class=\"header-row\">\n <a-button\n block\n v-if=\"!isReadMode\"\n :disabled=\"actionDisabled || insertDisabled\"\n shape=\"round\"\n type=\"dashed\"\n size=\"small\"\n class=\"action-button\"\n @click=\"addSubFormRow\"\n :title=\"i18nt('render.hint.subFormAddActionHint')\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-plus\" />\n </template>\n {{ i18nt('render.hint.subFormAddAction') }}\n </a-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, provide, onMounted, nextTick } from 'vue';\n import {\n deepClone,\n generateId,\n traverseFieldWidgetsOfContainer\n } from '@kp-ui/lowcode-core/src/utils/util';\n import RenderWigetList from '../RenderWigetList.vue';\n import { SvgIcon, TpfDelConfirm } from 'tmgc2-share';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { useI18n } from '@kp-ui/lowcode-core';\n import { useField } from '@kp-ui/lowcode-core';\n import { GridSubFormWidget } from '../../desginer/widget-panel/containers';\n import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';\n defineOptions({\n name: ContainerTypeEnum.GridSubFormWidget,\n componentName: ComponentNameEnum.ContainerWidget,\n inheritAttrs: false\n });\n\n provide('isSubFormField', true);\n provide('getSubFormName', () => props.widget.options.name);\n\n const { i18nt } = useI18n();\n const props = withDefaults(defineProps<WidgetProps<GridSubFormWidget>>(), {});\n\n const rowIdData = ref<string[]>([]);\n const fieldWidgetList = ref<any[]>([]);\n const insertDisabled = ref(false);\n const deleteDisabled = ref(false);\n const actionDisabled = ref(false);\n\n const { formModel, isReadMode, handleHidden, executeFunction, defineExposed } = useField(props);\n\n const extractFieldWidgetList = () => {\n fieldWidgetList.value = [];\n const fieldListFn = (fw: any) => {\n fieldWidgetList.value.push(fw);\n };\n traverseFieldWidgetsOfContainer(props.widget, fieldListFn);\n };\n\n const initRowIdData = (initFlag = false) => {\n rowIdData.value = [];\n const subFormModel = formModel.value[props.widget.options.name];\n if (!!subFormModel && subFormModel.length > 0) {\n subFormModel.forEach(() => {\n rowIdData.value.push('id' + generateId());\n });\n\n if (initFlag) {\n setTimeout(() => {\n handleSubFormRowChange(subFormModel);\n }, 800);\n }\n }\n };\n\n const handleSubFormRowChange = (subFormData: any) => {\n if (props.widget.options.onSubFormRowChange) {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowChange,\n keys: ['subFormData'],\n params: { subFormData }\n });\n }\n };\n\n const handleSubFormRowAdd = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowAdd,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowInsert = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowInsert,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowDelete = (subFormData: any, deletedDataRow: any) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowDelete,\n params: {\n subFormData,\n deletedDataRow\n },\n keys: ['subFormData', 'deletedDataRow']\n });\n };\n\n const addSubFormRow = () => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.push(newSubFormDataRow);\n // Ensure formModel is updated if it was empty/undefined\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.push(newRowId);\n\n nextTick(() => {\n handleSubFormRowAdd(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const insertSubFormRow = (index: number) => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.splice(index, 0, newSubFormDataRow);\n // Ensure formModel is updated\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.splice(index, 0, newRowId);\n\n nextTick(() => {\n handleSubFormRowInsert(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const deleteSubFormRow = (index: number) => {\n TpfDelConfirm({\n type: 'confirm',\n content: i18nt('render.hint.deleteSubFormRow') + '?',\n title: i18nt('render.hint.prompt'),\n okText: i18nt('render.hint.confirm'),\n cancelText: i18nt('render.hint.cancel')\n })\n .then(() => {\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n const deletedDataRow = deepClone(oldSubFormData[index]);\n oldSubFormData.splice(index, 1);\n rowIdData.value.splice(index, 1);\n\n nextTick(() => {\n handleSubFormRowDelete(oldSubFormData, deletedDataRow);\n handleSubFormRowChange(oldSubFormData);\n });\n })\n .catch(() => {});\n };\n\n const handleSubFormFirstRowAdd = () => {\n if (!!props.widget.options.showBlankRow && rowIdData.value.length === 0) {\n if (fieldWidgetList.value.length === 0) extractFieldWidgetList();\n addSubFormRow();\n }\n };\n\n onMounted(() => {\n extractFieldWidgetList();\n initRowIdData(true);\n handleSubFormFirstRowAdd();\n });\n\n defineExpose({\n ...defineExposed,\n insertDisabled,\n deleteDisabled,\n actionDisabled,\n setInsertDisabled: (flag: boolean) => {\n insertDisabled.value = flag;\n },\n setDeleteDisabled: (flag: boolean) => {\n deleteDisabled.value = flag;\n },\n setActionDisabled: (flag: boolean) => {\n actionDisabled.value = flag;\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .sub-form-container {\n margin-bottom: 16px;\n text-align: left;\n background: #fafafa;\n border-radius: 8px;\n padding: 10px;\n\n .header-row {\n margin-top: 15px;\n :deep(.action-button) {\n height: 35px;\n }\n }\n\n .sub-form-row {\n display: flex;\n align-items: center;\n background: white;\n margin: 8px 0;\n border-radius: 6px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);\n\n .row-number-span {\n margin-left: 16px;\n }\n }\n }\n\n .sub-form-action-column {\n display: inline-block;\n align-items: center;\n text-align: center;\n padding: 8px;\n }\n\n .grid-sub-form-data-row {\n display: inline-block;\n flex: 1;\n padding: 10px;\n position: relative;\n &:before,\n &:after {\n content: '';\n display: inline-block;\n width: 1px;\n height: 60%;\n background: #e1e2e3;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n &:before {\n left: 0;\n }\n &:after {\n right: 0;\n }\n :deep(.ant-form-item) {\n margin-bottom: 0;\n }\n }\n\n div.sub-form-action-column.hide-label {\n }\n\n div.row-no-column {\n display: flex;\n align-items: center;\n width: 50px;\n border-radius: 10px;\n background: #f1f2f3;\n padding: 5px 0;\n margin: 0 6px;\n font-size: 14px;\n color: #666;\n }\n\n .action-button-column {\n width: 140px;\n }\n</style>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_createVNode","RenderWigetList","widget","_unref","_createBlock","_createTextVNode"],"mappings":"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"}