@kp-ui/lowcode 1.0.94 → 1.0.96

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 (161) hide show
  1. package/_virtual/virtual_svg-icons-register.js.map +1 -1
  2. package/package.json +5 -5
  3. package/src/api/useFilesystemApi/filesystem/index.js.map +1 -1
  4. package/src/components/CustomRender/components/AttachmentRender.vue2.js.map +1 -1
  5. package/src/components/CustomRender/components/RenderBodyCell.js.map +1 -1
  6. package/src/components/CustomRender/useCustomRender.js.map +1 -1
  7. package/src/components/code-editor/code-modal-editor.vue.js.map +1 -1
  8. package/src/components/code-editor/index.vue2.js.map +1 -1
  9. package/src/components/form-designer/designer.js.map +1 -1
  10. package/src/components/form-designer/form-widget/container-widget/containerMixin.js.map +1 -1
  11. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +22 -22
  12. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js.map +1 -1
  13. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js +2 -5
  14. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -1
  15. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue.js.map +1 -1
  16. package/src/components/form-designer/form-widget/container-widget/grid-sub-form-widget.vue.js.map +1 -1
  17. package/src/components/form-designer/form-widget/container-widget/grid-widget.vue.js.map +1 -1
  18. package/src/components/form-designer/form-widget/container-widget/index.js.map +1 -1
  19. package/src/components/form-designer/form-widget/container-widget/sub-form-widget.vue.js.map +1 -1
  20. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue.js.map +1 -1
  21. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue.js.map +1 -1
  22. package/src/components/form-designer/form-widget/container-widget/table-widget.vue.js.map +1 -1
  23. package/src/components/form-designer/form-widget/container-widget/vf-box-item.vue.js.map +1 -1
  24. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js.map +1 -1
  25. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
  26. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js.map +1 -1
  27. package/src/components/form-designer/form-widget/container-widget/vf-drawer-widget.vue.js.map +1 -1
  28. package/src/components/form-designer/form-widget/field-widget/attachment-render-widget.vue.js.map +1 -1
  29. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget.vue.js.map +1 -1
  30. package/src/components/form-designer/form-widget/field-widget/button-list-widget.vue.js.map +1 -1
  31. package/src/components/form-designer/form-widget/field-widget/button-widget.vue.js.map +1 -1
  32. package/src/components/form-designer/form-widget/field-widget/cascader-widget.vue.js.map +1 -1
  33. package/src/components/form-designer/form-widget/field-widget/checkbox-widget.vue.js.map +1 -1
  34. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js.map +1 -1
  35. package/src/components/form-designer/form-widget/field-widget/color-widget.vue.js.map +1 -1
  36. package/src/components/form-designer/form-widget/field-widget/date-range-widget.vue.js.map +1 -1
  37. package/src/components/form-designer/form-widget/field-widget/date-widget.vue.js.map +1 -1
  38. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue.js.map +1 -1
  39. package/src/components/form-designer/form-widget/field-widget/diy-compontent-widget.vue.js.map +1 -1
  40. package/src/components/form-designer/form-widget/field-widget/dropdown-widget.vue.js.map +1 -1
  41. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js.map +1 -1
  42. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue2.js.map +1 -1
  43. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js.map +1 -1
  44. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue.js.map +1 -1
  45. package/src/components/form-designer/form-widget/field-widget/input-widget.vue.js.map +1 -1
  46. package/src/components/form-designer/form-widget/field-widget/number-widget.vue.js.map +1 -1
  47. package/src/components/form-designer/form-widget/field-widget/radio-widget.vue.js.map +1 -1
  48. package/src/components/form-designer/form-widget/field-widget/rate-widget.vue.js.map +1 -1
  49. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue.js.map +1 -1
  50. package/src/components/form-designer/form-widget/field-widget/select-widget.vue.js.map +1 -1
  51. package/src/components/form-designer/form-widget/field-widget/slider-widget.vue.js.map +1 -1
  52. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue.js.map +1 -1
  53. package/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue.js.map +1 -1
  54. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue.js.map +1 -1
  55. package/src/components/form-designer/form-widget/field-widget/switch-widget.vue.js.map +1 -1
  56. package/src/components/form-designer/form-widget/field-widget/textarea-widget.vue.js.map +1 -1
  57. package/src/components/form-designer/form-widget/field-widget/time-range-widget.vue.js.map +1 -1
  58. package/src/components/form-designer/form-widget/field-widget/time-widget.vue.js.map +1 -1
  59. package/src/components/form-designer/form-widget/field-widget/treeSelect-widget.vue.js.map +1 -1
  60. package/src/components/form-designer/form-widget/index.vue.js.map +1 -1
  61. package/src/components/form-designer/index.vue.js +91 -84
  62. package/src/components/form-designer/index.vue.js.map +1 -1
  63. package/src/components/form-designer/refMixinDesign.js.map +1 -1
  64. package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
  65. package/src/components/form-designer/setting-panel/index.vue.js.map +1 -1
  66. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
  67. package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js.map +1 -1
  68. package/src/components/form-designer/setting-panel/property-editor/button-position-editor.vue2.js.map +1 -1
  69. package/src/components/form-designer/setting-panel/property-editor/code-editor/code-editor-mode.vue.js.map +1 -1
  70. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue.js.map +1 -1
  71. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue.js.map +1 -1
  72. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-pagination-editor.vue.js.map +1 -1
  73. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-rowKey-editor.vue.js.map +1 -1
  74. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-selections-editor.vue.js.map +1 -1
  75. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js.map +1 -1
  76. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showIndex-editor.vue.js.map +1 -1
  77. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-stripe-editor.vue.js.map +1 -1
  78. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +2 -2
  79. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +70 -74
  80. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
  81. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableHeight-editor.vue.js.map +1 -1
  82. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableSize-editor.vue.js.map +1 -1
  83. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableWidth-editor.vue.js.map +1 -1
  84. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-treeDataEnabled-editor.vue.js.map +1 -1
  85. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js.map +1 -1
  86. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js.map +1 -1
  87. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-tabBarGutter-editor.vue.js.map +1 -1
  88. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-tabPosition-editor.vue.js.map +1 -1
  89. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-type-editor.vue.js.map +1 -1
  90. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/bodyStyle-editor.vue2.js.map +1 -1
  91. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/formCode-editor.vue.js.map +1 -1
  92. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue.js.map +1 -1
  93. package/src/components/form-designer/setting-panel/property-editor/event-handler/eventMixin.js.map +1 -1
  94. package/src/components/form-designer/setting-panel/property-editor/field-dropdown/dropdown-menuList-editor.vue.js.map +1 -1
  95. package/src/components/form-designer/setting-panel/property-editor/field-select/mode-editor.vue.js.map +1 -1
  96. package/src/components/form-designer/setting-panel/property-editor/max-editor.vue.js.map +1 -1
  97. package/src/components/form-designer/setting-panel/property-editor/maxLength-editor.vue.js.map +1 -1
  98. package/src/components/form-designer/setting-panel/property-editor/min-editor.vue.js.map +1 -1
  99. package/src/components/form-designer/setting-panel/property-editor/minLength-editor.vue.js.map +1 -1
  100. package/src/components/form-designer/setting-panel/property-editor/name-editor.vue.js.map +1 -1
  101. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue.js.map +1 -1
  102. package/src/components/form-designer/setting-panel/property-editor/placement-editor.vue.js.map +1 -1
  103. package/src/components/form-designer/setting-panel/property-editor/propertyMixin.js.map +1 -1
  104. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue.js.map +1 -1
  105. package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
  106. package/src/components/form-designer/toolbar-panel/index.vue2.js +1 -5
  107. package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
  108. package/src/components/form-designer/widget-panel/index.vue.js.map +1 -1
  109. package/src/components/form-render/SubmitButtonRender.vue.js.map +1 -1
  110. package/src/components/form-render/container-item/containerItemMixin.js.map +1 -1
  111. package/src/components/form-render/container-item/data-table-item.vue.js +4 -5
  112. package/src/components/form-render/container-item/data-table-item.vue.js.map +1 -1
  113. package/src/components/form-render/container-item/grid-col-item.vue.js.map +1 -1
  114. package/src/components/form-render/container-item/grid-item.vue.js.map +1 -1
  115. package/src/components/form-render/container-item/grid-sub-form-item.vue.js +10 -5
  116. package/src/components/form-render/container-item/grid-sub-form-item.vue.js.map +1 -1
  117. package/src/components/form-render/container-item/index.js.map +1 -1
  118. package/src/components/form-render/container-item/sub-form-item.vue.js.map +1 -1
  119. package/src/components/form-render/container-item/tab-item.vue.js.map +1 -1
  120. package/src/components/form-render/container-item/table-cell-item.vue.js.map +1 -1
  121. package/src/components/form-render/container-item/table-item.vue.js.map +1 -1
  122. package/src/components/form-render/container-item/vf-collapse-item.vue.js.map +1 -1
  123. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  124. package/src/components/form-render/dynamic-drawer.vue.js.map +1 -1
  125. package/src/components/form-render/index.vue.js +120 -106
  126. package/src/components/form-render/index.vue.js.map +1 -1
  127. package/src/components/form-render/refMixin.js.map +1 -1
  128. package/src/components/http-editor/index.vue.js.map +1 -1
  129. package/src/components/public/ActionButtonListDialog.vue.js +10 -10
  130. package/src/components/public/ActionButtonListDialog.vue.js.map +1 -1
  131. package/src/components/public/ActionButtonListDialog.vue2.js +24 -28
  132. package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
  133. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
  134. package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -1
  135. package/src/components/public/CustomerModal/useCustomerModal.js.map +1 -1
  136. package/src/components/public/QuillEditor/index.vue.js.map +1 -1
  137. package/src/components/public/methoad-item.vue.js.map +1 -1
  138. package/src/components/svg-icon/FileIcon.js.map +1 -1
  139. package/src/hooks/TpfConfirm.js.map +1 -1
  140. package/src/hooks/useFilePreview.js.map +1 -1
  141. package/src/hooks/useLowcode.js.map +1 -1
  142. package/src/lib/vuedraggable/src/core/componentBuilderHelper.js.map +1 -1
  143. package/src/lib/vuedraggable/src/core/componentStructure.js.map +1 -1
  144. package/src/lib/vuedraggable/src/util/string.js.map +1 -1
  145. package/src/lib/vuedraggable/src/vuedraggable.js.map +1 -1
  146. package/src/mixins/useDataTableMixin.js +2 -2
  147. package/src/mixins/useDataTableMixin.js.map +1 -1
  148. package/src/mixins/useSelectMixin.js.map +1 -1
  149. package/src/utils/emitter.js.map +1 -1
  150. package/src/utils/executeFunction.js.map +1 -1
  151. package/src/utils/format.js.map +1 -1
  152. package/src/utils/i18n.js.map +1 -1
  153. package/src/utils/request/fmtHttpParams.js.map +1 -1
  154. package/src/utils/request/handleAxiosError.js.map +1 -1
  155. package/src/utils/request/http.js.map +1 -1
  156. package/src/utils/smart-vue-i18n/index.js.map +1 -1
  157. package/src/utils/smart-vue-i18n/utils.js.map +1 -1
  158. package/src/utils/util.js.map +1 -1
  159. package/src/utils/validators.js.map +1 -1
  160. package/stats.html +1 -1
  161. package/styles/style.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-designer/index.vue"],"sourcesContent":["<template>\n <a-layout class=\"main-container full-height\">\n <a-layout>\n <a-layout-sider :width=\"leftWidth\" class=\"side-panel\">\n <WidgetPanel :designer=\"designer\" />\n </a-layout-sider>\n\n <a-layout-content class=\"center-layout-container\">\n <a-layout-header class=\"toolbar-header\">\n <toolbar-panel\n :saveJsonApi=\"saveJsonApi\"\n :designer=\"designer\"\n :global-dsv=\"globalDsv\"\n :changeLeftWidth=\"changeLeftWidth\"\n :changeRightWidth=\"changeRightWidth\"\n :leftWidth=\"leftWidth\"\n :rightWidth=\"rightWidth\"\n ref=\"toolbarRef\"\n >\n <template v-for=\"(idx, slotName) in $slots\" #[slotName]>\n <slot :name=\"slotName\"></slot>\n </template>\n </toolbar-panel>\n </a-layout-header>\n <a-layout-content class=\"form-widget-main\">\n <div class=\"container-scroll-bar\">\n <VFormWidget\n :designer=\"designer\"\n :form-config=\"designer.formConfig\"\n :global-dsv=\"globalDsv\"\n ref=\"formRef\"\n />\n </div>\n </a-layout-content>\n </a-layout-content>\n\n <a-layout-sider :width=\"rightWidth\">\n <setting-panel\n :designer=\"designer\"\n :selected-widget=\"designer.selectedWidget\"\n :global-dsv=\"globalDsv\"\n :form-config=\"designer.formConfig\"\n @edit-event-handler=\"testEEH\"\n />\n </a-layout-sider>\n </a-layout>\n </a-layout>\n</template>\n\n<script>\n import WidgetPanel from './widget-panel/index.vue';\n import ToolbarPanel from './toolbar-panel/index.vue';\n import SettingPanel from './setting-panel/index.vue';\n import VFormWidget from './form-widget/index.vue';\n import { createDesigner } from '@/components/form-designer/designer';\n import {\n addWindowResizeHandler,\n deepClone,\n getAllContainerWidgets,\n getAllFieldWidgets,\n traverseAllWidgets\n } from '@/utils/util';\n import i18n, { changeLocale } from '@/utils/i18n';\n import { isEmpty } from 'lodash-es';\n\n export default {\n name: 'VFormDesigner',\n componentName: 'VFormDesigner',\n mixins: [i18n],\n components: {\n WidgetPanel,\n ToolbarPanel,\n SettingPanel,\n VFormWidget\n },\n props: {\n /* 保存jsonApi */\n\n saveJsonApi: {\n type: Function,\n default: null\n },\n /* 后端字段列表API */\n fieldListApi: {\n type: Function,\n default: null\n },\n\n /* 禁止显示的组件名称数组 */\n bannedWidgets: {\n type: Array,\n default: () => []\n },\n /* 设计器配置参数 */\n designerConfig: {\n type: Object,\n default: () => {\n return {\n languageMenu: true, //是否显示语言切换菜单\n // externalLink: true, //是否显示GitHub、文档等外部链接\n // formTemplates: true, //是否显示表单模板\n eventCollapse: true, //是否显示组件事件属性折叠面板\n widgetNameReadonly: false, //禁止修改组件名称\n\n clearDesignerButton: true, //是否显示清空设计器按钮\n previewFormButton: true, //是否显示预览表单按钮\n importJsonButton: true, //是否显示导入JSON按钮\n exportJsonButton: true, //是否显示导出JSON器按钮\n exportCodeButton: true, //是否显示导出代码按钮\n // generateSFCButton: true, //是否显示生成SFC按钮\n\n toolbarMaxWidth: 450, //设计器工具按钮栏最大宽度(单位像素)\n toolbarMinWidth: 300, //设计器工具按钮栏最小宽度(单位像素)\n\n presetCssCode: '', //设计器预设CSS样式代码\n\n resetFormJson: false //是否在设计器初始化时将表单内容重置为空\n };\n }\n },\n\n /* 全局数据源变量 */\n globalDsv: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n leftWidth: 270,\n rightWidth: 300,\n curLangName: '',\n curLocale: '',\n isLoading: false, //是否正在加载中\n vsCodeFlag: false,\n caseName: '',\n\n docUrl: 'https://www.vform666.com/document3.html',\n gitUrl: 'https://github.com/vform666/variant-form3-vite',\n chatUrl: 'https://www.vform666.com/pages/chat-group/',\n subScribeUrl: 'https://www.vform666.com/pages/pro/',\n\n scrollerHeight: 0,\n\n designer: createDesigner(this),\n\n fieldList: []\n };\n },\n provide() {\n return {\n serverFieldList: () => this.fieldList,\n getDesignerConfig: () => this.designerConfig,\n getBannedWidgets: () => this.bannedWidgets\n };\n },\n created() {\n // this.vsCodeFlag = getQueryParam('vscode') == 1;\n // this.caseName = getQueryParam('case');\n },\n mounted() {\n this.initLocale();\n\n this.scrollerHeight = window.innerHeight - 56 - 36 + 'px';\n addWindowResizeHandler(() => {\n this.$nextTick(() => {\n this.scrollerHeight = window.innerHeight - 56 - 36 + 'px';\n });\n });\n\n this.loadFieldListFromServer();\n },\n methods: {\n setLoading(flag) {\n this.isLoading = flag;\n },\n changeLeftWidth() {\n if (this.leftWidth === 270) {\n this.leftWidth = 0;\n } else {\n this.leftWidth = 270;\n }\n },\n changeRightWidth() {\n if (this.rightWidth === 300) {\n this.rightWidth = 0;\n } else {\n this.rightWidth = 300;\n }\n },\n /**\n * json回填\n * @param {*} importObj\n */\n setJsonImport(importObj = {}) {\n if (isEmpty(importObj)) return;\n try {\n if (!importObj || !importObj.formConfig) {\n throw new Error(this.i18nt('designer.hint.invalidJsonFormat'));\n }\n\n // const fJsonVer = importObj?.formConfig?.jsonVersion || '';\n // if (!fJsonVer || fJsonVer !== 3) {\n // throw new Error(this.i18nt('designer.hint.jsonVersionMismatch'));\n // }\n\n this.designer.loadFormJson(importObj);\n\n this.designer.emitHistoryChange();\n\n this.designer.emitEvent('form-json-imported', []);\n } catch (ex) {\n this.$message.error(ex + '');\n }\n },\n testEEH(eventName, eventParams) {\n console.log('test', eventName);\n console.log('test222222', eventParams);\n },\n\n showLink(configName) {\n if (this.designerConfig[configName] === undefined) {\n return true;\n }\n\n return !!this.designerConfig[configName];\n },\n\n openUrl(event, url) {\n if (!!this.vsCodeFlag) {\n const msgObj = {\n cmd: 'openUrl',\n data: {\n url\n }\n };\n window.parent.postMessage(msgObj, '*');\n } else {\n const aDom = event.currentTarget;\n aDom.href = url;\n //window.open(url, '_blank') //直接打开新窗口,会被浏览器拦截\n }\n },\n\n changeLanguage(langName) {\n changeLocale(langName);\n },\n initLocale() {\n this.curLocale = localStorage.getItem('lowcode_local');\n if (!!this.vsCodeFlag) {\n this.curLocale = this.curLocale || 'en-US';\n } else {\n this.curLocale = this.curLocale || 'zh-CN';\n }\n this.curLangName = this.i18nt('application.' + this.curLocale);\n this.changeLanguage(this.curLocale);\n },\n\n async loadFieldListFromServer() {\n if (!this.fieldListApi) {\n return;\n }\n this.fieldList = await this.fieldListApi();\n console.log('this.fieldList: ', this.fieldList);\n },\n setFormJson(formJson) {\n console.log('formJson: ', formJson);\n let modifiedFlag = false;\n if (!!formJson) {\n if (typeof formJson === 'string') {\n //TODO\n modifiedFlag = this.designer.loadFormJson(JSON.parse(formJson));\n } else if (formJson.constructor === Object) {\n modifiedFlag = this.designer.loadFormJson(formJson);\n }\n\n if (modifiedFlag) {\n this.designer.emitHistoryChange();\n }\n }\n },\n\n getFormJson() {\n return {\n widgetList: deepClone(this.designer.widgetList),\n formConfig: deepClone(this.designer.formConfig)\n };\n },\n\n clearDesigner() {\n this.$refs.toolbarRef.clearFormWidget();\n },\n\n /**\n * 刷新表单设计器\n */\n refreshDesigner() {\n //this.designer.loadFormJson( this.getFormJson() ) //只有第一次调用生效??\n\n const fJson = this.getFormJson();\n this.designer.clearDesigner(true); //不触发历史记录变更\n this.designer.loadFormJson(fJson);\n },\n\n /**\n * 预览表单\n */\n previewForm() {\n this.$refs.toolbarRef.previewForm();\n },\n\n /**\n * 导入表单JSON\n */\n importJson() {\n this.$refs.toolbarRef.importJson();\n },\n\n /**\n * 导出表单JSON\n */\n exportJson() {\n this.$refs.toolbarRef.exportJson();\n },\n\n /**\n * 导出Vue/HTML代码\n */\n exportCode() {\n this.$refs.toolbarRef.exportCode();\n },\n\n /**\n * 生成SFC代码\n */\n generateSFC() {\n this.$refs.toolbarRef.generateSFC();\n },\n\n /**\n * 获取所有字段组件\n * @returns {*[]}\n */\n getFieldWidgets(widgetList = null) {\n return !!widgetList\n ? getAllFieldWidgets(widgetList)\n : getAllFieldWidgets(this.designer.widgetList);\n },\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n getContainerWidgets(widgetList = null) {\n return !!widgetList\n ? getAllContainerWidgets(widgetList)\n : getAllContainerWidgets(this.designer.widgetList);\n },\n\n /**\n * 升级表单json,以补充最新的组件属性\n * @param formJson\n */\n upgradeFormJson(formJson) {\n if (!formJson.widgetList || !formJson.formConfig) {\n this.$message.error('Invalid form json!');\n return;\n }\n\n traverseAllWidgets(formJson.widgetList, w => {\n this.designer.upgradeWidgetConfig(w);\n });\n this.designer.upgradeFormConfig(formJson.formConfig);\n\n return formJson;\n },\n\n getWidgetRef(widgetName, showError = false) {\n return this.$refs['formRef'].getWidgetRef(widgetName, showError);\n },\n\n getSelectedWidgetRef() {\n return this.$refs['formRef'].getSelectedWidgetRef();\n },\n\n /**\n * 添加数据源对象\n * @param dsObj\n */\n addDataSource(dsObj) {\n this.designer.formConfig.dataSources.push(dsObj);\n },\n\n /**\n * 增加外部组件引用,可通过getEC()方法获取外部组件,以便在VForm内部调用外部组件方法\n * @param componentName 外部组件名称\n * @param externalComponent 外部组件实例\n */\n addEC(componentName, externalComponent) {\n this.externalComponents[componentName] = externalComponent;\n },\n\n /**\n * 判断外部组件是否可获取\n * @param componentName 外部组件名称\n * @returns {boolean}\n */\n hasEC(componentName) {\n return this.externalComponents.hasOwnProperty(componentName);\n },\n\n /**\n * 获取外部组件实例\n * @param componentName\n * @returns {*}\n */\n getEC(componentName) {\n return this.externalComponents[componentName];\n }\n\n //TODO: 增加更多方法!!\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .ant-layout.main-container {\n background: #fff;\n\n .ant-layout-sider {\n background: #fff;\n }\n\n :deep(aside) {\n /* 防止aside样式被外部样式覆盖!! */\n margin: 0;\n padding: 0;\n background: inherit;\n }\n }\n\n .ant-layout.full-height {\n height: 100%;\n overflow-y: hidden;\n }\n\n .ant-layout-content.center-layout-container {\n min-width: 680px;\n border-left: 2px dotted #ebeef5;\n border-right: 2px dotted #ebeef5;\n display: flex;\n flex-direction: column;\n }\n\n .ant-layout-header.main-header {\n border-bottom: 2px dotted #ebeef5;\n background: #fff;\n padding: 0;\n\n height: 48px !important;\n line-height: 48px !important;\n min-width: 800px;\n }\n\n div.main-title {\n font-size: 18px;\n color: #242424;\n display: flex;\n align-items: center;\n justify-items: center;\n\n img {\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n span.bold {\n font-size: 20px;\n font-weight: bold;\n margin: 0 6px 0 6px;\n }\n\n span.version-span {\n font-size: 14px;\n color: #101f1c;\n margin-left: 6px;\n }\n }\n\n .float-left {\n float: left;\n }\n\n .float-right {\n float: right;\n }\n\n .el-dropdown-link {\n margin-right: 12px;\n cursor: pointer;\n }\n\n div.external-link {\n display: flex;\n align-items: center;\n\n a {\n font-size: 13px;\n text-decoration: none;\n margin-right: 10px;\n color: #606266;\n }\n }\n\n .ant-layout-header.toolbar-header {\n font-size: 14px;\n border-bottom: 1px dotted #cccccc;\n height: 42px !important;\n background: #fff;\n padding: 0;\n }\n\n .ant-layout-sider.side-panel {\n width: 260px !important;\n overflow-y: hidden;\n }\n // .left-aside-toggle-bar {\n // position: relative;\n // width: 0px;\n // .icons {\n // position: absolute;\n // right: 100%;\n // top: 50%;\n // transform: translate(100%, -50%);\n // z-index: 9999;\n // background: #fff;\n // width: 12px !important;\n // height: 36px !important;\n // }\n // }\n\n .ant-layout-content.form-widget-main {\n padding: 0;\n position: relative;\n overflow-x: hidden;\n flex: 1 0 0;\n }\n\n .container-scroll-bar {\n height: 100%;\n & > :deep(.form-widget-container) {\n height: 100%;\n }\n }\n</style>\n"],"names":["_sfc_main","i18n","WidgetPanel","ToolbarPanel","SettingPanel","VFormWidget","createDesigner","addWindowResizeHandler","flag","importObj","isEmpty","ex","eventName","eventParams","configName","event","url","msgObj","aDom","langName","changeLocale","formJson","modifiedFlag","deepClone","fJson","widgetList","getAllFieldWidgets","getAllContainerWidgets","traverseAllWidgets","w","widgetName","showError","dsObj","componentName","externalComponent","_hoisted_1","_createBlock","_component_a_layout","_createVNode","_component_a_layout_sider","$data","_component_WidgetPanel","_component_a_layout_content","_component_a_layout_header","_component_toolbar_panel","$props","$options","_ctx","idx","slotName","_renderSlot","_createElementVNode","_component_VFormWidget","_component_setting_panel"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-designer/index.vue"],"sourcesContent":["<template>\n <TpfConfigProvider>\n <a-layout class=\"main-container full-height\">\n <a-layout>\n <a-layout-sider :width=\"leftWidth\" class=\"side-panel\">\n <WidgetPanel :designer=\"designer\" />\n </a-layout-sider>\n\n <a-layout-content class=\"center-layout-container\">\n <a-layout-header class=\"toolbar-header\">\n <toolbar-panel\n :saveJsonApi=\"saveJsonApi\"\n :designer=\"designer\"\n :global-dsv=\"globalDsv\"\n :changeLeftWidth=\"changeLeftWidth\"\n :changeRightWidth=\"changeRightWidth\"\n :leftWidth=\"leftWidth\"\n :rightWidth=\"rightWidth\"\n ref=\"toolbarRef\"\n >\n <template v-for=\"(idx, slotName) in $slots\" #[slotName]>\n <slot :name=\"slotName\"></slot>\n </template>\n </toolbar-panel>\n </a-layout-header>\n <a-layout-content class=\"form-widget-main\">\n <div class=\"container-scroll-bar\">\n <VFormWidget\n :designer=\"designer\"\n :form-config=\"designer.formConfig\"\n :global-dsv=\"globalDsv\"\n ref=\"formRef\"\n />\n </div>\n </a-layout-content>\n </a-layout-content>\n\n <a-layout-sider :width=\"rightWidth\">\n <setting-panel\n :designer=\"designer\"\n :selected-widget=\"designer.selectedWidget\"\n :global-dsv=\"globalDsv\"\n :form-config=\"designer.formConfig\"\n @edit-event-handler=\"testEEH\"\n />\n </a-layout-sider>\n </a-layout>\n </a-layout>\n </TpfConfigProvider>\n</template>\n\n<script>\n import WidgetPanel from './widget-panel/index.vue';\n import ToolbarPanel from './toolbar-panel/index.vue';\n import SettingPanel from './setting-panel/index.vue';\n import VFormWidget from './form-widget/index.vue';\n import { createDesigner } from '@/components/form-designer/designer';\n import { TpfConfigProvider } from 'tmgc2-share';\n import {\n addWindowResizeHandler,\n deepClone,\n getAllContainerWidgets,\n getAllFieldWidgets,\n traverseAllWidgets\n } from '@/utils/util';\n import i18n, { changeLocale } from '@/utils/i18n';\n import { isEmpty } from 'lodash-es';\n\n export default {\n name: 'VFormDesigner',\n componentName: 'VFormDesigner',\n mixins: [i18n],\n components: {\n TpfConfigProvider,\n WidgetPanel,\n ToolbarPanel,\n SettingPanel,\n VFormWidget\n },\n props: {\n /* 保存jsonApi */\n\n saveJsonApi: {\n type: Function,\n default: null\n },\n /* 后端字段列表API */\n fieldListApi: {\n type: Function,\n default: null\n },\n\n /* 禁止显示的组件名称数组 */\n bannedWidgets: {\n type: Array,\n default: () => []\n },\n /* 设计器配置参数 */\n designerConfig: {\n type: Object,\n default: () => {\n return {\n languageMenu: true, //是否显示语言切换菜单\n // externalLink: true, //是否显示GitHub、文档等外部链接\n // formTemplates: true, //是否显示表单模板\n eventCollapse: true, //是否显示组件事件属性折叠面板\n widgetNameReadonly: false, //禁止修改组件名称\n\n clearDesignerButton: true, //是否显示清空设计器按钮\n previewFormButton: true, //是否显示预览表单按钮\n importJsonButton: true, //是否显示导入JSON按钮\n exportJsonButton: true, //是否显示导出JSON器按钮\n exportCodeButton: true, //是否显示导出代码按钮\n // generateSFCButton: true, //是否显示生成SFC按钮\n\n toolbarMaxWidth: 450, //设计器工具按钮栏最大宽度(单位像素)\n toolbarMinWidth: 300, //设计器工具按钮栏最小宽度(单位像素)\n\n presetCssCode: '', //设计器预设CSS样式代码\n\n resetFormJson: false //是否在设计器初始化时将表单内容重置为空\n };\n }\n },\n\n /* 全局数据源变量 */\n globalDsv: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n leftWidth: 270,\n rightWidth: 300,\n curLangName: '',\n curLocale: '',\n isLoading: false, //是否正在加载中\n vsCodeFlag: false,\n caseName: '',\n\n docUrl: 'https://www.vform666.com/document3.html',\n gitUrl: 'https://github.com/vform666/variant-form3-vite',\n chatUrl: 'https://www.vform666.com/pages/chat-group/',\n subScribeUrl: 'https://www.vform666.com/pages/pro/',\n\n scrollerHeight: 0,\n\n designer: createDesigner(this),\n\n fieldList: []\n };\n },\n provide() {\n return {\n serverFieldList: () => this.fieldList,\n getDesignerConfig: () => this.designerConfig,\n getBannedWidgets: () => this.bannedWidgets\n };\n },\n created() {\n // this.vsCodeFlag = getQueryParam('vscode') == 1;\n // this.caseName = getQueryParam('case');\n },\n mounted() {\n this.initLocale();\n\n this.scrollerHeight = window.innerHeight - 56 - 36 + 'px';\n addWindowResizeHandler(() => {\n this.$nextTick(() => {\n this.scrollerHeight = window.innerHeight - 56 - 36 + 'px';\n });\n });\n\n this.loadFieldListFromServer();\n },\n methods: {\n setLoading(flag) {\n this.isLoading = flag;\n },\n changeLeftWidth() {\n if (this.leftWidth === 270) {\n this.leftWidth = 0;\n } else {\n this.leftWidth = 270;\n }\n },\n changeRightWidth() {\n if (this.rightWidth === 300) {\n this.rightWidth = 0;\n } else {\n this.rightWidth = 300;\n }\n },\n /**\n * json回填\n * @param {*} importObj\n */\n setJsonImport(importObj = {}) {\n if (isEmpty(importObj)) return;\n try {\n if (!importObj || !importObj.formConfig) {\n throw new Error(this.i18nt('designer.hint.invalidJsonFormat'));\n }\n\n // const fJsonVer = importObj?.formConfig?.jsonVersion || '';\n // if (!fJsonVer || fJsonVer !== 3) {\n // throw new Error(this.i18nt('designer.hint.jsonVersionMismatch'));\n // }\n\n this.designer.loadFormJson(importObj);\n\n this.designer.emitHistoryChange();\n\n this.designer.emitEvent('form-json-imported', []);\n } catch (ex) {\n this.$message.error(ex + '');\n }\n },\n testEEH(eventName, eventParams) {\n console.log('test', eventName);\n console.log('test222222', eventParams);\n },\n\n showLink(configName) {\n if (this.designerConfig[configName] === undefined) {\n return true;\n }\n\n return !!this.designerConfig[configName];\n },\n\n openUrl(event, url) {\n if (!!this.vsCodeFlag) {\n const msgObj = {\n cmd: 'openUrl',\n data: {\n url\n }\n };\n window.parent.postMessage(msgObj, '*');\n } else {\n const aDom = event.currentTarget;\n aDom.href = url;\n //window.open(url, '_blank') //直接打开新窗口,会被浏览器拦截\n }\n },\n\n changeLanguage(langName) {\n changeLocale(langName);\n },\n initLocale() {\n this.curLocale = localStorage.getItem('lowcode_local');\n if (!!this.vsCodeFlag) {\n this.curLocale = this.curLocale || 'en-US';\n } else {\n this.curLocale = this.curLocale || 'zh-CN';\n }\n this.curLangName = this.i18nt('application.' + this.curLocale);\n this.changeLanguage(this.curLocale);\n },\n\n async loadFieldListFromServer() {\n if (!this.fieldListApi) {\n return;\n }\n this.fieldList = await this.fieldListApi();\n console.log('this.fieldList: ', this.fieldList);\n },\n setFormJson(formJson) {\n console.log('formJson: ', formJson);\n let modifiedFlag = false;\n if (!!formJson) {\n if (typeof formJson === 'string') {\n //TODO\n modifiedFlag = this.designer.loadFormJson(JSON.parse(formJson));\n } else if (formJson.constructor === Object) {\n modifiedFlag = this.designer.loadFormJson(formJson);\n }\n\n if (modifiedFlag) {\n this.designer.emitHistoryChange();\n }\n }\n },\n\n getFormJson() {\n return {\n widgetList: deepClone(this.designer.widgetList),\n formConfig: deepClone(this.designer.formConfig)\n };\n },\n\n clearDesigner() {\n this.$refs.toolbarRef.clearFormWidget();\n },\n\n /**\n * 刷新表单设计器\n */\n refreshDesigner() {\n //this.designer.loadFormJson( this.getFormJson() ) //只有第一次调用生效??\n\n const fJson = this.getFormJson();\n this.designer.clearDesigner(true); //不触发历史记录变更\n this.designer.loadFormJson(fJson);\n },\n\n /**\n * 预览表单\n */\n previewForm() {\n this.$refs.toolbarRef.previewForm();\n },\n\n /**\n * 导入表单JSON\n */\n importJson() {\n this.$refs.toolbarRef.importJson();\n },\n\n /**\n * 导出表单JSON\n */\n exportJson() {\n this.$refs.toolbarRef.exportJson();\n },\n\n /**\n * 导出Vue/HTML代码\n */\n exportCode() {\n this.$refs.toolbarRef.exportCode();\n },\n\n /**\n * 生成SFC代码\n */\n generateSFC() {\n this.$refs.toolbarRef.generateSFC();\n },\n\n /**\n * 获取所有字段组件\n * @returns {*[]}\n */\n getFieldWidgets(widgetList = null) {\n return !!widgetList\n ? getAllFieldWidgets(widgetList)\n : getAllFieldWidgets(this.designer.widgetList);\n },\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n getContainerWidgets(widgetList = null) {\n return !!widgetList\n ? getAllContainerWidgets(widgetList)\n : getAllContainerWidgets(this.designer.widgetList);\n },\n\n /**\n * 升级表单json,以补充最新的组件属性\n * @param formJson\n */\n upgradeFormJson(formJson) {\n if (!formJson.widgetList || !formJson.formConfig) {\n this.$message.error('Invalid form json!');\n return;\n }\n\n traverseAllWidgets(formJson.widgetList, w => {\n this.designer.upgradeWidgetConfig(w);\n });\n this.designer.upgradeFormConfig(formJson.formConfig);\n\n return formJson;\n },\n\n getWidgetRef(widgetName, showError = false) {\n return this.$refs['formRef'].getWidgetRef(widgetName, showError);\n },\n\n getSelectedWidgetRef() {\n return this.$refs['formRef'].getSelectedWidgetRef();\n },\n\n /**\n * 添加数据源对象\n * @param dsObj\n */\n addDataSource(dsObj) {\n this.designer.formConfig.dataSources.push(dsObj);\n },\n\n /**\n * 增加外部组件引用,可通过getEC()方法获取外部组件,以便在VForm内部调用外部组件方法\n * @param componentName 外部组件名称\n * @param externalComponent 外部组件实例\n */\n addEC(componentName, externalComponent) {\n this.externalComponents[componentName] = externalComponent;\n },\n\n /**\n * 判断外部组件是否可获取\n * @param componentName 外部组件名称\n * @returns {boolean}\n */\n hasEC(componentName) {\n return this.externalComponents.hasOwnProperty(componentName);\n },\n\n /**\n * 获取外部组件实例\n * @param componentName\n * @returns {*}\n */\n getEC(componentName) {\n return this.externalComponents[componentName];\n }\n\n //TODO: 增加更多方法!!\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .ant-layout.main-container {\n background: #fff;\n\n .ant-layout-sider {\n background: #fff;\n }\n\n :deep(aside) {\n /* 防止aside样式被外部样式覆盖!! */\n margin: 0;\n padding: 0;\n background: inherit;\n }\n }\n\n .ant-layout.full-height {\n height: 100%;\n overflow-y: hidden;\n }\n\n .ant-layout-content.center-layout-container {\n min-width: 680px;\n border-left: 2px dotted #ebeef5;\n border-right: 2px dotted #ebeef5;\n display: flex;\n flex-direction: column;\n }\n\n .ant-layout-header.main-header {\n border-bottom: 2px dotted #ebeef5;\n background: #fff;\n padding: 0;\n\n height: 48px !important;\n line-height: 48px !important;\n min-width: 800px;\n }\n\n div.main-title {\n font-size: 18px;\n color: #242424;\n display: flex;\n align-items: center;\n justify-items: center;\n\n img {\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n span.bold {\n font-size: 20px;\n font-weight: bold;\n margin: 0 6px 0 6px;\n }\n\n span.version-span {\n font-size: 14px;\n color: #101f1c;\n margin-left: 6px;\n }\n }\n\n .float-left {\n float: left;\n }\n\n .float-right {\n float: right;\n }\n\n .el-dropdown-link {\n margin-right: 12px;\n cursor: pointer;\n }\n\n div.external-link {\n display: flex;\n align-items: center;\n\n a {\n font-size: 13px;\n text-decoration: none;\n margin-right: 10px;\n color: #606266;\n }\n }\n\n .ant-layout-header.toolbar-header {\n font-size: 14px;\n border-bottom: 1px dotted #cccccc;\n height: 42px !important;\n background: #fff;\n padding: 0;\n }\n\n .ant-layout-sider.side-panel {\n width: 260px !important;\n overflow-y: hidden;\n }\n // .left-aside-toggle-bar {\n // position: relative;\n // width: 0px;\n // .icons {\n // position: absolute;\n // right: 100%;\n // top: 50%;\n // transform: translate(100%, -50%);\n // z-index: 9999;\n // background: #fff;\n // width: 12px !important;\n // height: 36px !important;\n // }\n // }\n\n .ant-layout-content.form-widget-main {\n padding: 0;\n position: relative;\n overflow-x: hidden;\n flex: 1 0 0;\n }\n\n .container-scroll-bar {\n height: 100%;\n & > :deep(.form-widget-container) {\n height: 100%;\n }\n }\n</style>\n"],"names":["_sfc_main","i18n","TpfConfigProvider","WidgetPanel","ToolbarPanel","SettingPanel","VFormWidget","createDesigner","addWindowResizeHandler","flag","importObj","isEmpty","ex","eventName","eventParams","configName","event","url","msgObj","aDom","langName","changeLocale","formJson","modifiedFlag","deepClone","fJson","widgetList","getAllFieldWidgets","getAllContainerWidgets","traverseAllWidgets","w","widgetName","showError","dsObj","componentName","externalComponent","_hoisted_1","_createBlock","_component_TpfConfigProvider","_createVNode","_component_a_layout","_component_a_layout_sider","$data","_component_WidgetPanel","_component_a_layout_content","_component_a_layout_header","_component_toolbar_panel","$props","$options","_ctx","idx","slotName","_renderSlot","_createElementVNode","_component_VFormWidget","_component_setting_panel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refMixinDesign.js","sources":["../../../../src/components/form-designer/refMixinDesign.js"],"sourcesContent":["export default {\n methods: {\n initRefList() {\n if (this.refList !== null && !!this.widget.options.name) {\n this.refList[this.widget.options.name] = this;\n }\n },\n\n getWidgetRef(widgetName, showError) {\n const foundRef = this.refList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n /* 该方法用于组件重名检查!! */\n registerToRefList(oldRefName) {\n if (this.refList !== null && !!this.widget.options.name) {\n if (!!oldRefName) {\n delete this.refList[oldRefName];\n }\n this.refList[this.widget.options.name] = this;\n }\n }\n }\n};\n"],"names":["refMixinDesign","widgetName","showError","foundRef","oldRefName"],"mappings":"AAAA,MAAAA,IAAe;AAAA,EACb,SAAS;AAAA,IACP,cAAc;AACZ,MAAI,KAAK,YAAY,QAAU,KAAK,OAAO,QAAQ,SACjD,KAAK,QAAQ,KAAK,OAAO,QAAQ,IAAI,IAAI;AAAA,IAEjD;AAAA,IAEI,aAAaC,GAAYC,GAAW;AAClC,YAAMC,IAAW,KAAK,QAAQF,CAAU;AACxC,aAAI,CAACE,KAAcD,KACjB,KAAK,SAAS,MAAM,KAAK,MAAM,yBAAyB,IAAID,CAAU,GAEjEE;AAAA,IACb;AAAA;AAAA,IAGI,kBAAkBC,GAAY;AAC5B,MAAI,KAAK,YAAY,QAAU,KAAK,OAAO,QAAQ,SAC3CA,KACJ,OAAO,KAAK,QAAQA,CAAU,GAEhC,KAAK,QAAQ,KAAK,OAAO,QAAQ,IAAI,IAAI;AAAA,IAEjD;AAAA,EACA;AACA;"}
