@kp-ui/lowcode-pc 1.0.0-alpha.9 → 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.
Files changed (97) hide show
  1. package/assets/styles/style.css +189 -51
  2. package/core/src/components/common/render/Debugger.vue.js +1 -1
  3. package/core/src/components/common/render/Debugger.vue2.js +1 -1
  4. package/core/src/components/common/render/Debugger.vue2.js.map +1 -1
  5. package/core/src/components/common/render/LowcodeRenderProvider.vue.js +10 -1
  6. package/core/src/components/common/render/LowcodeRenderProvider.vue.js.map +1 -1
  7. package/core/src/components/common/render/useFormContext.js +3 -2
  8. package/core/src/components/common/render/useFormContext.js.map +1 -1
  9. package/core/src/constants/WidgetTypeEnum.js +1 -0
  10. package/core/src/constants/WidgetTypeEnum.js.map +1 -1
  11. package/core/src/hooks/useAppRef.js +1 -0
  12. package/core/src/hooks/useAppRef.js.map +1 -1
  13. package/core/src/hooks/useDataHttp.js +3 -3
  14. package/core/src/hooks/useDataHttp.js.map +1 -1
  15. package/core/src/hooks/useDesigner.js +3 -1
  16. package/core/src/hooks/useDesigner.js.map +1 -1
  17. package/core/src/hooks/useField.js +97 -64
  18. package/core/src/hooks/useField.js.map +1 -1
  19. package/core/src/hooks/useWebMCP.js +82 -0
  20. package/core/src/hooks/useWebMCP.js.map +1 -0
  21. package/core/src/lang/en-US.js +33 -0
  22. package/core/src/lang/en-US.js.map +1 -1
  23. package/core/src/lang/zh-CN.js +64 -11
  24. package/core/src/lang/zh-CN.js.map +1 -1
  25. package/install.js +1 -1
  26. package/install.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js +1 -1
  29. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js +17 -3
  30. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -1
  31. package/src/components/desginer/form-widget/container-widget/useTableWidget.js +23 -5
  32. package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -1
  33. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +1 -1
  34. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  35. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js +0 -1
  36. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
  37. package/src/components/desginer/widget-panel/advanced/data-table.js +2 -0
  38. package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
  39. package/src/components/desginer/widget-panel/containers/grid-sub-form.js +5 -0
  40. package/src/components/desginer/widget-panel/containers/grid-sub-form.js.map +1 -1
  41. package/src/components/desginer/widget-panel/containers/grid.js +1 -3
  42. package/src/components/desginer/widget-panel/containers/grid.js.map +1 -1
  43. package/src/components/field-widget/bpmn-editor-widget.vue.js +1 -1
  44. package/src/components/field-widget/bpmn-editor-widget.vue2.js +1 -1
  45. package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
  46. package/src/components/field-widget/button-list-widget.vue.js +1 -1
  47. package/src/components/field-widget/button-list-widget.vue2.js +1 -2
  48. package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
  49. package/src/components/field-widget/code-editor-widget.vue.js +1 -1
  50. package/src/components/field-widget/code-editor-widget.vue2.js +1 -1
  51. package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
  52. package/src/components/field-widget/divider-widget.vue2.js +1 -1
  53. package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
  54. package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
  55. package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
  56. package/src/components/field-widget/dropdown-widget.vue.js +1 -1
  57. package/src/components/field-widget/dropdown-widget.vue2.js +12 -20
  58. package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
  59. package/src/components/field-widget/file-upload-widget.vue.js +1 -1
  60. package/src/components/field-widget/file-upload-widget.vue2.js +12 -16
  61. package/src/components/field-widget/file-upload-widget.vue2.js.map +1 -1
  62. package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
  63. package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
  64. package/src/components/field-widget/number-widget.vue2.js +1 -1
  65. package/src/components/field-widget/number-widget.vue2.js.map +1 -1
  66. package/src/components/field-widget/radio-widget.vue.js +1 -1
  67. package/src/components/field-widget/radio-widget.vue2.js +5 -6
  68. package/src/components/field-widget/radio-widget.vue2.js.map +1 -1
  69. package/src/components/field-widget/rich-editor-widget.vue.js +1 -1
  70. package/src/components/field-widget/rich-editor-widget.vue2.js +1 -1
  71. package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
  72. package/src/components/field-widget/textarea-widget.vue.js +1 -1
  73. package/src/components/field-widget/textarea-widget.vue2.js +1 -1
  74. package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
  75. package/src/components/field-widget/treeSelect-widget.vue2.js +8 -9
  76. package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
  77. package/src/components/field-widget/vue-render-widget.vue2.js +1 -1
  78. package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
  79. package/src/components/form-render/container-items/data-table-widget.vue.js +1 -1
  80. package/src/components/form-render/container-items/data-table-widget.vue2.js +83 -4
  81. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
  82. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
  83. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +24 -5
  84. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
  85. package/src/components/public/DataTableColumnDialog.vue.js +8 -0
  86. package/src/components/public/DataTableColumnDialog.vue.js.map +1 -0
  87. package/src/components/public/DataTableColumnDialog.vue2.js +333 -0
  88. package/src/components/public/DataTableColumnDialog.vue2.js.map +1 -0
  89. package/src/components/public/DynamicDialog.vue.js +0 -1
  90. package/src/components/public/DynamicDialog.vue.js.map +1 -1
  91. package/src/components/render/index.vue2.js +0 -1
  92. package/src/components/render/index.vue2.js.map +1 -1
  93. package/stats.html +1 -1
  94. package/core/src/utils/event-bus.js +0 -8
  95. package/core/src/utils/event-bus.js.map +0 -1
  96. package/src/components/field-widget/useField.js +0 -578
  97. package/src/components/field-widget/useField.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload-widget.vue2.js","sources":["../../../../src/components/field-widget/file-upload-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <template v-if=\"!handleDisabled && !isReadMode\">\n <a-upload\n ref=\"fieldEditor\"\n :disabled=\"handleDisabled || isReadMode\"\n class=\"dynamicPseudoAfter\"\n :class=\"['tpf-upload', { isReadonly: isReadMode }]\"\n :multiple=\"field.options.multiple\"\n :accept=\"acceptType\"\n v-model:file-list=\"fieldModel\"\n :listType=\"field.options.uploadListType\"\n :customRequest=\"customRequest\"\n :iconRender=\"iconRender\"\n @preview=\"handlePreview\"\n @remove=\"removeFile\"\n >\n <a-space :size=\"10\" align=\"start\" v-if=\"isShowUploader\">\n <a-button\n :loading=\"loading\"\n class=\"tpf-button\"\n type=\"primary\"\n :disabled=\"handleDisabled\"\n >\n <SvgIcon icon-class=\"daochu\" /> 上传文件\n </a-button>\n </a-space>\n </a-upload>\n <div :gutter=\"20\" class=\"fileUploadTip\">\n <div v-for=\"(item, inx) in descCol\" :key=\"inx\">\n <span v-if=\"descCol.length > 1\">{{ inx + 1 }}、{{ item }}</span>\n <span v-else>{{ item }}</span>\n </div>\n </div>\n </template>\n <template v-else>\n <AttachmentRender :data=\"fieldModel\" />\n </template>\n <TpfModal v-model:visible=\"previewVisible\" :title=\"previewTitle\" :footer=\"null\">\n <img style=\"width: 100%\" :src=\"previewImage\" />\n </TpfModal>\n </form-item-wrapper>\n</template>\n\n<script lang=\"tsx\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from '@kp-ui/lowcode-core';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { computed, onMounted } from 'vue';\n import {\n AttachmentRender,\n useFilePreview,\n TpfModal,\n SvgIcon,\n useFilesystemApi,\n FileIcon\n } from 'tmgc2-share';\n import { message } from 'ant-design-vue';\n\n const filesystemApi = useFilesystemApi();\n defineOptions({\n name: WidgetTypeEnum.fileUpload,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n loading,\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n handleDisabled,\n defineExposed,\n executeFunction\n } = useField(props);\n\n const handleOnBeforeUpload = file => {\n if (field.options.onBeforeUpload) {\n const result = executeFunction({\n functionBody: field.options.onBeforeUpload,\n params: {\n file\n },\n keys: ['file']\n });\n if (typeof result === 'boolean') {\n return result;\n } else {\n return true;\n }\n }\n return true;\n };\n\n const isShowUploader = computed(\n () => (fieldModel.value?.length || 0) < (field.options.limit || 1)\n );\n\n const customRequest = async upload => {\n const { accept, maxSize, limit, businessType, multiple } = field.options;\n const fileName = upload.file.name;\n const fieldTypesArr = accept.map(item => item.toLowerCase());\n const fieldTypes = fileName.slice(fileName.lastIndexOf('.'));\n\n if (!fieldTypesArr.includes(fieldTypes.toLowerCase())) {\n return message.error(`目前仅支持${accept}格式的文件`);\n }\n\n if (maxSize && upload.file.size > maxSize * 1024 * 1024) {\n message.error(`文件大小不能超过${maxSize}M`);\n return;\n }\n\n const flag = handleOnBeforeUpload(upload);\n\n if (!flag) return;\n loading.value = true;\n try {\n const res = await filesystemApi.uploadFileObject({\n businessType: businessType,\n file: upload.file\n });\n\n const { fileName: name } = res.data.object;\n\n if (limit > 1) {\n const findIndex = fieldModel.value.findIndex(item => item.name === name);\n if (findIndex > -1) {\n fieldModel.value.splice(findIndex, 1);\n }\n if (fieldModel.value.length < limit) {\n fieldModel.value.push({ ...res.data.object, name });\n }\n } else {\n fieldModel.value = [{ ...res.data.object, name }];\n }\n } finally {\n loading.value = false;\n }\n };\n\n /**\n * 初始化文件列表\n */\n const initFileListFieldModel = () => {\n // 初始化上传组件的已上传文件列表\n if (designState) {\n return;\n }\n\n if (fieldModel.value) {\n if (typeof fieldModel.value === 'string') {\n fieldModel.value = JSON.parse(fieldModel.value);\n }\n }\n };\n\n const acceptType = computed(() => {\n const { accept } = field.options;\n if (accept?.length) {\n return accept.join(',');\n } else {\n return '*';\n }\n });\n\n const { handlePreview, previewVisible, previewImage, previewTitle } = useFilePreview();\n\n const iconRender = ({ file }: { file: File }) => {\n const fileObj = {\n fileName: file.name,\n fileType: file.name.slice(file.name.lastIndexOf('.'))\n };\n return <FileIcon file={fileObj} />;\n };\n\n const removeFile = file => {\n const findInx = fieldModel.value.findIndex(item => item.uid === file.uid);\n fieldModel.value.splice(findInx, 1);\n };\n\n const descCol = computed(() => {\n const { accept, maxSize } = field.options;\n const acceptList = (accept || []).join(',');\n return [\n acceptList.length ? i18nt('支持扩展名') + `${acceptList}` : '',\n maxSize ? i18nt('支持文件大小') + `${maxSize}M` : ''\n ].filter(Boolean);\n });\n\n onMounted(() => {\n initFileListFieldModel();\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .fileUploadTip {\n font-size: 12px;\n margin-top: 10px;\n }\n</style>\n"],"names":["filesystemApi","useFilesystemApi","props","__props","loading","rules","i18nt","fieldEditor","field","fieldModel","isReadMode","designState","handleHidden","handleDisabled","defineExposed","executeFunction","useField","handleOnBeforeUpload","file","options","onBeforeUpload","result","functionBody","params","keys","isShowUploader","computed","value","length","limit","customRequest","upload","accept","maxSize","businessType","multiple","fileName","name","fieldTypesArr","map","item","toLowerCase","fieldTypes","slice","lastIndexOf","includes","message","error","size","flag","res","uploadFileObject","data","object","findIndex","splice","push","initFileListFieldModel","JSON","parse","acceptType","join","handlePreview","previewVisible","previewImage","previewTitle","useFilePreview","iconRender","fileObj","fileType","_createVNode2","FileIcon","removeFile","findInx","uid","descCol","acceptList","filter","Boolean","onMounted","__expose","_unref","_openBlock","_createBlock","FormItemWrapper","_mergeProps","key","_createElementBlock","_Fragment","_createVNode","_component_a_upload","ref","disabled","class","_normalizeClass","isReadonly","$event","listType","uploadListType","onPreview","onRemove","_component_a_space","align","_component_a_button","type","SvgIcon","_createElementVNode","_hoisted_1","_renderList","inx","_hoisted_2","_toDisplayString","AttachmentRender","TpfModal","visible","title","footer","style","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DI,UAAMA,gBAAgBC,iBAAgB;AAKtC,UAAMC,QAAQC;AAEd,UAAM;AAAA,MACFC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MAEAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IACJ,IAAIC,SAASd,KAAK;AAElB,UAAMe,uBAAuBC,UAAQ;AACjC,UAAIV,MAAMW,QAAQC,gBAAgB;AAC9B,cAAMC,SAASN,gBAAgB;AAAA,UAC3BO,cAAcd,MAAMW,QAAQC;AAAAA,UAC5BG,QAAQ;AAAA,YACJL;AAAAA;UAEJM,MAAM,CAAC,MAAM;AAAA,QACjB,CAAC;AACD,YAAI,OAAOH,WAAW,WAAW;AAC7B,iBAAOA;AAAAA,QACX,OAAO;AACH,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAEA,UAAMI,iBAAiBC,SACnB,MAAA;;AAAOjB,gCAAWkB,UAAXlB,mBAAkBmB,WAAU,MAAMpB,MAAMW,QAAQU,SAAS;AAAA,KACpE;AAEA,UAAMC,gBAAgB,OAAMC,WAAU;AAClC,YAAM;AAAA,QAAEC;AAAAA,QAAQC;AAAAA,QAASJ;AAAAA,QAAOK;AAAAA,QAAcC;AAAAA,UAAa3B,MAAMW;AACjE,YAAMiB,WAAWL,OAAOb,KAAKmB;AAC7B,YAAMC,gBAAgBN,OAAOO,IAAIC,UAAQA,KAAKC,aAAa;AAC3D,YAAMC,aAAaN,SAASO,MAAMP,SAASQ,YAAY,GAAG,CAAC;AAE3D,UAAI,CAACN,cAAcO,SAASH,WAAWD,YAAW,CAAE,GAAG;AACnD,eAAOK,QAAQC,MAAM,QAAQf,MAAM,OAAO;AAAA,MAC9C;AAEA,UAAIC,WAAWF,OAAOb,KAAK8B,OAAOf,UAAU,OAAO,MAAM;AACrDa,gBAAQC,MAAM,WAAWd,OAAO,GAAG;AACnC;AAAA,MACJ;AAEA,YAAMgB,OAAOhC,qBAAqBc,MAAM;AAExC,UAAI,CAACkB,KAAM;AACX7C,cAAQuB,QAAQ;AAChB,UAAI;AACA,cAAMuB,MAAM,MAAMlD,cAAcmD,iBAAiB;AAAA,UAC7CjB;AAAAA,UACAhB,MAAMa,OAAOb;AAAAA,QACjB,CAAC;AAED,cAAM;AAAA,UAAEkB,UAAUC;AAAAA,QAAK,IAAIa,IAAIE,KAAKC;AAEpC,YAAIxB,QAAQ,GAAG;AACX,gBAAMyB,YAAY7C,WAAWkB,MAAM2B,UAAUd,UAAQA,KAAKH,SAASA,IAAI;AACvE,cAAIiB,YAAY,IAAI;AAChB7C,uBAAWkB,MAAM4B,OAAOD,WAAW,CAAC;AAAA,UACxC;AACA,cAAI7C,WAAWkB,MAAMC,SAASC,OAAO;AACjCpB,uBAAWkB,MAAM6B,KAAK;AAAA,cAAE,GAAGN,IAAIE,KAAKC;AAAAA,cAAQhB;AAAAA,YAAK,CAAC;AAAA,UACtD;AAAA,QACJ,OAAO;AACH5B,qBAAWkB,QAAQ,CAAC;AAAA,YAAE,GAAGuB,IAAIE,KAAKC;AAAAA,YAAQhB;AAAAA,UAAK,CAAC;AAAA,QACpD;AAAA,MACJ,UAAC;AACGjC,gBAAQuB,QAAQ;AAAA,MACpB;AAAA,IACJ;AAKA,UAAM8B,yBAAyBA,MAAM;AAEjC,UAAI9C,aAAa;AACb;AAAA,MACJ;AAEA,UAAIF,WAAWkB,OAAO;AAClB,YAAI,OAAOlB,WAAWkB,UAAU,UAAU;AACtClB,qBAAWkB,QAAQ+B,KAAKC,MAAMlD,WAAWkB,KAAK;AAAA,QAClD;AAAA,MACJ;AAAA,IACJ;AAEA,UAAMiC,aAAalC,SAAS,MAAM;AAC9B,YAAM;AAAA,QAAEM;AAAAA,UAAWxB,MAAMW;AACzB,UAAIa,iCAAQJ,QAAQ;AAChB,eAAOI,OAAO6B,KAAK,GAAG;AAAA,MAC1B,OAAO;AACH,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAED,UAAM;AAAA,MAAEC;AAAAA,MAAeC;AAAAA,MAAgBC;AAAAA,MAAcC;AAAAA,QAAiBC,eAAc;AAEpF,UAAMC,aAAaA,CAAC;AAAA,MAAEjD;AAAAA,IAAqB,MAAM;AAC7C,YAAMkD,UAAU;AAAA,QACZhC,UAAUlB,KAAKmB;AAAAA,QACfgC,UAAUnD,KAAKmB,KAAKM,MAAMzB,KAAKmB,KAAKO,YAAY,GAAG,CAAC;AAAA;AAExD,aAAA0B,YAAAC,UAAA;AAAA,QAAA,QAAuBH;AAAAA,MAAO,GAAA,IAAA;AAAA,IAClC;AAEA,UAAMI,aAAatD,UAAQ;AACvB,YAAMuD,UAAUhE,WAAWkB,MAAM2B,UAAUd,UAAQA,KAAKkC,QAAQxD,KAAKwD,GAAG;AACxEjE,iBAAWkB,MAAM4B,OAAOkB,SAAS,CAAC;AAAA,IACtC;AAEA,UAAME,UAAUjD,SAAS,MAAM;AAC3B,YAAM;AAAA,QAAEM;AAAAA,QAAQC;AAAAA,UAAYzB,MAAMW;AAClC,YAAMyD,cAAc5C,UAAU,CAAA,GAAI6B,KAAK,GAAG;AAC1C,aAAO,CACHe,WAAWhD,SAAStB,MAAM,OAAO,IAAI,GAAGsE,UAAU,KAAK,IACvD3C,UAAU3B,MAAM,QAAQ,IAAI,GAAG2B,OAAO,MAAM,EAAC,EAC/C4C,OAAOC,OAAO;AAAA,IACpB,CAAC;AAEDC,cAAU,MAAM;AACZtB,6BAAsB;AAAA,IAC1B,CAAC;AAEDuB,aAAa;AAAA,MACT,GAAGlE;AAAAA,IACP,CAAC;;;;;cAzMwCmE,MAAArE,YAAA,KAAzCsE,UAAA,GAAAC,YAwCoBC,iBAxCpBC,WAwCoB;AAAA,QAAAC,KAAA;AAAA,SAxCOpF,OAAK;AAAA,QAAwBG,OAAO4E,MAAA5E,KAAA;AAAA,MAAK,CAAA,GAAA;AAAA,yBAChE,MAgCW,CAhCM,CAAA4E,MAAApE,cAAA,MAAmBoE,MAAAvE,UAAA,kBAApC6E,mBAgCWC,UAAA;AAAA,UAAAF,KAAA;AAAA,QAAA,GAAA,CA/BPG,YAwBWC,qBAAA;AAAA,mBAvBH;AAAA,UAAJC,KAAIpF;AAAAA,UACHqF,UAAUX,MAAApE,cAAA,KAAkBoE,MAAAvE,UAAA;AAAA,UAC7BmF,OAAKC,eAAA,CAAC,sBAAoB,CAAA,cAAA;AAAA,YAAAC,YACWd,MAAAvE,UAAA;AAAA,WAAU,CAAA,CAAA;AAAA,UAC9CyB,UAAU8C,MAAAzE,KAAA,EAAMW,QAAQgB;AAAAA,UACxBH,QAAQ4B,WAAAjC;AAAAA,UACD,aAAWsD,MAAAxE,UAAA;AAAA,yFAAAA,WAAUkB,QAAAqE,SAAA;AAAA,UAC5BC,UAAUhB,MAAAzE,KAAA,EAAMW,QAAQ+E;AAAAA,UACxBpE;AAAAA,UACAqC;AAAAA,UACAgC,WAASlB,MAAAnB,aAAA;AAAA,UACTsC,UAAQ5B;AAAAA;2BAET,MASU,CAT8B/C,eAAAE,sBAAxCwD,YASUkB,oBAAA;AAAA;YATArD,MAAM;AAAA,YAAIsD,OAAM;AAAA;6BACtB,MAOW,CAPXb,YAOWc,qBAAA;AAAA,cANNnG,SAAS6E,MAAA7E,OAAA;AAAA,cACVyF,OAAM;AAAA,cACNW,MAAK;AAAA,cACJZ,UAAUX,MAAApE,cAAA;AAAA;+BAEX,MAA+B,CAA/B4E,YAA+BR,MAAAwB,OAAA,GAAA;AAAA,gBAAtB,cAAW;AAAA,cAAQ,CAAA,6CAAG,QACnC,EAAA;;;;;;;kGAGRC,mBAKM,OALNC,YAKM,EAJFzB,UAAA,IAAA,GAAAK,mBAGMC,UAAA,MAAAoB,WAHqBjC,QAAAhD,OAAO,CAArBa,MAAMqE,QAAG;8BAAtBtB,mBAGM,OAAA;AAAA,YAH+BD,KAAKuB;AAAAA,aAAG,CAC7BlC,QAAAhD,MAAQC,SAAM,KAA1BsD,UAAA,GAAAK,mBAA+D,QAAAuB,YAAAC,gBAA5BF,MAAG,CAAA,IAAO,sBAAIrE,IAAI,GAAA,CAAA,MACrD0C,UAAA,GAAAK,mBAA8B,oCAAd/C,IAAI,GAAA,CAAA,EAAA;2CAK5B2C,YAAuCF,MAAA+B,gBAAA,GAAA;AAAA;UAApB5D,MAAM6B,MAAAxE,UAAA;AAAA,gCAE7BgF,YAEWR,MAAAgC,QAAA,GAAA;AAAA,UAFOC,SAASjC,MAAAlB,cAAA;AAAA,4FAAAA,eAAcpC,QAAAqE,SAAA;AAAA,UAAGmB,OAAOlC,MAAAhB,YAAA;AAAA,UAAemD,QAAQ;AAAA;2BACtE,MAA+C,CAA/CV,mBAA+C,OAAA;AAAA,YAA1CW,OAAA;AAAA,cAAA,SAAA;AAAA;YAAqBC,KAAKrC,MAAAjB,YAAA;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"file-upload-widget.vue2.js","sources":["../../../../src/components/field-widget/file-upload-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <template v-if=\"!handleDisabled && !isReadMode\">\n <a-upload\n ref=\"fieldEditor\"\n :disabled=\"handleDisabled || isReadMode\"\n class=\"dynamicPseudoAfter\"\n :class=\"['tpf-upload', { isReadonly: isReadMode }]\"\n :multiple=\"field.options.multiple\"\n :accept=\"acceptType\"\n v-model:file-list=\"fieldModel\"\n :listType=\"field.options.uploadListType\"\n :customRequest=\"customRequest\"\n :iconRender=\"iconRender\"\n @preview=\"handlePreview\"\n @remove=\"removeFile\"\n >\n <a-space :size=\"10\" align=\"start\" v-if=\"isShowUploader\">\n <span\n :loading=\"loading\"\n class=\"tpf-button\"\n type=\"primary\"\n :disabled=\"handleDisabled\"\n >\n <SvgIcon icon-class=\"daochu\" /> 上传文件\n </span>\n </a-space>\n </a-upload>\n <div :gutter=\"20\" class=\"fileUploadTip\">\n <div v-for=\"(item, inx) in descCol\" :key=\"inx\">\n <span v-if=\"descCol.length > 1\">{{ inx + 1 }}、{{ item }}</span>\n <span v-else>{{ item }}</span>\n </div>\n </div>\n </template>\n <template v-else>\n <AttachmentRender :data=\"fieldModel\" />\n </template>\n <TpfModal v-model:visible=\"previewVisible\" :title=\"previewTitle\" :footer=\"null\">\n <img style=\"width: 100%\" :src=\"previewImage\" />\n </TpfModal>\n </form-item-wrapper>\n</template>\n\n<script lang=\"tsx\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from '@kp-ui/lowcode-core';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { computed, onMounted } from 'vue';\n import {\n AttachmentRender,\n useFilePreview,\n TpfModal,\n SvgIcon,\n useFilesystemApi,\n FileIcon\n } from 'tmgc2-share';\n import { message } from 'ant-design-vue';\n\n const filesystemApi = useFilesystemApi();\n defineOptions({\n name: WidgetTypeEnum.fileUpload,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n loading,\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n handleDisabled,\n defineExposed,\n executeFunction\n } = useField(props);\n\n const handleOnBeforeUpload = file => {\n if (field.options.onBeforeUpload) {\n const result = executeFunction({\n functionBody: field.options.onBeforeUpload,\n params: {\n file\n },\n keys: ['file']\n });\n if (typeof result === 'boolean') {\n return result;\n } else {\n return true;\n }\n }\n return true;\n };\n\n const isShowUploader = computed(\n () => (fieldModel.value?.length || 0) < (field.options.limit || 1)\n );\n\n const customRequest = async upload => {\n const { accept, maxSize, limit, businessType, multiple } = field.options;\n const fileName = upload.file.name;\n const fieldTypesArr = accept.map(item => item.toLowerCase());\n const fieldTypes = fileName.slice(fileName.lastIndexOf('.'));\n\n if (!fieldTypesArr.includes(fieldTypes.toLowerCase())) {\n return message.error(`目前仅支持${accept}格式的文件`);\n }\n\n if (maxSize && upload.file.size > maxSize * 1024 * 1024) {\n message.error(`文件大小不能超过${maxSize}M`);\n return;\n }\n\n const flag = handleOnBeforeUpload(upload);\n\n if (!flag) return;\n loading.value = true;\n try {\n const res = await filesystemApi.uploadFileObject({\n businessType: businessType,\n file: upload.file\n });\n\n const { fileName: name } = res.data.object;\n\n if (limit > 1) {\n const findIndex = fieldModel.value.findIndex(item => item.name === name);\n if (findIndex > -1) {\n fieldModel.value.splice(findIndex, 1);\n }\n if (fieldModel.value.length < limit) {\n fieldModel.value.push({ ...res.data.object, name });\n }\n } else {\n fieldModel.value = [{ ...res.data.object, name }];\n }\n } finally {\n loading.value = false;\n }\n };\n\n /**\n * 初始化文件列表\n */\n const initFileListFieldModel = () => {\n // 初始化上传组件的已上传文件列表\n if (designState) {\n return;\n }\n\n if (fieldModel.value) {\n if (typeof fieldModel.value === 'string') {\n fieldModel.value = JSON.parse(fieldModel.value);\n }\n }\n };\n\n const acceptType = computed(() => {\n const { accept } = field.options;\n if (accept?.length) {\n return accept.join(',');\n } else {\n return '*';\n }\n });\n\n const { handlePreview, previewVisible, previewImage, previewTitle } = useFilePreview();\n\n const iconRender = ({ file }: { file: File }) => {\n const fileObj = {\n fileName: file.name,\n fileType: file.name.slice(file.name.lastIndexOf('.'))\n };\n return <FileIcon file={fileObj} />;\n };\n\n const removeFile = file => {\n const findInx = fieldModel.value.findIndex(item => item.uid === file.uid);\n fieldModel.value.splice(findInx, 1);\n };\n\n const descCol = computed(() => {\n const { accept, maxSize } = field.options;\n const acceptList = (accept || []).join(',');\n return [\n acceptList.length ? i18nt('支持扩展名') + `${acceptList}` : '',\n maxSize ? i18nt('支持文件大小') + `${maxSize}M` : ''\n ].filter(Boolean);\n });\n\n onMounted(() => {\n initFileListFieldModel();\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .fileUploadTip {\n font-size: 12px;\n margin-top: 10px;\n }\n</style>\n"],"names":["filesystemApi","useFilesystemApi","props","__props","loading","rules","i18nt","fieldEditor","field","fieldModel","isReadMode","designState","handleHidden","handleDisabled","defineExposed","executeFunction","useField","handleOnBeforeUpload","file","options","onBeforeUpload","result","functionBody","params","keys","isShowUploader","computed","value","length","limit","customRequest","upload","accept","maxSize","businessType","multiple","fileName","name","fieldTypesArr","map","item","toLowerCase","fieldTypes","slice","lastIndexOf","includes","message","error","size","flag","res","uploadFileObject","data","object","findIndex","splice","push","initFileListFieldModel","JSON","parse","acceptType","join","handlePreview","previewVisible","previewImage","previewTitle","useFilePreview","iconRender","fileObj","fileType","_createVNode2","FileIcon","removeFile","findInx","uid","descCol","acceptList","filter","Boolean","onMounted","__expose","_unref","_openBlock","_createBlock","FormItemWrapper","_mergeProps","key","_createElementBlock","_Fragment","_createVNode","_component_a_upload","ref","disabled","class","_normalizeClass","isReadonly","$event","listType","uploadListType","onPreview","onRemove","_component_a_space","align","_createElementVNode","type","SvgIcon","_hoisted_2","_renderList","inx","_hoisted_3","_toDisplayString","AttachmentRender","TpfModal","visible","title","footer","style","src"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./form-item-wrapper.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const FormItemWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0930180b"]]);
4
+ const FormItemWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fe290edb"]]);
5
5
  export {
6
6
  FormItemWrapper as default
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"form-item-wrapper.vue2.js","sources":["../../../../src/components/field-widget/form-item-wrapper.vue"],"sourcesContent":["<template>\n <div class=\"field-wrapper\">\n <FormItem\n :labelCol=\"{ style: { width: labelWidth + 'px' } }\"\n :rules=\"rules\"\n :name=\"getPropName\"\n :labelAlign=\"labelAlign\"\n :class=\"[customClass]\"\n >\n <template #label>\n <div class=\"label-box\">\n <span v-if=\"!!field.options.labelIconClass\" class=\"custom-label\">\n <template v-if=\"field.options.labelIconPosition === 'front'\">\n <a-tooltip :title=\"field.options.labelIconTooltip\">\n <svg-icon :icon-class=\"field.options.labelIconClass\" />\n </a-tooltip>\n <div class=\"label-text\">\n {{ label }}\n </div>\n </template>\n <template v-else-if=\"field.options.labelIconPosition === 'rear'\">\n <div class=\"label-text\">\n {{ label }}\n </div>\n <a-tooltip :title=\"field.options.labelIconTooltip\">\n <svg-icon :icon-class=\"field.options.labelIconClass\" />\n </a-tooltip>\n </template>\n </span>\n <template v-else>\n <div class=\"label-text\">\n {{ label }}\n </div>\n </template>\n </div>\n </template>\n <slot></slot>\n </FormItem>\n </div>\n</template>\n\n<script lang=\"tsx\" setup>\n import { SvgIcon } from 'tmgc2-share';\n import { FieldProps } from './useField';\n import { computed, inject } from 'vue';\n import { FormItem } from 'ant-design-vue';\n import { useDesigner } from '@kp-ui/lowcode-core';\n import { reactive } from 'vue';\n defineOptions({\n name: 'form-item-wrapper'\n });\n\n interface FormItemWrapperProps extends FieldProps {\n rules?: Array<any>;\n }\n const props = withDefaults(defineProps<FormItemWrapperProps>(), {\n parentWidget: null,\n indexOfParentList: 0\n });\n const getSubFormName = inject('getSubFormName', () => '');\n const getSubFormFieldFlag = inject('getSubFormFieldFlag', () => false);\n\n const { formConfig, designer, designState } = useDesigner();\n\n const labelWidth = computed(() => {\n if (props.field?.options?.labelHidden) {\n return 0;\n }\n\n if (props.field?.options?.labelWidth) {\n return props.field.options.labelWidth;\n }\n\n return formConfig.value?.labelWidth;\n });\n\n const label = computed(() => {\n if (props.field?.options?.labelHidden) {\n return '';\n }\n return props.field?.options?.label;\n });\n\n const labelAlign = computed(() => {\n if (props.field?.options?.labelAlign) {\n return props.field.options.labelAlign;\n }\n return formConfig.value?.labelAlign || 'right';\n });\n\n const subFormName = computed(() => () => {\n return getSubFormName ? getSubFormName() : '';\n });\n\n const size = computed(() => {\n if (props.field?.options?.size) {\n return props.field.options.size;\n }\n return formConfig.value?.size || 'middle';\n });\n\n const subFormItemFlag = computed(() => {\n return getSubFormFieldFlag ? getSubFormFieldFlag() : false;\n });\n\n const getPropName = computed(() => {\n if (subFormItemFlag.value && !designState) {\n return (\n subFormName.value +\n '.' +\n props.subFormRowIndex +\n '.' +\n props.field.options.name +\n ''\n );\n } else return props.field.options.name;\n });\n\n const customClass = computed(() =>\n props.field.options.customClass ? props.field.options.customClass.join(' ') : ''\n );\n</script>\n\n<style lang=\"scss\" scoped>\n .field-wrapper {\n position: relative;\n }\n\n .ant-form-item {\n position: relative;\n\n :deep(.ant-form-item-label) {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n span.custom-label {\n display: flex;\n i {\n margin: 0 3px;\n }\n }\n\n /* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */\n :deep(.hide-spin-button) input::-webkit-outer-spin-button,\n :deep(.hide-spin-button) input::-webkit-inner-spin-button {\n -webkit-appearance: none !important;\n }\n }\n</style>\n"],"names":["props","__props","getSubFormName","inject","getSubFormFieldFlag","formConfig","designState","useDesigner","labelWidth","computed","field","options","labelHidden","value","label","labelAlign","subFormName","size","subFormItemFlag","getPropName","subFormRowIndex","name","customClass","join","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","FormItem","labelCol","rules","class","_createElementVNode","_hoisted_2","labelIconClass","_hoisted_3","labelIconPosition","_Fragment","key","_component_a_tooltip","title","labelIconTooltip","SvgIcon","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_renderSlot","_ctx","$slots","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"form-item-wrapper.vue2.js","sources":["../../../../src/components/field-widget/form-item-wrapper.vue"],"sourcesContent":["<template>\n <div class=\"field-wrapper\">\n <FormItem\n :labelCol=\"{ style: { width: labelWidth + 'px' } }\"\n :rules=\"rules\"\n :name=\"getPropName\"\n :labelAlign=\"labelAlign\"\n :class=\"[customClass]\"\n >\n <template #label>\n <div class=\"label-box\">\n <span v-if=\"!!field.options.labelIconClass\" class=\"custom-label\">\n <template v-if=\"field.options.labelIconPosition === 'front'\">\n <a-tooltip :title=\"field.options.labelIconTooltip\">\n <svg-icon :icon-class=\"field.options.labelIconClass\" />\n </a-tooltip>\n <div class=\"label-text\">\n {{ label }}\n </div>\n </template>\n <template v-else-if=\"field.options.labelIconPosition === 'rear'\">\n <div class=\"label-text\">\n {{ label }}\n </div>\n <a-tooltip :title=\"field.options.labelIconTooltip\">\n <svg-icon :icon-class=\"field.options.labelIconClass\" />\n </a-tooltip>\n </template>\n </span>\n <template v-else>\n <div class=\"label-text\">\n {{ label }}\n </div>\n </template>\n </div>\n </template>\n <slot></slot>\n </FormItem>\n </div>\n</template>\n\n<script lang=\"tsx\" setup>\n import { SvgIcon } from 'tmgc2-share';\n import { FieldProps } from '@kp-ui/lowcode-core';\n import { computed, inject } from 'vue';\n import { FormItem } from 'ant-design-vue';\n import { useDesigner } from '@kp-ui/lowcode-core';\n import { reactive } from 'vue';\n defineOptions({\n name: 'form-item-wrapper'\n });\n\n interface FormItemWrapperProps extends FieldProps {\n rules?: Array<any>;\n }\n const props = withDefaults(defineProps<FormItemWrapperProps>(), {\n parentWidget: null,\n indexOfParentList: 0\n });\n const getSubFormName = inject('getSubFormName', () => '');\n const getSubFormFieldFlag = inject('getSubFormFieldFlag', () => false);\n\n const { formConfig, designer, designState } = useDesigner();\n\n const labelWidth = computed(() => {\n if (props.field?.options?.labelHidden) {\n return 0;\n }\n\n if (props.field?.options?.labelWidth) {\n return props.field.options.labelWidth;\n }\n\n return formConfig.value?.labelWidth;\n });\n\n const label = computed(() => {\n if (props.field?.options?.labelHidden) {\n return '';\n }\n return props.field?.options?.label;\n });\n\n const labelAlign = computed(() => {\n if (props.field?.options?.labelAlign) {\n return props.field.options.labelAlign;\n }\n return formConfig.value?.labelAlign || 'right';\n });\n\n const subFormName = computed(() => () => {\n return getSubFormName ? getSubFormName() : '';\n });\n\n const size = computed(() => {\n if (props.field?.options?.size) {\n return props.field.options.size;\n }\n return formConfig.value?.size || 'middle';\n });\n\n const subFormItemFlag = computed(() => {\n return getSubFormFieldFlag ? getSubFormFieldFlag() : false;\n });\n\n const getPropName = computed(() => {\n if (subFormItemFlag.value && !designState) {\n return (\n subFormName.value +\n '.' +\n props.subFormRowIndex +\n '.' +\n props.field.options.name +\n ''\n );\n } else return props.field.options.name;\n });\n\n const customClass = computed(() =>\n props.field.options.customClass ? props.field.options.customClass.join(' ') : ''\n );\n</script>\n\n<style lang=\"scss\" scoped>\n .field-wrapper {\n position: relative;\n }\n\n .ant-form-item {\n position: relative;\n\n :deep(.ant-form-item-label) {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n span.custom-label {\n display: flex;\n i {\n margin: 0 3px;\n }\n }\n\n /* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */\n :deep(.hide-spin-button) input::-webkit-outer-spin-button,\n :deep(.hide-spin-button) input::-webkit-inner-spin-button {\n -webkit-appearance: none !important;\n }\n }\n</style>\n"],"names":["props","__props","getSubFormName","inject","getSubFormFieldFlag","formConfig","designState","useDesigner","labelWidth","computed","field","options","labelHidden","value","label","labelAlign","subFormName","size","subFormItemFlag","getPropName","subFormRowIndex","name","customClass","join","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","FormItem","labelCol","rules","class","_createElementVNode","_hoisted_2","labelIconClass","_hoisted_3","labelIconPosition","_Fragment","key","_component_a_tooltip","title","labelIconTooltip","SvgIcon","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_renderSlot","_ctx","$slots","undefined"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, resolveComponent, createBlock, createCommentVNode, unref, openBlock, mergeProps, withCtx, 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 { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
4
+ import { useField } from "../../../core/src/hooks/useField.js";
5
5
  const _hoisted_1 = {
6
6
  key: 0,
7
7
  class: "readonly-mode-field"
@@ -1 +1 @@
1
- {"version":3,"file":"number-widget.vue2.js","sources":["../../../../src/components/field-widget/number-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-input-number\n ref=\"fieldEditor\"\n :size=\"size\"\n v-model:value=\"fieldModel\"\n v-show=\"!isReadMode\"\n class=\"full-width-input\"\n :disabled=\"handleDisabled\"\n :controls-position=\"field.options.controlsPosition\"\n :placeholder=\"field.options.placeholder\"\n :min=\"field.options.min\"\n :max=\"field.options.max\"\n :precision=\"field.options.precision\"\n :step=\"field.options.step\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ fieldModel }}</span>\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.number,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\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></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MAEA;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;;;cAnDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAoBoB,iBApBpBC,WAoBoB,EAAA,KAAA,EAAA,GApBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAeE;AAAA,yBAfFI,YAeE,2BAAA;AAAA,YAdE,KAAI;AAAA,YACH,MAAMJ,MAAA,IAAA;AAAA,YACC,OAAOA,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAEzB,OAAM;AAAA,YACL,UAAUA,MAAA,cAAA;AAAA,YACV,qBAAmBA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACjC,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA;qBAVEA,MAAA,UAAA,CAAU;AAAA,UAAA;UAYPA,MAAA,UAAA,kBACZK,mBAAyD,QAAzD,YAAyDC,gBAApBN,MAAA,UAAA,CAAU,GAAA,CAAA;;;;;;;"}
1
+ {"version":3,"file":"number-widget.vue2.js","sources":["../../../../src/components/field-widget/number-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-input-number\n ref=\"fieldEditor\"\n :size=\"size\"\n v-model:value=\"fieldModel\"\n v-show=\"!isReadMode\"\n class=\"full-width-input\"\n :disabled=\"handleDisabled\"\n :controls-position=\"field.options.controlsPosition\"\n :placeholder=\"field.options.placeholder\"\n :min=\"field.options.min\"\n :max=\"field.options.max\"\n :precision=\"field.options.precision\"\n :step=\"field.options.step\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ fieldModel }}</span>\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.number,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\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></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MAEA;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;;;cAvDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAoBoB,iBApBpBC,WAoBoB,EAAA,KAAA,EAAA,GApBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAeE;AAAA,yBAfFI,YAeE,2BAAA;AAAA,YAdE,KAAI;AAAA,YACH,MAAMJ,MAAA,IAAA;AAAA,YACC,OAAOA,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAEzB,OAAM;AAAA,YACL,UAAUA,MAAA,cAAA;AAAA,YACV,qBAAmBA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACjC,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA;qBAVEA,MAAA,UAAA,CAAU;AAAA,UAAA;UAYPA,MAAA,UAAA,kBACZK,mBAAyD,QAAzD,YAAyDC,gBAApBN,MAAA,UAAA,CAAU,GAAA,CAAA;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./radio-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const radioWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-43b5b05c"]]);
4
+ const radioWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-770c0330"]]);
5
5
  export {
6
6
  radioWidget as default
7
7
  };
@@ -28,7 +28,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
28
28
  const props = __props;
29
29
  const {
30
30
  rules,
31
- field,
32
31
  fieldModel,
33
32
  isReadMode,
34
33
  designState,
@@ -64,16 +63,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
64
63
  disabled: unref(handleDisabled)
65
64
  }, {
66
65
  default: withCtx(() => [
67
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(field).options.optionItems, (item, index) => {
66
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.field.options.optionItems, (item, index) => {
68
67
  return openBlock(), createBlock(_component_a_radio, {
69
68
  key: index,
70
- value: item[unref(field).options.valueKey],
69
+ value: item[_ctx.field.options.valueKey],
71
70
  disabled: item.disabled,
72
- border: unref(field).options.border,
73
- style: normalizeStyle({ display: unref(field).options.displayStyle })
71
+ border: _ctx.field.options.border,
72
+ style: normalizeStyle({ display: _ctx.field.options.displayStyle })
74
73
  }, {
75
74
  default: withCtx(() => [
76
- createTextVNode(toDisplayString(item[unref(field).options.labelKey]), 1)
75
+ createTextVNode(toDisplayString(item[_ctx.field.options.labelKey]), 1)
77
76
  ]),
78
77
  _: 2
79
78
  }, 1032, ["value", "disabled", "border", "style"]);
@@ -1 +1 @@
1
- {"version":3,"file":"radio-widget.vue2.js","sources":["../../../../src/components/field-widget/radio-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-radio-group\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :size=\"size\"\n v-if=\"!isReadMode\"\n :disabled=\"handleDisabled\"\n >\n <a-radio\n v-for=\"(item, index) in field.options.optionItems\"\n :key=\"index\"\n :value=\"item[field.options.valueKey]\"\n :disabled=\"item.disabled\"\n :border=\"field.options.border\"\n :style=\"{ display: field.options.displayStyle }\"\n >\n {{ item[field.options.labelKey] }}\n </a-radio>\n </a-radio-group>\n <template v-else=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ optionLabel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from '@kp-ui/lowcode-core';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { useSelect } from './hooks/useSelect';\n import { onMounted } from 'vue';\n defineOptions({\n name: WidgetTypeEnum.radio,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n const {\n rules,\n field,\n fieldModel,\n isReadMode,\n designState,\n size,\n handleHidden,\n handleDisabled,\n fieldEditor,\n defineExposed\n } = useField(props);\n\n const { optionLabel, initOptionItems } = useSelect({\n designState,\n fieldModel,\n field: props.field\n });\n onMounted(() => {\n initOptionItems();\n });\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_Fragment","_renderList","_normalizeStyle","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AACd,UAAM;AAAA,MACF;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,aAAa,gBAAA,IAAoB,UAAU;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,IAAA,CAChB;AACD,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AACD,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;;cA5DuDA,MAAA,YAAA,KAAxDC,aAAAC,YAsBoB,iBAtBpBC,WAsBoB,EAAA,KAAA,EAAA,GAtBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAiBgB;AAAA,WAbLA,MAAA,UAAA,kBAJXE,YAiBgB,0BAAA;AAAA;qBAhBR;AAAA,YAAJ,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YACxB,MAAMA,MAAA,IAAA;AAAA,YAEN,UAAUA,MAAA,cAAA;AAAA,UAAA;6BAGP,MAAkD;AAAA,gCADtDI,mBASUC,UAAA,MAAAC,WARkBN,aAAM,QAAQ,aAAW,CAAzC,MAAM,UAAK;oCADvBE,YASU,oBAAA;AAAA,kBAPL,KAAK;AAAA,kBACL,OAAO,KAAKF,aAAM,QAAQ,QAAQ;AAAA,kBAClC,UAAU,KAAK;AAAA,kBACf,QAAQA,MAAA,KAAA,EAAM,QAAQ;AAAA,kBACtB,OAAKO,eAAA,EAAA,SAAaP,MAAA,KAAA,EAAM,QAAQ,aAAA,CAAY;AAAA,gBAAA;mCAE7C,MAAkC;AAAA,oBAA/BQ,gBAAAC,gBAAA,KAAKT,MAAA,KAAA,EAAM,QAAQ,QAAQ,CAAA,GAAA,CAAA;AAAA,kBAAA;;;;;;gEAIlCI,mBAA0D,QAA1D,YAA0DK,gBAArBT,MAAA,WAAA,CAAW,GAAA,CAAA;AAAA,QAAA;;;;;;"}
1
+ {"version":3,"file":"radio-widget.vue2.js","sources":["../../../../src/components/field-widget/radio-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-radio-group\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :size=\"size\"\n v-if=\"!isReadMode\"\n :disabled=\"handleDisabled\"\n >\n <a-radio\n v-for=\"(item, index) in field.options.optionItems\"\n :key=\"index\"\n :value=\"item[field.options.valueKey]\"\n :disabled=\"item.disabled\"\n :border=\"field.options.border\"\n :style=\"{ display: field.options.displayStyle }\"\n >\n {{ item[field.options.labelKey] }}\n </a-radio>\n </a-radio-group>\n <template v-else=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ optionLabel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from '@kp-ui/lowcode-core';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { useSelect } from './hooks/useSelect';\n import { onMounted } from 'vue';\n defineOptions({\n name: WidgetTypeEnum.radio,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n const {\n rules,\n fieldModel,\n isReadMode,\n designState,\n size,\n handleHidden,\n handleDisabled,\n fieldEditor,\n defineExposed\n } = useField(props);\n\n const { optionLabel, initOptionItems } = useSelect({\n designState,\n fieldModel,\n field: props.field\n });\n onMounted(() => {\n initOptionItems();\n });\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_Fragment","_renderList","field","_normalizeStyle","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AACd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,aAAa,gBAAA,IAAoB,UAAU;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,IAAA,CAChB;AACD,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AACD,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;;cA3DuDA,MAAA,YAAA,KAAxDC,aAAAC,YAsBoB,iBAtBpBC,WAsBoB,EAAA,KAAA,EAAA,GAtBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAiBgB;AAAA,WAbLA,MAAA,UAAA,kBAJXE,YAiBgB,0BAAA;AAAA;qBAhBR;AAAA,YAAJ,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YACxB,MAAMA,MAAA,IAAA;AAAA,YAEN,UAAUA,MAAA,cAAA;AAAA,UAAA;6BAGP,MAAkD;AAAA,gCADtDI,mBASUC,UAAA,MAAAC,WARkBC,WAAM,QAAQ,aAAW,CAAzC,MAAM,UAAK;oCADvBL,YASU,oBAAA;AAAA,kBAPL,KAAK;AAAA,kBACL,OAAO,KAAKK,WAAM,QAAQ,QAAQ;AAAA,kBAClC,UAAU,KAAK;AAAA,kBACf,QAAQA,KAAAA,MAAM,QAAQ;AAAA,kBACtB,OAAKC,eAAA,EAAA,SAAaD,KAAAA,MAAM,QAAQ,cAAY;AAAA,gBAAA;mCAE7C,MAAkC;AAAA,oBAA/BE,gBAAAC,gBAAA,KAAKH,KAAAA,MAAM,QAAQ,QAAQ,CAAA,GAAA,CAAA;AAAA,kBAAA;;;;;;gEAIlCH,mBAA0D,QAA1D,YAA0DM,gBAArBV,MAAA,WAAA,CAAW,GAAA,CAAA;AAAA,QAAA;;;;;;"}
@@ -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,
@@ -31,7 +31,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
31
31
  rules,
32
32
  i18nt,
33
33
  fieldEditor,
34
- field,
35
34
  fieldModel,
36
35
  isReadMode,
37
36
  size,
@@ -43,7 +42,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
43
42
  defineExposed
44
43
  } = useField(props);
45
44
  const { labelKey, valueKey, childrenKey, initOptionItems } = useSelect({
46
- field,
45
+ field: props.field,
47
46
  fieldModel,
48
47
  designState
49
48
  });
@@ -52,7 +51,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
51
  });
53
52
  const contentForReadMode = computed(() => {
54
53
  if (!fieldModel.value) return "";
55
- return formateCascaderCode(field.options.optionItems, fieldModel.value, {
54
+ return formateCascaderCode(props.field.options.optionItems, fieldModel.value, {
56
55
  label: labelKey.value,
57
56
  value: valueKey.value,
58
57
  children: childrenKey.value
@@ -69,18 +68,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
69
68
  class: normalizeClass(["full-width-input", { "readonly-mode-cascader": unref(isReadMode) }])
70
69
  }, [
71
70
  withDirectives(createVNode(_component_a_tree_select, {
72
- "tree-default-expand-all": unref(field).options.treeDefaultExpandAll,
71
+ "tree-default-expand-all": _ctx.field.options.treeDefaultExpandAll,
73
72
  ref_key: "fieldEditor",
74
73
  ref: fieldEditor,
75
74
  size: unref(size),
76
- treeData: unref(field).options.optionItems,
75
+ treeData: _ctx.field.options.optionItems,
77
76
  value: unref(fieldModel),
78
77
  "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(fieldModel) ? fieldModel.value = $event : null),
79
78
  disabled: unref(handleDisabled),
80
- allowClear: unref(field).options.allowClear,
81
- placeholder: unref(field).options.placeholder || unref(i18nt)("render.hint.selectPlaceholder"),
79
+ allowClear: _ctx.field.options.allowClear,
80
+ placeholder: _ctx.field.options.placeholder || unref(i18nt)("render.hint.selectPlaceholder"),
82
81
  fieldNames: { value: unref(valueKey), label: unref(labelKey), children: unref(childrenKey) },
83
- multiple: unref(field).options.multiple,
82
+ multiple: _ctx.field.options.multiple,
84
83
  onFocus: unref(handleFocusCustomEvent),
85
84
  onBlur: unref(handleBlurCustomEvent)
86
85
  }, null, 8, ["tree-default-expand-all", "size", "treeData", "value", "disabled", "allowClear", "placeholder", "fieldNames", "multiple", "onFocus", "onBlur"]), [
@@ -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 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: props.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(props.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","field","_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,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,UAAU,UAAU,aAAa,gBAAA,IAAoB,UAAU;AAAA,MACnE,OAAO,MAAM;AAAA,MACb;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,MAAM,QAAQ,aAAa,WAAW,OAAO;AAAA,QAC1E,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,QAChB,UAAU,YAAY;AAAA,MAAA,CACzB;AAAA,IACL,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA1EwCA,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,2BAAyBC,KAAAA,MAAM,QAAQ;AAAA,uBACpC;AAAA,cAAJ,KAAI;AAAA,cACH,MAAMP,MAAA,IAAA;AAAA,cACN,UAAUO,KAAAA,MAAM,QAAQ;AAAA,cACjB,OAAOP,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,UAAUA,MAAA,cAAA;AAAA,cACV,YAAYO,KAAAA,MAAM,QAAQ;AAAA,cAC1B,aAAaA,KAAAA,MAAM,QAAQ,eAAeP,MAAA,KAAA,EAAK,+BAAA;AAAA,cAC/C,YAAU,EAAA,OAAWA,MAAA,QAAA,GAAQ,OAASA,MAAA,QAAA,aAAoBA,MAAA,WAAA,EAAA;AAAA,cAC1D,UAAUO,KAAAA,MAAM,QAAQ;AAAA,cACxB,SAAOP,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;uBAZEA,MAAA,UAAA,CAAU;AAAA,YAAA;YAcPA,MAAA,UAAA,kBACZQ,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 "./data-table-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const DataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-598f1ef3"]]);
4
+ const DataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-02a5f9df"]]);
5
5
  export {
6
6
  DataTableWidget as default
7
7
  };
@@ -1,8 +1,15 @@
1
- import { defineComponent, watchEffect, onMounted, createElementBlock, createCommentVNode, unref, openBlock, normalizeStyle, createVNode } from "vue";
1
+ import { defineComponent, ref, watchEffect, onMounted, resolveComponent, createElementBlock, createCommentVNode, unref, openBlock, normalizeStyle, createVNode, withCtx, createTextVNode, toDisplayString } from "vue";
2
+ import { SettingOutlined } from "@ant-design/icons-vue";
2
3
  import { useVxeTable, Table } from "tmgc2-share";
4
+ import { useI18n } from "@kp-ui/i18n";
3
5
  import { useTableWidget } from "../../desginer/form-widget/container-widget/useTableWidget.js";
6
+ import DataTableColumnDialog from "../../public/DataTableColumnDialog.vue.js";
4
7
  import { ComponentNameEnum, ContainerTypeEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
5
8
  import { useField } from "../../../../core/src/hooks/useField.js";
9
+ const _hoisted_1 = {
10
+ key: 0,
11
+ class: "table-toolbar"
12
+ };
6
13
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
14
  ...{
8
15
  name: ContainerTypeEnum.DataTable,
@@ -20,12 +27,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
27
  setup(__props, { expose: __expose }) {
21
28
  var _a;
22
29
  const props = __props;
30
+ const { t } = useI18n();
23
31
  const { fieldModel, handleHidden, defineExposed } = useField(props);
32
+ const columnDialogVisible = ref(false);
33
+ const columnList = ref([]);
24
34
  const {
25
35
  isLoading,
26
36
  tableProps,
27
37
  tableWidth,
28
38
  pagintion,
39
+ showColumnManager,
29
40
  setPagination,
30
41
  setTableRef,
31
42
  initTableSoureData,
@@ -48,6 +59,44 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
59
  pagintion.value.onChange = (current, pageSize) => {
49
60
  initTableSoureData();
50
61
  };
62
+ const openColumnDialog = () => {
63
+ columnDialogVisible.value = true;
64
+ };
65
+ const handleUpdateColumns = (newColumns) => {
66
+ if (props.field.options.tableColumns) {
67
+ props.field.options.tableColumns = props.field.options.tableColumns.map((col) => {
68
+ const found = newColumns.find((item) => item.dataIndex === col.dataIndex);
69
+ if (found) {
70
+ return { ...col, show: found.visible !== false };
71
+ }
72
+ return col;
73
+ });
74
+ }
75
+ clearTableStorage();
76
+ initColumnList();
77
+ updateTableColumns();
78
+ };
79
+ const initColumnList = () => {
80
+ const tableColumns = props.field.options.tableColumns || [];
81
+ if (tableColumns.length > 0) {
82
+ columnList.value = tableColumns.map((col) => ({
83
+ ...col,
84
+ visible: col.show !== false,
85
+ title: col.title || col.dataIndex
86
+ }));
87
+ }
88
+ };
89
+ const clearTableStorage = () => {
90
+ const tableId = props.field.id || props.field.options.name;
91
+ const keysToRemove = [];
92
+ for (let i = 0; i < localStorage.length; i++) {
93
+ const key = localStorage.key(i);
94
+ if (key && key.includes(tableId)) {
95
+ keysToRemove.push(key);
96
+ }
97
+ }
98
+ keysToRemove.forEach((key) => localStorage.removeItem(key));
99
+ };
51
100
  const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({
52
101
  props: {
53
102
  rowKey: props.field.options.rowKey,
@@ -66,11 +115,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
66
115
  cellClick: (params) => onRunEvent(params, "onClick")
67
116
  }
68
117
  });
118
+ const updateTableColumns = () => {
119
+ if (!tableRef.value) return;
120
+ tableRef.value.refreshColumn();
121
+ };
69
122
  const getSelectedRowKeys = () => {
70
- return selectedRowInfo.value.selectedRowKeys;
123
+ var _a2;
124
+ const selectRows = ((_a2 = tableRef.value) == null ? void 0 : _a2.getCheckboxRecords()) || [];
125
+ return selectRows.map((item) => item[props.field.options.rowKey]);
71
126
  };
72
127
  const getSelectedRows = () => {
73
- return selectedRowInfo.value.selectedRows;
128
+ var _a2;
129
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.getCheckboxRecords(true);
74
130
  };
75
131
  const getFieldEditor = () => {
76
132
  return tableRef.value;
@@ -82,6 +138,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
82
138
  });
83
139
  onMounted(() => {
84
140
  initTableSoureData();
141
+ initColumnList();
85
142
  });
86
143
  __expose({
87
144
  ...defineExposed,
@@ -98,17 +155,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
98
155
  fieldEditor: tableRef
99
156
  });
100
157
  return (_ctx, _cache) => {
158
+ const _component_a_button = resolveComponent("a-button");
101
159
  return !unref(handleHidden) ? (openBlock(), createElementBlock("div", {
102
160
  key: 0,
103
161
  class: "talbe-wrapper",
104
162
  style: normalizeStyle({ width: unref(tableWidth) })
105
163
  }, [
164
+ unref(showColumnManager) ? (openBlock(), createElementBlock("div", _hoisted_1, [
165
+ createVNode(_component_a_button, {
166
+ size: "small",
167
+ onClick: openColumnDialog
168
+ }, {
169
+ icon: withCtx(() => [
170
+ createVNode(unref(SettingOutlined))
171
+ ]),
172
+ default: withCtx(() => [
173
+ createTextVNode(" " + toDisplayString(unref(t)("lang.列设置")), 1)
174
+ ]),
175
+ _: 1
176
+ })
177
+ ])) : createCommentVNode("", true),
106
178
  createVNode(unref(Table), {
107
179
  onRegister: unref(register),
108
180
  tableProps: unref(tableProps),
109
181
  loading: unref(isLoading),
110
182
  pagination: unref(pagintion)
111
- }, null, 8, ["onRegister", "tableProps", "loading", "pagination"])
183
+ }, null, 8, ["onRegister", "tableProps", "loading", "pagination"]),
184
+ createVNode(DataTableColumnDialog, {
185
+ visible: columnDialogVisible.value,
186
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => columnDialogVisible.value = $event),
187
+ columns: columnList.value,
188
+ onUpdate: handleUpdateColumns,
189
+ ref: "columnDialogRef"
190
+ }, null, 8, ["visible", "columns"])
112
191
  ], 4)) : createCommentVNode("", true);
113
192
  };
114
193
  }