1
+ {"version":3,"file":"refMixinDesign.js","sources":["../../../../src/components/form-designer/refMixinDesign.js"],"sourcesContent":["export default {\n methods: {\n initRefList() {\n if (this.refList !== null && !!this.widget.options.name) {\n this.refList[this.widget.options.name] = this;\n }\n },\n\n getWidgetRef(widgetName, showError) {\n const foundRef = this.refList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n /* 该方法用于组件重名检查!! */\n registerToRefList(oldRefName) {\n if (this.refList !== null && !!this.widget.options.name) {\n if (!!oldRefName) {\n delete this.refList[oldRefName];\n }\n this.refList[this.widget.options.name] = this;\n }\n }\n }\n};\n"],"names":["refMixinDesign","widgetName","showError","foundRef","oldRefName"],"mappings":"AAAA,MAAAA,IAAe;AAAA,EACb,SAAS;AAAA,IACP,cAAc;AACZ,MAAI,KAAK,YAAY,QAAU,KAAK,OAAO,QAAQ,SACjD,KAAK,QAAQ,KAAK,OAAO,QAAQ,IAAI,IAAI;AAAA,IAE7C;AAAA,IAEA,aAAaC,GAAYC,GAAW;AAClC,YAAMC,IAAW,KAAK,QAAQF,CAAU;AACxC,aAAI,CAACE,KAAcD,KACjB,KAAK,SAAS,MAAM,KAAK,MAAM,yBAAyB,IAAID,CAAU,GAEjEE;AAAA,IACT;AAAA;AAAA,IAGA,kBAAkBC,GAAY;AAC5B,MAAI,KAAK,YAAY,QAAU,KAAK,OAAO,QAAQ,SAC3CA,KACJ,OAAO,KAAK,QAAQA,CAAU,GAEhC,KAAK,QAAQ,KAAK,OAAO,QAAQ,IAAI,IAAI;AAAA,IAE7C;AAAA,EACJ;AACA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/form-setting.vue"],"sourcesContent":["<template>\n <div>\n <a-form\n :model=\"formConfig\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form\"\n @submit.prevent\n >\n <a-collapse v-model:activeKey=\"formActiveCollapseNames\" class=\"setting-collapse\">\n <a-collapse-panel key=\"1\" :header=\"i18nt('designer.setting.基本属性')\">\n <a-form-item :label=\"i18nt('designer.setting.formSize')\">\n <a-select\n v-model:value=\"formConfig.size\"\n :options=\"formSizes\"\n allowClear\n style=\"width: 120px\"\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelPosition')\">\n <a-radio-group\n v-model:value=\"formConfig.labelPosition\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"horizontal\">水平</a-radio-button>\n <a-radio-button value=\"vertical\">垂直</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelAlign')\">\n <a-radio-group\n v-model:value=\"formConfig.labelAlign\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"left\">\n {{ i18nt('designer.setting.leftAlign') }}\n </a-radio-button>\n <a-radio-button value=\"right\">\n {{ i18nt('designer.setting.rightAlign') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelWidth')\">\n <a-input-number\n v-model:value=\"formConfig.labelWidth\"\n :min=\"0\"\n style=\"width: 100%\"\n allowClear\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.formCss')\">\n <a-button\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'formCss',\n isShowEventHeader: false,\n mode: 'css',\n title: i18nt('designer.setting.formCss')\n })\n \"\n :class=\"[{ 'button-text-highlight': !!formConfig.cssCode }]\"\n >\n {{ i18nt('designer.setting.addCss') }}\n </a-button>\n </a-form-item>\n <!-- -->\n <a-form-item :label=\"i18nt('designer.setting.customClass')\">\n <a-select\n v-model:value=\"formConfig.customClass\"\n allowClear\n mode=\"tags\"\n @change=\"extractCssClass\"\n :options=\"cssClassList\"\n />\n </a-form-item>\n <!-- 表单全局函数 -->\n <a-form-item :label=\"i18nt('designer.setting.globalFunctions')\">\n <a-button\n :class=\"[{ 'button-text-highlight': !!formConfig.functions }]\"\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'functions',\n isShowEventHeader: false,\n mode: 'javascript',\n title: i18nt('designer.setting.globalFunctions')\n })\n \"\n >\n {{ i18nt('designer.setting.addEventHandler') }}\n </a-button>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.cancelButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.cancelButtonLabel\" />\n </a-form-item>\n <!-- 隐藏取消按钮 -->\n <CancelButtonHidden :optionModel=\"formConfig\" />\n <a-form-item :label=\"i18nt('designer.setting.okButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.okButtonLabel\" />\n </a-form-item>\n <OkButtonHiddenEditor :optionModel=\"formConfig\" />\n\n <!-- 回车提交 -->\n <a-form-item :label=\"i18nt('designer.setting.isEnterSubmit')\">\n <Switch\n v-model:checked=\"formConfig.isEnterSubmit\"\n :checked-value=\"1\"\n :un-checked-value=\"0\"\n />\n </a-form-item>\n </a-collapse-panel>\n\n <a-collapse-panel\n v-if=\"showEventCollapse()\"\n key=\"2\"\n class=\"eventPanel\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <MethodItem\n @click-item=\"handleEditEvent\"\n v-for=\"(value, key) in eventParamsMap\"\n :key=\"key\"\n :event-name=\"key\"\n v-model:value=\"formConfig[key]\"\n :get-form-event-handled=\"getFormEventHandled\"\n :event-params-map=\"eventParamsMap\"\n :form-config=\"formConfig\"\n />\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n\n <TpfCodeEditor\n :isShowEventHeader=\"isShowEventHeader\"\n ref=\"codeEditorRef\"\n :event-header=\"eventHeader\"\n v-model=\"formEventHandlerCode\"\n :mode=\"mode\"\n :readonly=\"false\"\n :title=\"title\"\n @set-code=\"saveFormEventHandler\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, reactive, onMounted, inject } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import { deepClone, insertCustomCssToHead } from '@/utils/util';\n import MethodItem from '@/components/public/methoad-item.vue';\n import OkButtonHiddenEditor from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonHidden-editor.vue';\n import CancelButtonHidden from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonHidden-editor.vue';\n import { ILanguageMode, TpfCodeEditor } from 'tmgc2-share';\n import { Switch } from 'ant-design-vue';\n\n // 定义类型\n interface FormSize {\n label: string;\n value: string;\n }\n\n interface EventParams {\n [key: string]: string;\n }\n\n interface EditEventParams {\n eventName: string;\n mode: ILanguageMode;\n isShowEventHeader: boolean;\n title: string;\n eventHeader?: string;\n }\n\n interface Designer {\n handleEvent: (eventName: string, callback: () => void) => void;\n emitEvent: (eventName: string, data: any) => void;\n formConfig: any;\n }\n\n interface FormConfig {\n [key: string]: any;\n }\n\n // Props 定义\n const props = defineProps<{\n designer: Designer;\n formConfig: FormConfig;\n }>();\n\n // 使用i18n\n const { i18nt } = useI18n();\n\n // 注入依赖\n const getDesignerConfig = inject<() => any>('getDesignerConfig');\n const designerConfig = getDesignerConfig ? getDesignerConfig() : {};\n\n // 响应式状态\n const mode = ref<ILanguageMode>('javascript');\n const eventName = ref('');\n const title = ref('');\n const isShowEventHeader = ref(false);\n const eventHeader = ref('');\n const formActiveCollapseNames = ref(['1', '2']);\n const formCssCode = ref('');\n const cssClassList = ref<string[]>([]);\n const formEventHandlerCode = ref('');\n\n // 引用\n const codeEditorRef = ref<any>(null);\n\n // 常量数据\n const formSizes: FormSize[] = [\n { label: 'default', value: 'middle' },\n { label: 'large', value: 'large' },\n { label: 'small', value: 'small' }\n ];\n\n const eventParamsMap: EventParams = {\n onFormCreated: 'onFormCreated() {',\n onFormMounted: 'onFormMounted() {',\n onOkButtonClick: 'onOkButtonClick() {',\n onCancelButtonClick: 'onCancelButtonClick() {',\n onFormDataChange:\n 'onFormDataChange(fieldName, newValue, oldValue, formModel, subFormName, subFormRowIndex) {'\n //'onFormValidate': 'onFormValidate() {',\n };\n\n // 方法\n const saveFormEventHandler = (value: string) => {\n props.formConfig[eventName.value] = value;\n };\n\n const handleEditEvent = (params: EditEventParams) => {\n eventName.value = params.eventName;\n mode.value = params.mode;\n isShowEventHeader.value = params.isShowEventHeader;\n formEventHandlerCode.value = props.formConfig[params.eventName];\n title.value = params.title;\n eventHeader.value = params.eventHeader || '';\n codeEditorRef.value.open();\n };\n\n const getFormEventHandled = (eventName: string) => {\n return !!props.formConfig[eventName] && props.formConfig[eventName].length > 0;\n };\n\n const showEventCollapse = () => {\n if (designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n return !!designerConfig['eventCollapse'];\n };\n\n const extractCssClass = () => {\n const regExp = /\\..*{/g;\n const result = formCssCode.value.match(regExp);\n const cssNameArray: string[] = [];\n\n if (!!result && result.length > 0) {\n result.forEach(rItem => {\n const classArray = rItem.split(','); // 切分逗号分割的多个class\n if (classArray.length > 0) {\n classArray.forEach(cItem => {\n const caItem = cItem.trim();\n if (caItem.indexOf('.', 1) !== -1) {\n // 查找第二个.位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('.', 1)\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else if (caItem.indexOf(' ') !== -1) {\n // 查找第一个空格位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf(' ')\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else {\n if (caItem.indexOf('{') !== -1) {\n // 查找第一个{位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('{')\n );\n cssNameArray.push(newClass.trim());\n } else {\n const newClass = caItem.substring(caItem.indexOf('.') + 1);\n cssNameArray.push(newClass.trim());\n }\n }\n });\n }\n });\n }\n\n // cssClassList.value = Array.from(new Set(cssNameArray)); // 数组去重\n };\n\n // 生命周期钩子\n onMounted(() => {\n // 导入表单JSON后需要重新加载自定义CSS样式\n props.designer.handleEvent('form-json-imported', () => {\n formCssCode.value = props.formConfig.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n props.designer.emitEvent('form-css-updated', deepClone(cssClassList.value));\n });\n\n /* SettingPanel和FormWidget为兄弟组件, 在FormWidget加载formConfig时,\n 此处SettingPanel可能无法获取到formConfig.cssCode, 故加个延时函数! */\n setTimeout(() => {\n formCssCode.value = props.formConfig.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n props.designer.emitEvent('form-css-updated', deepClone(cssClassList.value));\n }, 1200);\n });\n\n // 组件名称定义\n defineOptions({\n name: 'form-setting'\n });\n</script>\n\n<style lang=\"less\" scoped>\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n .ant-form-item-label {\n flex: 1;\n }\n }\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n</style>\n"],"names":["props","__props","i18nt","useI18n","getDesignerConfig","inject","designerConfig","mode","ref","eventName","title","isShowEventHeader","eventHeader","formActiveCollapseNames","formCssCode","cssClassList","formEventHandlerCode","codeEditorRef","formSizes","eventParamsMap","saveFormEventHandler","value","handleEditEvent","params","getFormEventHandled","showEventCollapse","extractCssClass","regExp","result","cssNameArray","rItem","classArray","cItem","caItem","newClass","onMounted","insertCustomCssToHead","deepClone","_createElementBlock","_createVNode","_component_a_form","formConfig","_component_a_collapse","$event","_component_a_collapse_panel","_unref","_component_a_form_item","_component_a_select","_component_a_radio_group","_component_a_radio_button","_cache","_component_a_input_number","_component_a_button","_normalizeClass","_component_a_input","CancelButtonHidden","OkButtonHiddenEditor","Switch","_createBlock","_openBlock","_Fragment","_renderList","key","MethodItem","TpfCodeEditor"],"mappings":"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"}
1
+ {"version":3,"file":"form-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/form-setting.vue"],"sourcesContent":["<template>\n <div>\n <a-form\n :model=\"formConfig\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form\"\n @submit.prevent\n >\n <a-collapse v-model:activeKey=\"formActiveCollapseNames\" class=\"setting-collapse\">\n <a-collapse-panel key=\"1\" :header=\"i18nt('designer.setting.基本属性')\">\n <a-form-item :label=\"i18nt('designer.setting.formSize')\">\n <a-select\n v-model:value=\"formConfig.size\"\n :options=\"formSizes\"\n allowClear\n style=\"width: 120px\"\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelPosition')\">\n <a-radio-group\n v-model:value=\"formConfig.labelPosition\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"horizontal\">水平</a-radio-button>\n <a-radio-button value=\"vertical\">垂直</a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelAlign')\">\n <a-radio-group\n v-model:value=\"formConfig.labelAlign\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"left\">\n {{ i18nt('designer.setting.leftAlign') }}\n </a-radio-button>\n <a-radio-button value=\"right\">\n {{ i18nt('designer.setting.rightAlign') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelWidth')\">\n <a-input-number\n v-model:value=\"formConfig.labelWidth\"\n :min=\"0\"\n style=\"width: 100%\"\n allowClear\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.formCss')\">\n <a-button\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'formCss',\n isShowEventHeader: false,\n mode: 'css',\n title: i18nt('designer.setting.formCss')\n })\n \"\n :class=\"[{ 'button-text-highlight': !!formConfig.cssCode }]\"\n >\n {{ i18nt('designer.setting.addCss') }}\n </a-button>\n </a-form-item>\n <!-- -->\n <a-form-item :label=\"i18nt('designer.setting.customClass')\">\n <a-select\n v-model:value=\"formConfig.customClass\"\n allowClear\n mode=\"tags\"\n @change=\"extractCssClass\"\n :options=\"cssClassList\"\n />\n </a-form-item>\n <!-- 表单全局函数 -->\n <a-form-item :label=\"i18nt('designer.setting.globalFunctions')\">\n <a-button\n :class=\"[{ 'button-text-highlight': !!formConfig.functions }]\"\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'functions',\n isShowEventHeader: false,\n mode: 'javascript',\n title: i18nt('designer.setting.globalFunctions')\n })\n \"\n >\n {{ i18nt('designer.setting.addEventHandler') }}\n </a-button>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.cancelButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.cancelButtonLabel\" />\n </a-form-item>\n <!-- 隐藏取消按钮 -->\n <CancelButtonHidden :optionModel=\"formConfig\" />\n <a-form-item :label=\"i18nt('designer.setting.okButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.okButtonLabel\" />\n </a-form-item>\n <OkButtonHiddenEditor :optionModel=\"formConfig\" />\n\n <!-- 回车提交 -->\n <a-form-item :label=\"i18nt('designer.setting.isEnterSubmit')\">\n <Switch\n v-model:checked=\"formConfig.isEnterSubmit\"\n :checked-value=\"1\"\n :un-checked-value=\"0\"\n />\n </a-form-item>\n </a-collapse-panel>\n\n <a-collapse-panel\n v-if=\"showEventCollapse()\"\n key=\"2\"\n class=\"eventPanel\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <MethodItem\n @click-item=\"handleEditEvent\"\n v-for=\"(value, key) in eventParamsMap\"\n :key=\"key\"\n :event-name=\"key\"\n v-model:value=\"formConfig[key]\"\n :get-form-event-handled=\"getFormEventHandled\"\n :event-params-map=\"eventParamsMap\"\n :form-config=\"formConfig\"\n />\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n\n <TpfCodeEditor\n :isShowEventHeader=\"isShowEventHeader\"\n ref=\"codeEditorRef\"\n :event-header=\"eventHeader\"\n v-model=\"formEventHandlerCode\"\n :mode=\"mode\"\n :readonly=\"false\"\n :title=\"title\"\n @set-code=\"saveFormEventHandler\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, reactive, onMounted, inject } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import { deepClone, insertCustomCssToHead } from '@/utils/util';\n import MethodItem from '@/components/public/methoad-item.vue';\n import OkButtonHiddenEditor from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonHidden-editor.vue';\n import CancelButtonHidden from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonHidden-editor.vue';\n import { ILanguageMode, TpfCodeEditor } from 'tmgc2-share';\n import { Switch } from 'ant-design-vue';\n\n // 定义类型\n interface FormSize {\n label: string;\n value: string;\n }\n\n interface EventParams {\n [key: string]: string;\n }\n\n interface EditEventParams {\n eventName: string;\n mode: ILanguageMode;\n isShowEventHeader: boolean;\n title: string;\n eventHeader?: string;\n }\n\n interface Designer {\n handleEvent: (eventName: string, callback: () => void) => void;\n emitEvent: (eventName: string, data: any) => void;\n formConfig: any;\n }\n\n interface FormConfig {\n [key: string]: any;\n }\n\n // Props 定义\n const props = defineProps<{\n designer: Designer;\n formConfig: FormConfig;\n }>();\n\n // 使用i18n\n const { i18nt } = useI18n();\n\n // 注入依赖\n const getDesignerConfig = inject<() => any>('getDesignerConfig');\n const designerConfig = getDesignerConfig ? getDesignerConfig() : {};\n\n // 响应式状态\n const mode = ref<ILanguageMode>('javascript');\n const eventName = ref('');\n const title = ref('');\n const isShowEventHeader = ref(false);\n const eventHeader = ref('');\n const formActiveCollapseNames = ref(['1', '2']);\n const formCssCode = ref('');\n const cssClassList = ref<string[]>([]);\n const formEventHandlerCode = ref('');\n\n // 引用\n const codeEditorRef = ref<any>(null);\n\n // 常量数据\n const formSizes: FormSize[] = [\n { label: 'default', value: 'middle' },\n { label: 'large', value: 'large' },\n { label: 'small', value: 'small' }\n ];\n\n const eventParamsMap: EventParams = {\n onFormCreated: 'onFormCreated() {',\n onFormMounted: 'onFormMounted() {',\n onOkButtonClick: 'onOkButtonClick() {',\n onCancelButtonClick: 'onCancelButtonClick() {',\n onFormDataChange:\n 'onFormDataChange(fieldName, newValue, oldValue, formModel, subFormName, subFormRowIndex) {'\n //'onFormValidate': 'onFormValidate() {',\n };\n\n // 方法\n const saveFormEventHandler = (value: string) => {\n props.formConfig[eventName.value] = value;\n };\n\n const handleEditEvent = (params: EditEventParams) => {\n eventName.value = params.eventName;\n mode.value = params.mode;\n isShowEventHeader.value = params.isShowEventHeader;\n formEventHandlerCode.value = props.formConfig[params.eventName];\n title.value = params.title;\n eventHeader.value = params.eventHeader || '';\n codeEditorRef.value.open();\n };\n\n const getFormEventHandled = (eventName: string) => {\n return !!props.formConfig[eventName] && props.formConfig[eventName].length > 0;\n };\n\n const showEventCollapse = () => {\n if (designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n return !!designerConfig['eventCollapse'];\n };\n\n const extractCssClass = () => {\n const regExp = /\\..*{/g;\n const result = formCssCode.value.match(regExp);\n const cssNameArray: string[] = [];\n\n if (!!result && result.length > 0) {\n result.forEach(rItem => {\n const classArray = rItem.split(','); // 切分逗号分割的多个class\n if (classArray.length > 0) {\n classArray.forEach(cItem => {\n const caItem = cItem.trim();\n if (caItem.indexOf('.', 1) !== -1) {\n // 查找第二个.位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('.', 1)\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else if (caItem.indexOf(' ') !== -1) {\n // 查找第一个空格位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf(' ')\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else {\n if (caItem.indexOf('{') !== -1) {\n // 查找第一个{位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('{')\n );\n cssNameArray.push(newClass.trim());\n } else {\n const newClass = caItem.substring(caItem.indexOf('.') + 1);\n cssNameArray.push(newClass.trim());\n }\n }\n });\n }\n });\n }\n\n // cssClassList.value = Array.from(new Set(cssNameArray)); // 数组去重\n };\n\n // 生命周期钩子\n onMounted(() => {\n // 导入表单JSON后需要重新加载自定义CSS样式\n props.designer.handleEvent('form-json-imported', () => {\n formCssCode.value = props.formConfig.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n props.designer.emitEvent('form-css-updated', deepClone(cssClassList.value));\n });\n\n /* SettingPanel和FormWidget为兄弟组件, 在FormWidget加载formConfig时,\n 此处SettingPanel可能无法获取到formConfig.cssCode, 故加个延时函数! */\n setTimeout(() => {\n formCssCode.value = props.formConfig.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n props.designer.emitEvent('form-css-updated', deepClone(cssClassList.value));\n }, 1200);\n });\n\n // 组件名称定义\n defineOptions({\n name: 'form-setting'\n });\n</script>\n\n<style lang=\"less\" scoped>\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n .ant-form-item-label {\n flex: 1;\n }\n }\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n</style>\n"],"names":["props","__props","i18nt","useI18n","getDesignerConfig","inject","designerConfig","mode","ref","eventName","title","isShowEventHeader","eventHeader","formActiveCollapseNames","formCssCode","cssClassList","formEventHandlerCode","codeEditorRef","formSizes","eventParamsMap","saveFormEventHandler","value","handleEditEvent","params","getFormEventHandled","showEventCollapse","extractCssClass","regExp","result","cssNameArray","rItem","classArray","cItem","caItem","newClass","onMounted","insertCustomCssToHead","deepClone","_createElementBlock","_createVNode","_component_a_form","formConfig","_component_a_collapse","$event","_component_a_collapse_panel","_unref","_component_a_form_item","_component_a_select","_component_a_radio_group","_component_a_radio_button","_cache","_component_a_input_number","_component_a_button","_normalizeClass","_component_a_input","CancelButtonHidden","OkButtonHiddenEditor","Switch","_createBlock","_openBlock","_Fragment","_renderList","key","MethodItem","TpfCodeEditor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../../../../../src/components/form-designer/setting-panel/index.vue"],"sourcesContent":["<template>\n <a-config-provider componentSize=\"small\">\n <a-layout class=\"panel-container\">\n <a-tabs\n v-model:activeKey=\"activeTab\"\n style=\"height: 100%; width: 100%; overflow: hidden\"\n >\n <a-tab-pane :tab=\"i18nt('designer.hint.widgetSetting')\" key=\"1\">\n <div class=\"setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <template\n v-if=\"!!designer.selectedWidget && !designer.selectedWidget.category\"\n >\n <a-form\n :model=\"optionModel\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form tpf-form\"\n @submit.prevent\n >\n <a-collapse\n v-model:activeKey=\"widgetActiveCollapseNames\"\n class=\"setting-collapse\"\n >\n <a-collapse-panel\n key=\"1\"\n v-if=\"showCollapse(commonProps)\"\n :header=\"i18nt('designer.setting.常见属性')\"\n >\n <template v-for=\"(editorName, propName) in commonProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n v-model:option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"2\"\n v-if=\"showCollapse(advProps)\"\n :header=\"i18nt('designer.setting.高级属性')\"\n >\n <template v-for=\"(editorName, propName) in advProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"3\"\n class=\"eventPanel\"\n v-if=\"showEventCollapse() && showCollapse(eventProps)\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <template v-for=\"(editorName, propName) in eventProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n :event-handled=\"getEventHandled(propName)\"\n />\n </template>\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n </template>\n\n <template\n v-if=\"!!designer.selectedWidget && !!designer.selectedWidget.category\"\n >\n <a-form\n :model=\"optionModel\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form tpf-form\"\n @submit.prevent\n >\n <a-collapse\n v-model:activeKey=\"widgetActiveCollapseNames\"\n class=\"setting-collapse\"\n >\n <a-collapse-panel\n key=\"1\"\n v-if=\"showCollapse(commonProps)\"\n :header=\"i18nt('designer.setting.常见属性')\"\n >\n <template v-for=\"(editorName, propName) in commonProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n v-model:option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"2\"\n v-if=\"showCollapse(advProps)\"\n :header=\"i18nt('designer.setting.高级属性')\"\n >\n <template v-for=\"(editorName, propName) in advProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"3\"\n class=\"eventPanel\"\n v-if=\"showEventCollapse() && showCollapse(eventProps)\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <template v-for=\"(editorName, propName) in eventProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n :event-handled=\"getEventHandled(propName)\"\n />\n </template>\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n </template>\n\n <template v-if=\"!designer.selectedWidget\">\n <a-empty :description=\"i18nt('designer.hint.noSelectedWidgetHint')\" />\n </template>\n </div>\n </a-tab-pane>\n\n <a-tab-pane v-if=\"!!designer\" :tab=\"i18nt('designer.hint.表单设置')\" key=\"2\">\n <div class=\"setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <form-setting :designer=\"designer\" :form-config=\"formConfig\" />\n </div>\n </a-tab-pane>\n\n <a-tab-pane :tab=\"'表单api配置'\" key=\"3\">\n <div class=\"ds-setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <FormCrudSetting :designer=\"designer\" :form-config=\"formConfig\" />\n </div>\n </a-tab-pane>\n </a-tabs>\n\n <CodeModalEditor\n :eventHeader=\"eventHeader\"\n ref=\"CodeModalEditorRef\"\n :title=\"i18nt('designer.setting.editWidgetEventHandler')\"\n mode=\"javascript\"\n :readonly=\"false\"\n @save=\"saveEventHandler\"\n />\n </a-layout>\n </a-config-provider>\n</template>\n\n<script>\n import CodeEditor from '@/components/code-editor/index.vue';\n import PropertyEditors from './property-editor/index';\n import FormSetting from './form-setting';\n import FormCrudSetting from './form-crud-setting.vue';\n import WidgetProperties from './propertyRegister';\n import { addWindowResizeHandler } from '@/utils/util';\n import i18n from '@/utils/i18n';\n import emitter from '@/utils/emitter';\n import { propertyRegistered } from '@/components/form-designer/setting-panel/propertyRegister';\n import CodeModalEditor from '@/components/code-editor/code-modal-editor.vue';\n\n const { COMMON_PROPERTIES, ADVANCED_PROPERTIES, EVENT_PROPERTIES } = WidgetProperties;\n\n export default {\n name: 'SettingPanel',\n componentName: 'SettingPanel',\n mixins: [i18n, emitter],\n components: {\n CodeEditor,\n FormSetting,\n CodeModalEditor,\n FormCrudSetting,\n ...PropertyEditors\n },\n props: {\n designer: Object,\n selectedWidget: Object,\n formConfig: Object,\n globalDsv: {\n type: Object,\n default: () => ({})\n }\n },\n provide() {\n return {\n isSubFormChildWidget: () => this.subFormChildWidgetFlag,\n getGlobalDsv: () => this.globalDsv // 全局数据源变量\n };\n },\n inject: ['getDesignerConfig'],\n data() {\n return {\n designerConfig: this.getDesignerConfig(),\n\n scrollerHeight: 0,\n\n activeTab: '2',\n widgetActiveCollapseNames: ['1', '2', '3'],\n formActiveCollapseNames: ['1', '2'],\n\n commonProps: COMMON_PROPERTIES,\n advProps: ADVANCED_PROPERTIES,\n eventProps: EVENT_PROPERTIES,\n\n showWidgetEventDialogFlag: false,\n eventHandlerCode: '',\n curEventName: '',\n eventHeader: '',\n\n subFormChildWidgetFlag: false\n };\n },\n computed: {\n optionModel: {\n get() {\n return this.selectedWidget.options;\n },\n\n set(newValue) {\n this.selectedWidget.options = newValue;\n }\n }\n },\n watch: {\n 'designer.selectedWidget': {\n handler(val) {\n if (!!val) {\n this.activeTab = '1';\n }\n }\n },\n\n 'selectedWidget.options': {\n //组件属性变动后,立即保存表单JSON!!\n deep: true,\n handler() {\n this.designer.saveCurrentHistoryStep();\n }\n },\n\n formConfig: {\n deep: true,\n handler() {\n this.designer.saveCurrentHistoryStep();\n }\n }\n },\n created() {\n this.on$('editEventHandler', eventParams => {\n //debugger\n this.editEventHandler(eventParams[0], eventParams[1]);\n });\n\n this.designer.handleEvent('form-css-updated', cssClassList => {\n this.designer.setCssClassList(cssClassList);\n });\n\n //监听字段组件选中事件\n this.designer.handleEvent('field-selected', parentWidget => {\n this.subFormChildWidgetFlag = !!parentWidget && parentWidget.type === 'sub-form';\n });\n },\n mounted() {\n if (!this.designer.selectedWidget) {\n this.activeTab = '2';\n } else {\n this.activeTab = '1';\n }\n\n this.scrollerHeight = window.innerHeight - 56 - 48 + 'px';\n addWindowResizeHandler(() => {\n this.$nextTick(() => {\n this.scrollerHeight = window.innerHeight - 56 - 48 + 'px';\n //console.log(this.scrollerHeight)\n });\n });\n },\n methods: {\n getEventHandled(eventName) {\n return !!this.optionModel[eventName] && this.optionModel[eventName].length > 0;\n },\n\n showEventCollapse() {\n if (this.designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n\n return !!this.designerConfig['eventCollapse'];\n },\n\n hasPropEditor(propName, editorName) {\n if (!editorName) {\n return false;\n }\n\n /* alert组件注册了两个type属性编辑器,跳过第一个type属性编辑器,只显示第二个alert-type属性编辑器!! */\n if (propName.indexOf('-') <= -1) {\n const uniquePropName = this.selectedWidget.type + '-' + propName;\n if (propertyRegistered(uniquePropName)) {\n return false;\n }\n }\n\n const originalPropName = propName.replace(this.selectedWidget.type + '-', ''); //去掉组件名称前缀-,如果有的话!!\n const res = this.designer.hasConfig(this.selectedWidget, originalPropName);\n\n return res;\n },\n\n getPropEditor(propName, editorName) {\n const originalPropName = propName.replace(this.selectedWidget.type + '-', ''); //去掉组件名称前缀-,如果有的话!!\n const ownPropEditorName = `${this.selectedWidget.type}-${originalPropName}-editor`;\n\n if (this.$options.components[ownPropEditorName]) {\n //局部注册的属性编辑器组件\n return ownPropEditorName;\n }\n\n // 如果全局有就调用全局的 否则动态加载\n const editName = this.$root.$.appContext.components[ownPropEditorName]\n ? ownPropEditorName\n : editorName;\n\n return editName;\n // return defineAsyncComponent(() => PropertyEditors[editName]?.()); //Vue3全局注册的属性编辑器组件\n },\n\n showCollapse(propsObj) {\n let result = false;\n\n for (const propName in propsObj) {\n if (!propsObj.hasOwnProperty(propName)) {\n continue;\n }\n\n if (this.hasPropEditor(propName, propsObj[propName])) {\n result = true;\n break;\n }\n }\n\n return result;\n },\n\n editEventHandler(eventName, eventParams) {\n //debugger\n\n this.curEventName = eventName;\n this.eventHeader = `${this.optionModel.name}.${eventName}(${eventParams.join(\n ', '\n )}) {`;\n this.eventHandlerCode = this.selectedWidget.options[eventName] || '';\n\n // 设置字段校验函数示例代码\n if (eventName === 'onValidate' && !this.optionModel['onValidate']) {\n this.eventHandlerCode =\n \" /* sample code */\\n /*\\n if ((value > 100) || (value < 0)) {\\n return Promise.reject('error message') //fail\\n } else {\\n return Promise.resolve(); //pass\\n }\\n */\";\n }\n console.log(this.eventHandlerCode);\n this.$refs.CodeModalEditorRef.open(this.eventHandlerCode);\n },\n\n saveEventHandler(value) {\n const codeHints =\n this.$refs.CodeModalEditorRef.codeEditorRef.ecEditor.getEditorAnnotations();\n let syntaxErrorFlag = false;\n if (!!codeHints && codeHints.length > 0) {\n codeHints.forEach(chItem => {\n if (chItem.type === 'error') {\n syntaxErrorFlag = true;\n }\n });\n\n if (syntaxErrorFlag) {\n this.$message.error(this.i18nt('designer.setting.syntaxCheckWarning'));\n return;\n }\n }\n\n if (this.curEventName.includes('.')) {\n const [a, b] = this.curEventName.split('.');\n this.selectedWidget.options[a][b] = value;\n } else {\n this.selectedWidget.options[this.curEventName] = value;\n }\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .panel-container {\n background-color: #fff;\n border-radius: 4px;\n height: 100%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n :deep(.ant-tabs-content-holder) {\n flex: 1;\n display: flex;\n }\n .tpf-form.ant-form {\n padding: 0;\n }\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-label {\n flex: 1;\n }\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n }\n\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n :deep(.ant-tabs-nav) {\n padding: 0 16px;\n margin: 0;\n margin-bottom: 0;\n height: 42px;\n border-bottom: 1px solid #f0f0f0;\n }\n :deep(.ant-tabs-tab) {\n padding: 12px 0;\n margin: 0 16px 0 0;\n transition: all 0.3s;\n }\n :deep(.ant-tabs-content) {\n overflow: auto;\n padding: 0;\n }\n :deep(.ant-form-item) {\n .ant-form-item-row {\n flex: 1;\n }\n .ant-select {\n width: 100%;\n }\n margin-bottom: 3px;\n &:last-child {\n margin-bottom: 0;\n }\n .ant-form-item-label > label {\n color: var();\n }\n }\n :deep(.ant-collapse) {\n border: none;\n background: transparent;\n }\n :deep(.ant-collapse-item) {\n border: none;\n overflow: hidden;\n &:last-child {\n margin-bottom: 0;\n }\n }\n :deep(.ant-collapse-header) {\n padding: 8px !important;\n background: #fafafa;\n &:hover {\n background: #f5f5f5;\n }\n }\n :deep(.ant-collapse-content-box) {\n padding: 8px;\n background: #fff;\n .ant-form-item {\n display: flex;\n }\n .ant-form-item-label {\n width: 130px;\n }\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 /* 隐藏Firefox浏览器中el-input数字输入框右侧的上下调整小箭头 */\n // :deep(.hide-spin-button) input[type='number'] {\n // -moz-appearance: textfield;\n // }\n</style>\n\n<style lang=\"scss\">\n .ds-setting-drawer {\n right: 320px !important;\n }\n</style>\n"],"names":["COMMON_PROPERTIES","ADVANCED_PROPERTIES","EVENT_PROPERTIES","WidgetProperties","_sfc_main","i18n","emitter","CodeEditor","FormSetting","CodeModalEditor","FormCrudSetting","PropertyEditors","newValue","val","eventParams","cssClassList","parentWidget","addWindowResizeHandler","eventName","propName","editorName","uniquePropName","propertyRegistered","originalPropName","ownPropEditorName","propsObj","result","value","codeHints","syntaxErrorFlag","chItem","a","b","_createBlock","_component_a_config_provider","_createVNode","_component_a_layout","_component_a_tabs","$data","$event","_component_a_tab_pane","_ctx","_createElementVNode","$props","_component_a_form","$options","_component_a_collapse","_component_a_collapse_panel","_openBlock","_createElementBlock","_Fragment","_renderList","_resolveDynamicComponent","_component_a_empty","_component_form_setting","_component_FormCrudSetting","_component_CodeModalEditor"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../../src/components/form-designer/setting-panel/index.vue"],"sourcesContent":["<template>\n <a-config-provider componentSize=\"small\">\n <a-layout class=\"panel-container\">\n <a-tabs\n v-model:activeKey=\"activeTab\"\n style=\"height: 100%; width: 100%; overflow: hidden\"\n >\n <a-tab-pane :tab=\"i18nt('designer.hint.widgetSetting')\" key=\"1\">\n <div class=\"setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <template\n v-if=\"!!designer.selectedWidget && !designer.selectedWidget.category\"\n >\n <a-form\n :model=\"optionModel\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form tpf-form\"\n @submit.prevent\n >\n <a-collapse\n v-model:activeKey=\"widgetActiveCollapseNames\"\n class=\"setting-collapse\"\n >\n <a-collapse-panel\n key=\"1\"\n v-if=\"showCollapse(commonProps)\"\n :header=\"i18nt('designer.setting.常见属性')\"\n >\n <template v-for=\"(editorName, propName) in commonProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n v-model:option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"2\"\n v-if=\"showCollapse(advProps)\"\n :header=\"i18nt('designer.setting.高级属性')\"\n >\n <template v-for=\"(editorName, propName) in advProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"3\"\n class=\"eventPanel\"\n v-if=\"showEventCollapse() && showCollapse(eventProps)\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <template v-for=\"(editorName, propName) in eventProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n :event-handled=\"getEventHandled(propName)\"\n />\n </template>\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n </template>\n\n <template\n v-if=\"!!designer.selectedWidget && !!designer.selectedWidget.category\"\n >\n <a-form\n :model=\"optionModel\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form tpf-form\"\n @submit.prevent\n >\n <a-collapse\n v-model:activeKey=\"widgetActiveCollapseNames\"\n class=\"setting-collapse\"\n >\n <a-collapse-panel\n key=\"1\"\n v-if=\"showCollapse(commonProps)\"\n :header=\"i18nt('designer.setting.常见属性')\"\n >\n <template v-for=\"(editorName, propName) in commonProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n v-model:option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"2\"\n v-if=\"showCollapse(advProps)\"\n :header=\"i18nt('designer.setting.高级属性')\"\n >\n <template v-for=\"(editorName, propName) in advProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n />\n </template>\n </a-collapse-panel>\n\n <a-collapse-panel\n key=\"3\"\n class=\"eventPanel\"\n v-if=\"showEventCollapse() && showCollapse(eventProps)\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <template v-for=\"(editorName, propName) in eventProps\">\n <component\n v-if=\"hasPropEditor(propName, editorName)\"\n :key=\"propName\"\n :is=\"getPropEditor(propName, editorName)\"\n :designer=\"designer\"\n :selected-widget=\"selectedWidget\"\n :option-model=\"optionModel\"\n :event-handled=\"getEventHandled(propName)\"\n />\n </template>\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n </template>\n\n <template v-if=\"!designer.selectedWidget\">\n <a-empty :description=\"i18nt('designer.hint.noSelectedWidgetHint')\" />\n </template>\n </div>\n </a-tab-pane>\n\n <a-tab-pane v-if=\"!!designer\" :tab=\"i18nt('designer.hint.表单设置')\" key=\"2\">\n <div class=\"setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <form-setting :designer=\"designer\" :form-config=\"formConfig\" />\n </div>\n </a-tab-pane>\n\n <a-tab-pane :tab=\"'表单api配置'\" key=\"3\">\n <div class=\"ds-setting-scrollbar\" :style=\"{ height: scrollerHeight }\">\n <FormCrudSetting :designer=\"designer\" :form-config=\"formConfig\" />\n </div>\n </a-tab-pane>\n </a-tabs>\n\n <CodeModalEditor\n :eventHeader=\"eventHeader\"\n ref=\"CodeModalEditorRef\"\n :title=\"i18nt('designer.setting.editWidgetEventHandler')\"\n mode=\"javascript\"\n :readonly=\"false\"\n @save=\"saveEventHandler\"\n />\n </a-layout>\n </a-config-provider>\n</template>\n\n<script>\n import CodeEditor from '@/components/code-editor/index.vue';\n import PropertyEditors from './property-editor/index';\n import FormSetting from './form-setting';\n import FormCrudSetting from './form-crud-setting.vue';\n import WidgetProperties from './propertyRegister';\n import { addWindowResizeHandler } from '@/utils/util';\n import i18n from '@/utils/i18n';\n import emitter from '@/utils/emitter';\n import { propertyRegistered } from '@/components/form-designer/setting-panel/propertyRegister';\n import CodeModalEditor from '@/components/code-editor/code-modal-editor.vue';\n\n const { COMMON_PROPERTIES, ADVANCED_PROPERTIES, EVENT_PROPERTIES } = WidgetProperties;\n\n export default {\n name: 'SettingPanel',\n componentName: 'SettingPanel',\n mixins: [i18n, emitter],\n components: {\n CodeEditor,\n FormSetting,\n CodeModalEditor,\n FormCrudSetting,\n ...PropertyEditors\n },\n props: {\n designer: Object,\n selectedWidget: Object,\n formConfig: Object,\n globalDsv: {\n type: Object,\n default: () => ({})\n }\n },\n provide() {\n return {\n isSubFormChildWidget: () => this.subFormChildWidgetFlag,\n getGlobalDsv: () => this.globalDsv // 全局数据源变量\n };\n },\n inject: ['getDesignerConfig'],\n data() {\n return {\n designerConfig: this.getDesignerConfig(),\n\n scrollerHeight: 0,\n\n activeTab: '2',\n widgetActiveCollapseNames: ['1', '2', '3'],\n formActiveCollapseNames: ['1', '2'],\n\n commonProps: COMMON_PROPERTIES,\n advProps: ADVANCED_PROPERTIES,\n eventProps: EVENT_PROPERTIES,\n\n showWidgetEventDialogFlag: false,\n eventHandlerCode: '',\n curEventName: '',\n eventHeader: '',\n\n subFormChildWidgetFlag: false\n };\n },\n computed: {\n optionModel: {\n get() {\n return this.selectedWidget.options;\n },\n\n set(newValue) {\n this.selectedWidget.options = newValue;\n }\n }\n },\n watch: {\n 'designer.selectedWidget': {\n handler(val) {\n if (!!val) {\n this.activeTab = '1';\n }\n }\n },\n\n 'selectedWidget.options': {\n //组件属性变动后,立即保存表单JSON!!\n deep: true,\n handler() {\n this.designer.saveCurrentHistoryStep();\n }\n },\n\n formConfig: {\n deep: true,\n handler() {\n this.designer.saveCurrentHistoryStep();\n }\n }\n },\n created() {\n this.on$('editEventHandler', eventParams => {\n //debugger\n this.editEventHandler(eventParams[0], eventParams[1]);\n });\n\n this.designer.handleEvent('form-css-updated', cssClassList => {\n this.designer.setCssClassList(cssClassList);\n });\n\n //监听字段组件选中事件\n this.designer.handleEvent('field-selected', parentWidget => {\n this.subFormChildWidgetFlag = !!parentWidget && parentWidget.type === 'sub-form';\n });\n },\n mounted() {\n if (!this.designer.selectedWidget) {\n this.activeTab = '2';\n } else {\n this.activeTab = '1';\n }\n\n this.scrollerHeight = window.innerHeight - 56 - 48 + 'px';\n addWindowResizeHandler(() => {\n this.$nextTick(() => {\n this.scrollerHeight = window.innerHeight - 56 - 48 + 'px';\n //console.log(this.scrollerHeight)\n });\n });\n },\n methods: {\n getEventHandled(eventName) {\n return !!this.optionModel[eventName] && this.optionModel[eventName].length > 0;\n },\n\n showEventCollapse() {\n if (this.designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n\n return !!this.designerConfig['eventCollapse'];\n },\n\n hasPropEditor(propName, editorName) {\n if (!editorName) {\n return false;\n }\n\n /* alert组件注册了两个type属性编辑器,跳过第一个type属性编辑器,只显示第二个alert-type属性编辑器!! */\n if (propName.indexOf('-') <= -1) {\n const uniquePropName = this.selectedWidget.type + '-' + propName;\n if (propertyRegistered(uniquePropName)) {\n return false;\n }\n }\n\n const originalPropName = propName.replace(this.selectedWidget.type + '-', ''); //去掉组件名称前缀-,如果有的话!!\n const res = this.designer.hasConfig(this.selectedWidget, originalPropName);\n\n return res;\n },\n\n getPropEditor(propName, editorName) {\n const originalPropName = propName.replace(this.selectedWidget.type + '-', ''); //去掉组件名称前缀-,如果有的话!!\n const ownPropEditorName = `${this.selectedWidget.type}-${originalPropName}-editor`;\n\n if (this.$options.components[ownPropEditorName]) {\n //局部注册的属性编辑器组件\n return ownPropEditorName;\n }\n\n // 如果全局有就调用全局的 否则动态加载\n const editName = this.$root.$.appContext.components[ownPropEditorName]\n ? ownPropEditorName\n : editorName;\n\n return editName;\n // return defineAsyncComponent(() => PropertyEditors[editName]?.()); //Vue3全局注册的属性编辑器组件\n },\n\n showCollapse(propsObj) {\n let result = false;\n\n for (const propName in propsObj) {\n if (!propsObj.hasOwnProperty(propName)) {\n continue;\n }\n\n if (this.hasPropEditor(propName, propsObj[propName])) {\n result = true;\n break;\n }\n }\n\n return result;\n },\n\n editEventHandler(eventName, eventParams) {\n //debugger\n\n this.curEventName = eventName;\n this.eventHeader = `${this.optionModel.name}.${eventName}(${eventParams.join(\n ', '\n )}) {`;\n this.eventHandlerCode = this.selectedWidget.options[eventName] || '';\n\n // 设置字段校验函数示例代码\n if (eventName === 'onValidate' && !this.optionModel['onValidate']) {\n this.eventHandlerCode =\n \" /* sample code */\\n /*\\n if ((value > 100) || (value < 0)) {\\n return Promise.reject('error message') //fail\\n } else {\\n return Promise.resolve(); //pass\\n }\\n */\";\n }\n console.log(this.eventHandlerCode);\n this.$refs.CodeModalEditorRef.open(this.eventHandlerCode);\n },\n\n saveEventHandler(value) {\n const codeHints =\n this.$refs.CodeModalEditorRef.codeEditorRef.ecEditor.getEditorAnnotations();\n let syntaxErrorFlag = false;\n if (!!codeHints && codeHints.length > 0) {\n codeHints.forEach(chItem => {\n if (chItem.type === 'error') {\n syntaxErrorFlag = true;\n }\n });\n\n if (syntaxErrorFlag) {\n this.$message.error(this.i18nt('designer.setting.syntaxCheckWarning'));\n return;\n }\n }\n\n if (this.curEventName.includes('.')) {\n const [a, b] = this.curEventName.split('.');\n this.selectedWidget.options[a][b] = value;\n } else {\n this.selectedWidget.options[this.curEventName] = value;\n }\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .panel-container {\n background-color: #fff;\n border-radius: 4px;\n height: 100%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n :deep(.ant-tabs-content-holder) {\n flex: 1;\n display: flex;\n }\n .tpf-form.ant-form {\n padding: 0;\n }\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-label {\n flex: 1;\n }\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n }\n\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n :deep(.ant-tabs-nav) {\n padding: 0 16px;\n margin: 0;\n margin-bottom: 0;\n height: 42px;\n border-bottom: 1px solid #f0f0f0;\n }\n :deep(.ant-tabs-tab) {\n padding: 12px 0;\n margin: 0 16px 0 0;\n transition: all 0.3s;\n }\n :deep(.ant-tabs-content) {\n overflow: auto;\n padding: 0;\n }\n :deep(.ant-form-item) {\n .ant-form-item-row {\n flex: 1;\n }\n .ant-select {\n width: 100%;\n }\n margin-bottom: 3px;\n &:last-child {\n margin-bottom: 0;\n }\n .ant-form-item-label > label {\n color: var();\n }\n }\n :deep(.ant-collapse) {\n border: none;\n background: transparent;\n }\n :deep(.ant-collapse-item) {\n border: none;\n overflow: hidden;\n &:last-child {\n margin-bottom: 0;\n }\n }\n :deep(.ant-collapse-header) {\n padding: 8px !important;\n background: #fafafa;\n &:hover {\n background: #f5f5f5;\n }\n }\n :deep(.ant-collapse-content-box) {\n padding: 8px;\n background: #fff;\n .ant-form-item {\n display: flex;\n }\n .ant-form-item-label {\n width: 130px;\n }\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 /* 隐藏Firefox浏览器中el-input数字输入框右侧的上下调整小箭头 */\n // :deep(.hide-spin-button) input[type='number'] {\n // -moz-appearance: textfield;\n // }\n</style>\n\n<style lang=\"scss\">\n .ds-setting-drawer {\n right: 320px !important;\n }\n</style>\n"],"names":["COMMON_PROPERTIES","ADVANCED_PROPERTIES","EVENT_PROPERTIES","WidgetProperties","_sfc_main","i18n","emitter","CodeEditor","FormSetting","CodeModalEditor","FormCrudSetting","PropertyEditors","newValue","val","eventParams","cssClassList","parentWidget","addWindowResizeHandler","eventName","propName","editorName","uniquePropName","propertyRegistered","originalPropName","ownPropEditorName","propsObj","result","value","codeHints","syntaxErrorFlag","chItem","a","b","_createBlock","_component_a_config_provider","_createVNode","_component_a_layout","_component_a_tabs","$data","$event","_component_a_tab_pane","_ctx","_createElementVNode","$props","_component_a_form","$options","_component_a_collapse","_component_a_collapse_panel","_openBlock","_createElementBlock","_Fragment","_renderList","_resolveDynamicComponent","_component_a_empty","_component_form_setting","_component_FormCrudSetting","_component_CodeModalEditor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"option-items-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/option-items-setting.vue"],"sourcesContent":["<template>\n <div class=\"option-items-pane\">\n <a-radio-group\n v-if=\"\n selectedWidget.type === 'radio' ||\n (selectedWidget.type === 'select' &&\n ['combobox'].includes(selectedWidget.options.mode || ''))\n \"\n v-model:value=\"selectedWidget.options.defaultValue\"\n @change=\"emitDefaultValueChange\"\n class=\"option-group\"\n >\n <draggable\n tag=\"ul\"\n :list=\"selectedWidget.options.optionItems\"\n item-key=\"id\"\n v-bind=\"{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }\"\n >\n <template #item=\"{ element: option, index: idx }\">\n <li>\n <a-radio :value=\"option.value\">\n <span class=\"drag-option\" title=\"拖动排序\">\n <DragOutlined />\n </span>\n <a-input\n v-model:value=\"option.value\"\n size=\"small\"\n style=\"width: 80px\"\n placeholder=\"值\"\n />\n <a-input\n v-model:value=\"option.label\"\n size=\"small\"\n style=\"width: 80px\"\n placeholder=\"文本\"\n />\n <a-button size=\"small\" @click=\"deleteOption(option, idx)\">\n <DeleteOutlined />\n </a-button>\n </a-radio>\n </li>\n </template>\n </draggable>\n </a-radio-group>\n <a-checkbox-group\n v-else-if=\"\n selectedWidget.type === 'checkbox' ||\n (selectedWidget.type === 'select' &&\n ['multiple', 'tags'].includes(selectedWidget.options.mode || ''))\n \"\n v-model:value=\"selectedWidget.options.defaultValue\"\n @change=\"emitDefaultValueChange\"\n style=\"width: 100%\"\n class=\"option-group\"\n >\n <draggable\n tag=\"ul\"\n :list=\"selectedWidget.options.optionItems\"\n item-key=\"id\"\n v-bind=\"{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }\"\n >\n <template #item=\"{ element: option, index: idx }\">\n <li>\n <span class=\"drag-option\" title=\"拖动排序\">\n <DragOutlined />\n </span>\n <a-checkbox :value=\"option.value\">\n <a-input\n v-model:value=\"option.value\"\n size=\"small\"\n style=\"width: 85px\"\n placeholder=\"值\"\n />\n <a-input\n v-model:value=\"option.label\"\n size=\"small\"\n style=\"width: 95px\"\n placeholder=\"文本\"\n />\n </a-checkbox>\n <div size=\"small\" @click=\"deleteOption(option, idx)\">\n <DeleteOutlined />\n </div>\n </li>\n </template>\n </draggable>\n </a-checkbox-group>\n <!-- 设置联级选择默认值 -->\n <div v-else-if=\"selectedWidget.type === 'cascader'\" class=\"full-width-input\">\n <a-cascader\n v-model:value=\"selectedWidget.options.defaultValue\"\n :multiple=\"selectedWidget.options.multiple\"\n :options=\"selectedWidget.options.optionItems\"\n @change=\"emitDefaultValueChange\"\n :placeholder=\"i18nt('render.hint.selectPlaceholder')\"\n />\n </div>\n <!-- 设置树的默认值 -->\n <div v-else-if=\"selectedWidget.type === 'treeSelect'\" class=\"full-width-input\">\n <a-tree-select\n v-model:value=\"selectedWidget.options.defaultValue\"\n :treeData=\"selectedWidget.options.optionItems\"\n @change=\"emitDefaultValueChange\"\n :placeholder=\"i18nt('render.hint.selectPlaceholder')\"\n />\n </div>\n <div v-if=\"['cascader', 'treeSelect'].includes(selectedWidget.type)\" class=\"action-buttons\">\n <a-button @click=\"importCascaderOptions\">\n <ImportOutlined />\n {{ i18nt('designer.setting.importOptions') }}\n </a-button>\n <a-button @click=\"resetDefault\">\n <ReloadOutlined />\n {{ i18nt('designer.setting.resetDefault') }}\n </a-button>\n </div>\n\n <div\n v-if=\"['radio', 'checkbox', 'select'].includes(selectedWidget.type)\"\n class=\"action-buttons\"\n >\n <a-button @click=\"addOption\">\n {{ i18nt('designer.setting.addOption') }}\n </a-button>\n <a-button @click=\"resetDefault\">\n {{ i18nt('designer.setting.resetDefault') }}\n </a-button>\n </div>\n\n <TpfCodeEditor\n :isShowEventHeader=\"false\"\n :title=\"i18nt('designer.setting.importOptions')\"\n mode=\"javascript\"\n :readonly=\"false\"\n ref=\"codeEditorRef\"\n @set-code=\"saveCascaderOptions\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref } from 'vue';\n import Draggable from '@/lib/vuedraggable/src/vuedraggable';\n import { useI18n } from '@/utils/i18n';\n import { TpfCodeEditor } from 'tmgc2-share';\n import {\n DragOutlined,\n ImportOutlined,\n ReloadOutlined,\n DeleteOutlined\n } from '@ant-design/icons-vue';\n\n const codeEditorRef = ref();\n\n interface OptionItem {\n value: string | number;\n label: string;\n [key: string]: any;\n }\n\n interface WidgetOptions {\n name: string;\n defaultValue: string | string[] | number[];\n optionItems: OptionItem[];\n multiple?: boolean;\n mode?: string;\n [key: string]: any;\n }\n\n interface Widget {\n type: string;\n options: WidgetOptions;\n [key: string]: any;\n }\n\n interface FormWidget {\n getWidgetRef: (name: string) => any;\n [key: string]: any;\n }\n\n interface Designer {\n formWidget?: FormWidget;\n [key: string]: any;\n }\n\n interface Props {\n designer?: Designer;\n selectedWidget: Widget;\n }\n\n const props = defineProps<Props>();\n\n const { i18nt } = useI18n();\n\n const emitDefaultValueChange = () => {\n if (props.designer?.formWidget) {\n const fieldWidget = props.designer.formWidget.getWidgetRef(\n props.selectedWidget.options.name\n );\n if (fieldWidget?.refreshDefaultValue) {\n fieldWidget.refreshDefaultValue();\n }\n }\n };\n\n const deleteOption = (option: OptionItem, index: number) => {\n props.selectedWidget.options.optionItems.splice(index, 1);\n };\n\n const addOption = () => {\n const newValue = props.selectedWidget.options.optionItems.length + 1;\n props.selectedWidget.options.optionItems.push({\n value: newValue,\n label: 'new option'\n });\n };\n\n const importOptions = () => {\n codeEditorRef.value.open(\n JSON.stringify(props.selectedWidget.options.optionItems, null, '')\n );\n };\n\n const resetDefault = () => {\n if (\n props.selectedWidget.type === 'checkbox' ||\n (props.selectedWidget.type === 'select' && props.selectedWidget.options.multiple)\n ) {\n props.selectedWidget.options.defaultValue = [];\n } else {\n props.selectedWidget.options.defaultValue = '';\n }\n\n emitDefaultValueChange();\n };\n\n const importCascaderOptions = () => {\n codeEditorRef.value.open(props.selectedWidget.options.optionItems);\n };\n\n const saveCascaderOptions = (value: any) => {\n props.selectedWidget.options.optionItems = JSON.parse(value);\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .option-items-pane {\n width: 100%;\n\n ul {\n width: 100%;\n margin-bottom: 0;\n > li {\n margin-bottom: 5px;\n display: flex;\n align-items: center;\n\n .ant-radio-wrapper,\n .ant-checkbox-wrapper {\n display: flex;\n align-items: center;\n width: 100%;\n margin-right: 0;\n }\n\n .ant-input {\n margin: 0 4px;\n }\n\n .drag-option {\n display: inline-flex;\n align-items: center;\n margin: 0 6px;\n cursor: move;\n color: #999;\n\n &:hover {\n color: var(--ant-primary-color);\n }\n }\n\n .ant-btn {\n margin-left: 4px;\n }\n }\n }\n\n .option-header {\n display: flex;\n margin-bottom: 8px;\n padding-left: 28px;\n\n .value-label {\n width: 64px;\n margin-right: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 12px;\n }\n\n .text-label {\n width: 74px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 12px;\n }\n }\n\n .option-group {\n width: 100%;\n margin-bottom: 2px;\n }\n\n .ant-btn {\n margin-right: 8px;\n\n &:last-child {\n margin-right: 0;\n }\n\n .anticon {\n margin-right: 0;\n }\n }\n }\n\n li.ghost {\n background: #f5f5f5;\n border: 1px dashed var(--ant-primary-color);\n border-radius: 4px;\n padding: 4px;\n }\n\n .dialog-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 16px;\n\n .ant-btn {\n min-width: 80px;\n margin-left: 8px;\n }\n }\n\n .full-width-input {\n width: 100% !important;\n margin-bottom: 5px;\n\n :deep(.ant-cascader),\n :deep(.ant-tree-select) {\n width: 100% !important;\n }\n }\n\n /* Button action group styles */\n .action-buttons {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n justify-content: center;\n }\n</style>\n"],"names":["codeEditorRef","ref","props","__props","i18nt","useI18n","emitDefaultValueChange","_a","fieldWidget","deleteOption","option","index","addOption","newValue","resetDefault","importCascaderOptions","saveCascaderOptions","value","_openBlock","_createElementBlock","_hoisted_1","selectedWidget","_createBlock","_component_a_radio_group","$event","_createVNode","_unref","_mergeProps","_withCtx","idx","_createElementVNode","_component_a_radio","_hoisted_2","DragOutlined","_component_a_input","_component_a_button","DeleteOutlined","_component_a_checkbox_group","_hoisted_3","_component_a_checkbox","_hoisted_5","_component_a_cascader","_hoisted_6","_component_a_tree_select","_hoisted_7","ImportOutlined","_createTextVNode","ReloadOutlined","_hoisted_8","TpfCodeEditor"],"mappings":"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"}
1
+ {"version":3,"file":"option-items-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/option-items-setting.vue"],"sourcesContent":["<template>\n <div class=\"option-items-pane\">\n <a-radio-group\n v-if=\"\n selectedWidget.type === 'radio' ||\n (selectedWidget.type === 'select' &&\n ['combobox'].includes(selectedWidget.options.mode || ''))\n \"\n v-model:value=\"selectedWidget.options.defaultValue\"\n @change=\"emitDefaultValueChange\"\n class=\"option-group\"\n >\n <draggable\n tag=\"ul\"\n :list=\"selectedWidget.options.optionItems\"\n item-key=\"id\"\n v-bind=\"{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }\"\n >\n <template #item=\"{ element: option, index: idx }\">\n <li>\n <a-radio :value=\"option.value\">\n <span class=\"drag-option\" title=\"拖动排序\">\n <DragOutlined />\n </span>\n <a-input\n v-model:value=\"option.value\"\n size=\"small\"\n style=\"width: 80px\"\n placeholder=\"值\"\n />\n <a-input\n v-model:value=\"option.label\"\n size=\"small\"\n style=\"width: 80px\"\n placeholder=\"文本\"\n />\n <a-button size=\"small\" @click=\"deleteOption(option, idx)\">\n <DeleteOutlined />\n </a-button>\n </a-radio>\n </li>\n </template>\n </draggable>\n </a-radio-group>\n <a-checkbox-group\n v-else-if=\"\n selectedWidget.type === 'checkbox' ||\n (selectedWidget.type === 'select' &&\n ['multiple', 'tags'].includes(selectedWidget.options.mode || ''))\n \"\n v-model:value=\"selectedWidget.options.defaultValue\"\n @change=\"emitDefaultValueChange\"\n style=\"width: 100%\"\n class=\"option-group\"\n >\n <draggable\n tag=\"ul\"\n :list=\"selectedWidget.options.optionItems\"\n item-key=\"id\"\n v-bind=\"{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }\"\n >\n <template #item=\"{ element: option, index: idx }\">\n <li>\n <span class=\"drag-option\" title=\"拖动排序\">\n <DragOutlined />\n </span>\n <a-checkbox :value=\"option.value\">\n <a-input\n v-model:value=\"option.value\"\n size=\"small\"\n style=\"width: 85px\"\n placeholder=\"值\"\n />\n <a-input\n v-model:value=\"option.label\"\n size=\"small\"\n style=\"width: 95px\"\n placeholder=\"文本\"\n />\n </a-checkbox>\n <div size=\"small\" @click=\"deleteOption(option, idx)\">\n <DeleteOutlined />\n </div>\n </li>\n </template>\n </draggable>\n </a-checkbox-group>\n <!-- 设置联级选择默认值 -->\n <div v-else-if=\"selectedWidget.type === 'cascader'\" class=\"full-width-input\">\n <a-cascader\n v-model:value=\"selectedWidget.options.defaultValue\"\n :multiple=\"selectedWidget.options.multiple\"\n :options=\"selectedWidget.options.optionItems\"\n @change=\"emitDefaultValueChange\"\n :placeholder=\"i18nt('render.hint.selectPlaceholder')\"\n />\n </div>\n <!-- 设置树的默认值 -->\n <div v-else-if=\"selectedWidget.type === 'treeSelect'\" class=\"full-width-input\">\n <a-tree-select\n v-model:value=\"selectedWidget.options.defaultValue\"\n :treeData=\"selectedWidget.options.optionItems\"\n @change=\"emitDefaultValueChange\"\n :placeholder=\"i18nt('render.hint.selectPlaceholder')\"\n />\n </div>\n <div v-if=\"['cascader', 'treeSelect'].includes(selectedWidget.type)\" class=\"action-buttons\">\n <a-button @click=\"importCascaderOptions\">\n <ImportOutlined />\n {{ i18nt('designer.setting.importOptions') }}\n </a-button>\n <a-button @click=\"resetDefault\">\n <ReloadOutlined />\n {{ i18nt('designer.setting.resetDefault') }}\n </a-button>\n </div>\n\n <div\n v-if=\"['radio', 'checkbox', 'select'].includes(selectedWidget.type)\"\n class=\"action-buttons\"\n >\n <a-button @click=\"addOption\">\n {{ i18nt('designer.setting.addOption') }}\n </a-button>\n <a-button @click=\"resetDefault\">\n {{ i18nt('designer.setting.resetDefault') }}\n </a-button>\n </div>\n\n <TpfCodeEditor\n :isShowEventHeader=\"false\"\n :title=\"i18nt('designer.setting.importOptions')\"\n mode=\"javascript\"\n :readonly=\"false\"\n ref=\"codeEditorRef\"\n @set-code=\"saveCascaderOptions\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref } from 'vue';\n import Draggable from '@/lib/vuedraggable/src/vuedraggable';\n import { useI18n } from '@/utils/i18n';\n import { TpfCodeEditor } from 'tmgc2-share';\n import {\n DragOutlined,\n ImportOutlined,\n ReloadOutlined,\n DeleteOutlined\n } from '@ant-design/icons-vue';\n\n const codeEditorRef = ref();\n\n interface OptionItem {\n value: string | number;\n label: string;\n [key: string]: any;\n }\n\n interface WidgetOptions {\n name: string;\n defaultValue: string | string[] | number[];\n optionItems: OptionItem[];\n multiple?: boolean;\n mode?: string;\n [key: string]: any;\n }\n\n interface Widget {\n type: string;\n options: WidgetOptions;\n [key: string]: any;\n }\n\n interface FormWidget {\n getWidgetRef: (name: string) => any;\n [key: string]: any;\n }\n\n interface Designer {\n formWidget?: FormWidget;\n [key: string]: any;\n }\n\n interface Props {\n designer?: Designer;\n selectedWidget: Widget;\n }\n\n const props = defineProps<Props>();\n\n const { i18nt } = useI18n();\n\n const emitDefaultValueChange = () => {\n if (props.designer?.formWidget) {\n const fieldWidget = props.designer.formWidget.getWidgetRef(\n props.selectedWidget.options.name\n );\n if (fieldWidget?.refreshDefaultValue) {\n fieldWidget.refreshDefaultValue();\n }\n }\n };\n\n const deleteOption = (option: OptionItem, index: number) => {\n props.selectedWidget.options.optionItems.splice(index, 1);\n };\n\n const addOption = () => {\n const newValue = props.selectedWidget.options.optionItems.length + 1;\n props.selectedWidget.options.optionItems.push({\n value: newValue,\n label: 'new option'\n });\n };\n\n const importOptions = () => {\n codeEditorRef.value.open(\n JSON.stringify(props.selectedWidget.options.optionItems, null, '')\n );\n };\n\n const resetDefault = () => {\n if (\n props.selectedWidget.type === 'checkbox' ||\n (props.selectedWidget.type === 'select' && props.selectedWidget.options.multiple)\n ) {\n props.selectedWidget.options.defaultValue = [];\n } else {\n props.selectedWidget.options.defaultValue = '';\n }\n\n emitDefaultValueChange();\n };\n\n const importCascaderOptions = () => {\n codeEditorRef.value.open(props.selectedWidget.options.optionItems);\n };\n\n const saveCascaderOptions = (value: any) => {\n props.selectedWidget.options.optionItems = JSON.parse(value);\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .option-items-pane {\n width: 100%;\n\n ul {\n width: 100%;\n margin-bottom: 0;\n > li {\n margin-bottom: 5px;\n display: flex;\n align-items: center;\n\n .ant-radio-wrapper,\n .ant-checkbox-wrapper {\n display: flex;\n align-items: center;\n width: 100%;\n margin-right: 0;\n }\n\n .ant-input {\n margin: 0 4px;\n }\n\n .drag-option {\n display: inline-flex;\n align-items: center;\n margin: 0 6px;\n cursor: move;\n color: #999;\n\n &:hover {\n color: var(--ant-primary-color);\n }\n }\n\n .ant-btn {\n margin-left: 4px;\n }\n }\n }\n\n .option-header {\n display: flex;\n margin-bottom: 8px;\n padding-left: 28px;\n\n .value-label {\n width: 64px;\n margin-right: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 12px;\n }\n\n .text-label {\n width: 74px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 12px;\n }\n }\n\n .option-group {\n width: 100%;\n margin-bottom: 2px;\n }\n\n .ant-btn {\n margin-right: 8px;\n\n &:last-child {\n margin-right: 0;\n }\n\n .anticon {\n margin-right: 0;\n }\n }\n }\n\n li.ghost {\n background: #f5f5f5;\n border: 1px dashed var(--ant-primary-color);\n border-radius: 4px;\n padding: 4px;\n }\n\n .dialog-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 16px;\n\n .ant-btn {\n min-width: 80px;\n margin-left: 8px;\n }\n }\n\n .full-width-input {\n width: 100% !important;\n margin-bottom: 5px;\n\n :deep(.ant-cascader),\n :deep(.ant-tree-select) {\n width: 100% !important;\n }\n }\n\n /* Button action group styles */\n .action-buttons {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n justify-content: center;\n }\n</style>\n"],"names":["codeEditorRef","ref","props","__props","i18nt","useI18n","emitDefaultValueChange","_a","fieldWidget","deleteOption","option","index","addOption","newValue","resetDefault","importCascaderOptions","saveCascaderOptions","value","_openBlock","_createElementBlock","_hoisted_1","selectedWidget","_createBlock","_component_a_radio_group","$event","_createVNode","_unref","_mergeProps","_withCtx","idx","_createElementVNode","_component_a_radio","_hoisted_2","DragOutlined","_component_a_input","_component_a_button","DeleteOutlined","_component_a_checkbox_group","_hoisted_3","_component_a_checkbox","_hoisted_5","_component_a_cascader","_hoisted_6","_component_a_tree_select","_hoisted_7","ImportOutlined","_createTextVNode","ReloadOutlined","_hoisted_8","TpfCodeEditor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"button-list-editor.vue2.js","sources":["../../../../../../src/components/form-designer/setting-panel/property-editor/button-list-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('designer.setting.buttonList')\">\n <a-button @click=\"handleConfigBtn\">按钮配置</a-button>\n </a-form-item>\n <TpfModal\n :title=\"i18nt('designer.setting.buttonsColumnEdit')\"\n v-model:visible=\"btnListConfigDialogVisible\"\n :show-close=\"true\"\n dialogClass=\"drag-dialog\"\n append-to-body\n :close-on-click-modal=\"false\"\n :close-on-press-escape=\"false\"\n width=\"1250px\"\n >\n <ActionButtonListDialog v-model:data=\"buttonList\" />\n <template #footerRight>\n <a-button size=\"default\" @click=\"handleCloseDialog\">\n {{ i18nt('designer.hint.closePreview') }}\n </a-button>\n </template>\n </TpfModal>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, watch } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import CodeModalEditor from '@/components/code-editor/code-modal-editor.vue';\n import { cloneDeep } from 'lodash-es';\n import ActionButtonListDialog from '@/components/public/ActionButtonListDialog.vue';\n import { TpfModal } from 'tmgc2-share';\n\n defineOptions({\n name: 'button-list-editor'\n });\n\n const { i18nt } = useI18n();\n\n // 定义Props接口\n interface Props {\n designer: any;\n selectedWidget: any;\n optionModel: any;\n }\n\n // 定义按钮接口\n interface ButtonItem {\n key: string;\n label: string;\n type: string;\n danger: boolean;\n icon: string;\n onHidden: string;\n onDisabled: string;\n onClick: string;\n [key: string]: any; // 允许其他属性\n }\n\n const props = defineProps<Props>();\n\n // 响应式数据\n const buttonList = ref<ButtonItem[]>([]);\n const btnListConfigDialogVisible = ref(false);\n\n // 监听buttonList变化\n watch(buttonList, () => {\n props.optionModel.buttonList = buttonList.value;\n });\n\n const handleConfigBtn = () => {\n buttonList.value = cloneDeep(props.optionModel.buttonList);\n btnListConfigDialogVisible.value = true;\n };\n\n const handleCloseDialog = () => {\n btnListConfigDialogVisible.value = false;\n };\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["i18nt","useI18n","props","__props","buttonList","ref","btnListConfigDialogVisible","watch","handleConfigBtn","cloneDeep","handleCloseDialog","_createVNode","_component_a_form_item","_unref","_component_a_button","_cache","TpfModal","$event","ActionButtonListDialog"],"mappings":";;;;;;;;;;;;;;AAmCI,UAAM,EAAE,OAAAA,EAAA,IAAUC,EAAA,GAsBZC,IAAQC,GAGRC,IAAaC,EAAkB,EAAE,GACjCC,IAA6BD,EAAI,EAAK;AAG5C,IAAAE,EAAMH,GAAY,MAAM;AACpB,MAAAF,EAAM,YAAY,aAAaE,EAAW;AAAA,IAAA,CAC7C;AAED,UAAMI,IAAkB,MAAM;AAC1B,MAAAJ,EAAW,QAAQK,EAAUP,EAAM,YAAY,UAAU,GACzDI,EAA2B,QAAQ;AAAA,IAAA,GAGjCI,IAAoB,MAAM;AAC5B,MAAAJ,EAA2B,QAAQ;AAAA,IAAA;;;;QAzEvCK,EAEcC,GAAA;AAAA,UAFA,OAAOC,EAAAb,CAAA,EAAK,6BAAA;AAAA,QAAA;qBACtB,MAAkD;AAAA,YAAlDW,EAAkDG,GAAA,EAAvC,SAAON,KAAe;AAAA,yBAAE,MAAIO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAAJ,MAAI;AAAA,cAAA;;;;;;;QAE3CJ,EAgBWE,EAAAG,CAAA,GAAA;AAAA,UAfN,OAAOH,EAAAb,CAAA,EAAK,oCAAA;AAAA,UACL,SAASM,EAAA;AAAA,qDAAAA,EAA0B,QAAAW;AAAA,UAC1C,cAAY;AAAA,UACb,aAAY;AAAA,UACZ,kBAAA;AAAA,UACC,wBAAsB;AAAA,UACtB,yBAAuB;AAAA,UACxB,OAAM;AAAA,QAAA;UAGK,eACP,MAEW;AAAA,YAFXN,EAEWG,GAAA;AAAA,cAFD,MAAK;AAAA,cAAW,SAAOJ;AAAA,YAAA;yBAC7B,MAAyC;AAAA,oBAAtCG,EAAAb,CAAA,EAAK,4BAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;;qBAHhB,MAAoD;AAAA,YAApDW,EAAoDO,GAAA;AAAA,cAApB,MAAMd,EAAA;AAAA,sDAAAA,EAAU,QAAAa;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"button-list-editor.vue2.js","sources":["../../../../../../src/components/form-designer/setting-panel/property-editor/button-list-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('designer.setting.buttonList')\">\n <a-button @click=\"handleConfigBtn\">按钮配置</a-button>\n </a-form-item>\n <TpfModal\n :title=\"i18nt('designer.setting.buttonsColumnEdit')\"\n v-model:visible=\"btnListConfigDialogVisible\"\n :show-close=\"true\"\n dialogClass=\"drag-dialog\"\n append-to-body\n :close-on-click-modal=\"false\"\n :close-on-press-escape=\"false\"\n width=\"1250px\"\n >\n <ActionButtonListDialog v-model:data=\"buttonList\" />\n <template #footerRight>\n <a-button size=\"default\" @click=\"handleCloseDialog\">\n {{ i18nt('designer.hint.closePreview') }}\n </a-button>\n </template>\n </TpfModal>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, watch } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import CodeModalEditor from '@/components/code-editor/code-modal-editor.vue';\n import { cloneDeep } from 'lodash-es';\n import ActionButtonListDialog from '@/components/public/ActionButtonListDialog.vue';\n import { TpfModal } from 'tmgc2-share';\n\n defineOptions({\n name: 'button-list-editor'\n });\n\n const { i18nt } = useI18n();\n\n // 定义Props接口\n interface Props {\n designer: any;\n selectedWidget: any;\n optionModel: any;\n }\n\n // 定义按钮接口\n interface ButtonItem {\n key: string;\n label: string;\n type: string;\n danger: boolean;\n icon: string;\n onHidden: string;\n onDisabled: string;\n onClick: string;\n [key: string]: any; // 允许其他属性\n }\n\n const props = defineProps<Props>();\n\n // 响应式数据\n const buttonList = ref<ButtonItem[]>([]);\n const btnListConfigDialogVisible = ref(false);\n\n // 监听buttonList变化\n watch(buttonList, () => {\n props.optionModel.buttonList = buttonList.value;\n });\n\n const handleConfigBtn = () => {\n buttonList.value = cloneDeep(props.optionModel.buttonList);\n btnListConfigDialogVisible.value = true;\n };\n\n const handleCloseDialog = () => {\n btnListConfigDialogVisible.value = false;\n };\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["i18nt","useI18n","props","__props","buttonList","ref","btnListConfigDialogVisible","watch","handleConfigBtn","cloneDeep","handleCloseDialog","_createVNode","_component_a_form_item","_unref","_component_a_button","_cache","TpfModal","$event","ActionButtonListDialog"],"mappings":";;;;;;;;;;;;;;AAmCI,UAAM,EAAE,OAAAA,EAAA,IAAUC,EAAA,GAsBZC,IAAQC,GAGRC,IAAaC,EAAkB,EAAE,GACjCC,IAA6BD,EAAI,EAAK;AAG5C,IAAAE,EAAMH,GAAY,MAAM;AACpB,MAAAF,EAAM,YAAY,aAAaE,EAAW;AAAA,IAC9C,CAAC;AAED,UAAMI,IAAkB,MAAM;AAC1B,MAAAJ,EAAW,QAAQK,EAAUP,EAAM,YAAY,UAAU,GACzDI,EAA2B,QAAQ;AAAA,IACvC,GAEMI,IAAoB,MAAM;AAC5B,MAAAJ,EAA2B,QAAQ;AAAA,IACvC;;;;QA1EAK,EAEcC,GAAA;AAAA,UAFA,OAAOC,EAAAb,CAAA,EAAK,6BAAA;AAAA,QAAA;qBACtB,MAAkD;AAAA,YAAlDW,EAAkDG,GAAA,EAAvC,SAAON,KAAe;AAAA,yBAAE,MAAIO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAAJ,MAAI;AAAA,cAAA;;;;;;;QAE3CJ,EAgBWE,EAAAG,CAAA,GAAA;AAAA,UAfN,OAAOH,EAAAb,CAAA,EAAK,oCAAA;AAAA,UACL,SAASM,EAAA;AAAA,qDAAAA,EAA0B,QAAAW;AAAA,UAC1C,cAAY;AAAA,UACb,aAAY;AAAA,UACZ,kBAAA;AAAA,UACC,wBAAsB;AAAA,UACtB,yBAAuB;AAAA,UACxB,OAAM;AAAA,QAAA;UAGK,eACP,MAEW;AAAA,YAFXN,EAEWG,GAAA;AAAA,cAFD,MAAK;AAAA,cAAW,SAAOJ;AAAA,YAAA;yBAC7B,MAAyC;AAAA,oBAAtCG,EAAAb,CAAA,EAAK,4BAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;;qBAHhB,MAAoD;AAAA,YAApDW,EAAoDO,GAAA;AAAA,cAApB,MAAMd,EAAA;AAAA,sDAAAA,EAAU,QAAAa;AAAA,YAAA;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"button-position-editor.vue2.js","sources":["../../../../../../src/components/form-designer/setting-panel/property-editor/button-position-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('designer.setting.buttonPosition')\">\n <a-select :options=\"BUTTON_POSITION\" v-model:value=\"optionModel.buttonPosition\" />\n <a-input\n class=\"container-input\"\n placeholder=\"请输入要渲染的目标\"\n v-if=\"optionModel.buttonPosition === ButtonPositionEnum.DIY\"\n v-model:value=\"optionModel.getContainer\"\n ></a-input>\n </a-form-item>\n</template>\n\n<script lang=\"ts\">\n import i18n from '@/utils/i18n';\n import { BUTTON_POSITION, ButtonPositionEnum } from '@/constants';\n import { defineComponent } from 'vue';\n export default defineComponent({\n name: 'button-position-editor',\n mixins: [i18n],\n props: {\n optionModel: Object as any\n },\n setup(props) {\n return { BUTTON_POSITION, ButtonPositionEnum };\n }\n });\n</script>\n\n<style scoped lang=\"less\">\n .container-input {\n margin-top: 5px;\n }\n</style>\n"],"names":["_sfc_main","defineComponent","i18n","props","BUTTON_POSITION","ButtonPositionEnum"],"mappings":";;;AAgBI,MAAAA,IAAeC,EAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,QAAQ,CAACC,CAAI;AAAA,EACb,OAAO;AAAA,IACH,aAAa;AAAA,EAAA;AAAA,EAEjB,MAAMC,GAAO;AACT,WAAO,EAAE,iBAAAC,GAAiB,oBAAAC,EAAA;AAAA,EAAmB;AAErD,CAAC;"}
1
+ {"version":3,"file":"button-position-editor.vue2.js","sources":["../../../../../../src/components/form-designer/setting-panel/property-editor/button-position-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('designer.setting.buttonPosition')\">\n <a-select :options=\"BUTTON_POSITION\" v-model:value=\"optionModel.buttonPosition\" />\n <a-input\n class=\"container-input\"\n placeholder=\"请输入要渲染的目标\"\n v-if=\"optionModel.buttonPosition === ButtonPositionEnum.DIY\"\n v-model:value=\"optionModel.getContainer\"\n ></a-input>\n </a-form-item>\n</template>\n\n<script lang=\"ts\">\n import i18n from '@/utils/i18n';\n import { BUTTON_POSITION, ButtonPositionEnum } from '@/constants';\n import { defineComponent } from 'vue';\n export default defineComponent({\n name: 'button-position-editor',\n mixins: [i18n],\n props: {\n optionModel: Object as any\n },\n setup(props) {\n return { BUTTON_POSITION, ButtonPositionEnum };\n }\n });\n</script>\n\n<style scoped lang=\"less\">\n .container-input {\n margin-top: 5px;\n }\n</style>\n"],"names":["_sfc_main","defineComponent","i18n","props","BUTTON_POSITION","ButtonPositionEnum"],"mappings":";;;AAgBI,MAAAA,IAAeC,EAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,QAAQ,CAACC,CAAI;AAAA,EACb,OAAO;AAAA,IACH,aAAa;AAAA,EAAA;AAAA,EAEjB,MAAMC,GAAO;AACT,WAAO,EAAE,iBAAAC,GAAiB,oBAAAC,EAAA;AAAA,EAC9B;AACJ,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-editor-mode.vue.js","sources":["../../../../../../../src/components/form-designer/setting-panel/property-editor/code-editor/code-editor-mode.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"`语法模式`\">\n <a-select v-model:value=\"optionModel.mode\" :options=\"modeList\" />\n </a-form-item>\n</template>\n\n<script>\n import i18n from '@/utils/i18n';\n\n export default {\n name: 'code-editor-mode-editor',\n componentName: 'PropertyEditor',\n mixins: [i18n],\n components: {},\n props: {\n designer: Object,\n selectedWidget: Object,\n optionModel: Object\n },\n data() {\n return {\n modeList: [\n { value: 'javascript', label: 'javascript' },\n { value: 'json', label: 'json' },\n { value: 'groovy', label: 'groovy' },\n { value: 'css', label: 'css' }\n ],\n dataSetList: []\n };\n },\n computed: {},\n watch: {},\n created() {},\n mounted() {}\n };\n</script>\n"],"names":["_sfc_main","i18n","_createBlock","_component_a_form_item","_createVNode","_component_a_select","$props","_cache","$event","$data"],"mappings":";;;AASE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ,CAACC,CAAI;AAAA,EACb,YAAY,CAAA;AAAA,EACZ,OAAO;AAAA,IACL,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,aAAa;AAAA;EAEf,OAAO;AACL,WAAO;AAAA,MACL,UAAU;AAAA,QACR,EAAE,OAAO,cAAc,OAAO;QAC9B,EAAE,OAAO,QAAQ,OAAO,OAAK;AAAA,QAC7B,EAAE,OAAO,UAAU,OAAO;QAC1B,EAAE,OAAO,OAAO,OAAO,MAAI;AAAA;MAE7B,aAAa,CAAA;AAAA;;EAGjB,UAAU,CAAA;AAAA,EACV,OAAO,CAAA;AAAA,EACP,UAAU;AAAA,EAAA;AAAA,EACV,UAAU;AAAA,EAAA;;;;cAhCZC,EAEcC,GAAA,EAFA,OAAO,UAAM;AAAA,eACzB,MAAiE;AAAA,MAAjEC,EAAiEC,GAAA;AAAA,QAA/C,OAAOC,EAAA,YAAY;AAAA,QAAZ,kBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAF,EAAA,YAAY,OAAIE;AAAA,QAAG,SAASC,EAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"code-editor-mode.vue.js","sources":["../../../../../../../src/components/form-designer/setting-panel/property-editor/code-editor/code-editor-mode.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"`语法模式`\">\n <a-select v-model:value=\"optionModel.mode\" :options=\"modeList\" />\n </a-form-item>\n</template>\n\n<script>\n import i18n from '@/utils/i18n';\n\n export default {\n name: 'code-editor-mode-editor',\n componentName: 'PropertyEditor',\n mixins: [i18n],\n components: {},\n props: {\n designer: Object,\n selectedWidget: Object,\n optionModel: Object\n },\n data() {\n return {\n modeList: [\n { value: 'javascript', label: 'javascript' },\n { value: 'json', label: 'json' },\n { value: 'groovy', label: 'groovy' },\n { value: 'css', label: 'css' }\n ],\n dataSetList: []\n };\n },\n computed: {},\n watch: {},\n created() {},\n mounted() {}\n };\n</script>\n"],"names":["_sfc_main","i18n","_createBlock","_component_a_form_item","_createVNode","_component_a_select","$props","_cache","$event","$data"],"mappings":";;;AASE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ,CAACC,CAAI;AAAA,EACb,YAAY,CAAA;AAAA,EACZ,OAAO;AAAA,IACL,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,aAAa;AAAA;EAEf,OAAO;AACL,WAAO;AAAA,MACL,UAAU;AAAA,QACR,EAAE,OAAO,cAAc,OAAO;QAC9B,EAAE,OAAO,QAAQ,OAAO,OAAK;AAAA,QAC7B,EAAE,OAAO,UAAU,OAAO;QAC1B,EAAE,OAAO,OAAO,OAAO,MAAI;AAAA;MAE7B,aAAa,CAAA;AAAA;EAEjB;AAAA,EACA,UAAU,CAAA;AAAA,EACV,OAAO,CAAA;AAAA,EACP,UAAU;AAAA,EAAC;AAAA,EACX,UAAU;AAAA,EAAC;;;;cAhCbC,EAEcC,GAAA,EAFA,OAAO,UAAM;AAAA,eACzB,MAAiE;AAAA,MAAjEC,EAAiEC,GAAA;AAAA,QAA/C,OAAOC,EAAA,YAAY;AAAA,QAAZ,kBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAF,EAAA,YAAY,OAAIE;AAAA,QAAG,SAASC,EAAA;AAAA;;;;;;"}