@kp-ui/lowcode 1.0.97 → 1.0.99

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 (23) hide show
  1. package/package.json +2 -3
  2. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js +3 -3
  3. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js.map +1 -1
  4. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +2 -3
  5. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js.map +1 -1
  6. package/src/components/form-designer/form-widget/field-widget/select-widget.vue.js +1 -1
  7. package/src/components/form-designer/form-widget/field-widget/select-widget.vue.js.map +1 -1
  8. package/src/components/form-designer/index.vue.js +74 -83
  9. package/src/components/form-designer/index.vue.js.map +1 -1
  10. package/src/components/form-designer/setting-panel/index.vue.js +31 -33
  11. package/src/components/form-designer/setting-panel/index.vue.js.map +1 -1
  12. package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js.map +1 -1
  13. package/src/components/public/ActionButtonListRender.vue.js +1 -1
  14. package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
  15. package/src/components/public/ActionButtonListRender.vue2.js +37 -32
  16. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
  17. package/stats.html +1 -1
  18. package/styles/style.css +1 -1
  19. package/src/components/code-editor/index.vue.js +0 -8
  20. package/src/components/code-editor/index.vue.js.map +0 -1
  21. package/src/components/code-editor/index.vue2.js +0 -106
  22. package/src/components/code-editor/index.vue2.js.map +0 -1
  23. package/types/install.d.ts +0 -26
@@ -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 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 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","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":"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
+ {"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 { 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":";;;;;;;;;;;;;;AAkCI,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;;;;QAzEAK,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;;;;;;;;"}
@@ -39,7 +39,7 @@ function v(o, B, S, $, h, z) {
39
39
  ], 8, ["disabled", "to"]))
40
40
  ], 6);
41
41
  }
42
- const L = /* @__PURE__ */ g(d, [["render", v], ["__scopeId", "data-v-daa504c2"]]);
42
+ const L = /* @__PURE__ */ g(d, [["render", v], ["__scopeId", "data-v-53e6b5e0"]]);
43
43
  export {
44
44
  L as default
45
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonListRender.vue.js","sources":["../../../../src/components/public/ActionButtonListRender.vue"],"sourcesContent":["<template>\n <div\n ref=\"fieldEditor\"\n :class=\"['button-list-container', ...customClass]\"\n :style=\"containerStyle\"\n >\n <Teleport :disabled=\"isDisabled\" :to=\"getContainer\">\n <a-space :size=\"8\">\n <a-button\n v-for=\"item in visibleButtons\"\n :key=\"item.key\"\n :type=\"item.type\"\n :danger=\"item.danger\"\n class=\"tpf-button\"\n :disabled=\"handleDisabled(item)\"\n @click=\"handleClick(item)\"\n >\n <template v-if=\"item.icon\">\n <SvgIcon :icon-class=\"item.icon\" class=\"button-icon\" />\n </template>\n {{ item.label }}\n </a-button>\n </a-space>\n </Teleport>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, PropType } from 'vue';\n import { executeFunction } from '@/utils/executeFunction';\n import SvgIcon from '@/components/svg-icon/index.vue';\n import type { ActionButton } from '@/types/button';\n\n export default defineComponent({\n name: 'ActionButtonListRender',\n components: { SvgIcon },\n props: {\n options: {\n type: Object,\n default: () => {}\n },\n scope: {\n type: Object,\n default: () => {}\n },\n ctx: {\n type: Object\n },\n buttonList: {\n type: Array as PropType<ActionButton[]>,\n default: () => []\n },\n customClass: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n flex: {\n type: String,\n default: 'center'\n },\n designState: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const containerStyle = computed(() => ({\n '--flex': props.flex\n }));\n\n const isDisabled = computed(() => !props.options?.getContainer || !!props.designState);\n\n const getContainer = computed(() => props.options?.getContainer);\n console.log({ isDisabled: isDisabled.value, getContainer: getContainer.value });\n\n const visibleButtons = computed(() =>\n props.buttonList.filter(item => !handleHidden(item))\n );\n\n const handleClick = async (item: ActionButton) => {\n if (props.designState) return; // 在设计状态下不处理点击事件\n if (!item.onClick) return;\n try {\n await executeFunction({\n functionBody: item.onClick,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button click handler error:', error);\n }\n };\n\n const handleDisabled = (item: ActionButton): boolean => {\n if (!item.onDisabled) return false;\n\n try {\n return executeFunction({\n functionBody: item.onDisabled,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button disabled handler error:', error);\n return false;\n }\n };\n\n const handleHidden = (item: ActionButton): boolean => {\n if (!item.onHidden) return false;\n\n try {\n return executeFunction({\n functionBody: item.onHidden,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button hidden handler error:', error);\n return false;\n }\n };\n\n return {\n getContainer,\n isDisabled,\n containerStyle,\n visibleButtons,\n handleClick,\n handleDisabled\n };\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .button-list-container {\n flex: 1;\n display: flex;\n justify-content: var(--flex);\n\n .button-icon {\n margin-right: 4px;\n }\n }\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_normalizeStyle","_createBlock","_Teleport","_createVNode","_component_a_space","_withCtx","_openBlock","_Fragment","_renderList","item","_component_a_button","$event","_component_SvgIcon","_createCommentVNode","_toDisplayString"],"mappings":";;;;;;cACIA,EAuBM,OAAA;AAAA,IAtBF,KAAI;AAAA,IACH,OAAKC,+BAA+BC,EAAA,WAAW,CAAA;AAAA,IAC/C,OAAKC,EAAED,EAAA,cAAc;AAAA,EAAA,GAAA;AAAA,UAEtBE,EAiBWC,GAAA;AAAA,MAjBA,UAAUH,EAAA;AAAA,MAAa,IAAIA,EAAA;AAAA,IAAA,GAAA;AAAA,MAClCI,EAeUC,GAAA,EAfA,MAAM,EAAA,GAAC;AAAA,QAAA,SAAAC,EAET,MAA8B;AAAA,WAAAC,EAAA,EAAA,GADlCT,EAaWU,GAAA,MAAAC,EAZQT,EAAA,gBAAc,CAAtBU,YADXR,EAaWS,GAAA;AAAA,YAXN,KAAKD,EAAK;AAAA,YACV,MAAMA,EAAK;AAAA,YACX,QAAQA,EAAK;AAAA,YACd,OAAM;AAAA,YACL,UAAUV,iBAAeU,CAAI;AAAA,YAC7B,SAAK,CAAAE,MAAEZ,EAAA,YAAYU,CAAI;AAAA,UAAA,GAAA;AAAA,uBAExB,MAEW;AAAA,cAFKA,EAAK,aACjBR,EAAuDW,GAAA;AAAA,gBAAA,KAAA;AAAA,gBAA7C,cAAYH,EAAK;AAAA,gBAAM,OAAM;AAAA,cAAA,GAAA,MAAA,GAAA,CAAA,YAAA,CAAA,KAAAI,EAAA,IAAA,EAAA;AAAA,gBAChC,MACXC,EAAGL,EAAK,KAAK,GAAA,CAAA;AAAA,YAAA,CAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"ActionButtonListRender.vue.js","sources":["../../../../src/components/public/ActionButtonListRender.vue"],"sourcesContent":["<template>\n <div\n ref=\"fieldEditor\"\n :class=\"['button-list-container', ...customClass]\"\n :style=\"containerStyle\"\n >\n <Teleport :disabled=\"isDisabled\" :to=\"getContainer\">\n <a-space :size=\"8\">\n <a-button\n v-for=\"item in visibleButtons\"\n :key=\"item.key\"\n :type=\"item.type\"\n :danger=\"item.danger\"\n class=\"tpf-button\"\n :disabled=\"handleDisabled(item)\"\n @click=\"handleClick(item)\"\n >\n <template v-if=\"item.icon\">\n <SvgIcon :icon-class=\"item.icon\" class=\"button-icon\" />\n </template>\n {{ item.label }}\n </a-button>\n </a-space>\n </Teleport>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, PropType } from 'vue';\n import { executeFunction } from '@/utils/executeFunction';\n import SvgIcon from '@/components/svg-icon/index.vue';\n import type { ActionButton } from '@/types/button';\n import { ButtonPositionEnum } from '@/constants';\n\n export default defineComponent({\n name: 'ActionButtonListRender',\n components: { SvgIcon },\n props: {\n options: {\n type: Object,\n default: () => {}\n },\n scope: {\n type: Object,\n default: () => {}\n },\n ctx: {\n type: Object\n },\n buttonList: {\n type: Array as PropType<ActionButton[]>,\n default: () => []\n },\n customClass: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n flex: {\n type: String,\n default: 'center'\n },\n designState: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const containerStyle = computed(() => ({\n '--flex': props.flex\n }));\n\n const isDisabled = computed(\n () => props.options?.buttonPosition !== ButtonPositionEnum.DIY\n );\n\n const getContainer = computed(() =>\n isDisabled.value ? null : props.options?.getContainer\n );\n\n console.log({ isDisabled: isDisabled.value, getContainer: getContainer.value });\n\n const visibleButtons = computed(() =>\n props.buttonList.filter(item => !handleHidden(item))\n );\n\n const handleClick = async (item: ActionButton) => {\n if (props.designState) return; // 在设计状态下不处理点击事件\n if (!item.onClick) return;\n try {\n await executeFunction({\n functionBody: item.onClick,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button click handler error:', error);\n }\n };\n\n const handleDisabled = (item: ActionButton): boolean => {\n if (!item.onDisabled) return false;\n\n try {\n return executeFunction({\n functionBody: item.onDisabled,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button disabled handler error:', error);\n return false;\n }\n };\n\n const handleHidden = (item: ActionButton): boolean => {\n if (!item.onHidden) return false;\n\n try {\n return executeFunction({\n functionBody: item.onHidden,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button hidden handler error:', error);\n return false;\n }\n };\n\n return {\n getContainer,\n isDisabled,\n containerStyle,\n visibleButtons,\n handleClick,\n handleDisabled\n };\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .button-list-container {\n flex: 1;\n display: flex;\n justify-content: var(--flex);\n\n .button-icon {\n margin-right: 4px;\n }\n }\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_normalizeStyle","_createBlock","_Teleport","_createVNode","_component_a_space","_withCtx","_openBlock","_Fragment","_renderList","item","_component_a_button","$event","_component_SvgIcon","_createCommentVNode","_toDisplayString"],"mappings":";;;;;;cACIA,EAuBM,OAAA;AAAA,IAtBF,KAAI;AAAA,IACH,OAAKC,+BAA+BC,EAAA,WAAW,CAAA;AAAA,IAC/C,OAAKC,EAAED,EAAA,cAAc;AAAA,EAAA,GAAA;AAAA,UAEtBE,EAiBWC,GAAA;AAAA,MAjBA,UAAUH,EAAA;AAAA,MAAa,IAAIA,EAAA;AAAA,IAAA,GAAA;AAAA,MAClCI,EAeUC,GAAA,EAfA,MAAM,EAAA,GAAC;AAAA,QAAA,SAAAC,EAET,MAA8B;AAAA,WAAAC,EAAA,EAAA,GADlCT,EAaWU,GAAA,MAAAC,EAZQT,EAAA,gBAAc,CAAtBU,YADXR,EAaWS,GAAA;AAAA,YAXN,KAAKD,EAAK;AAAA,YACV,MAAMA,EAAK;AAAA,YACX,QAAQA,EAAK;AAAA,YACd,OAAM;AAAA,YACL,UAAUV,iBAAeU,CAAI;AAAA,YAC7B,SAAK,CAAAE,MAAEZ,EAAA,YAAYU,CAAI;AAAA,UAAA,GAAA;AAAA,uBAExB,MAEW;AAAA,cAFKA,EAAK,aACjBR,EAAuDW,GAAA;AAAA,gBAAA,KAAA;AAAA,gBAA7C,cAAYH,EAAK;AAAA,gBAAM,OAAM;AAAA,cAAA,GAAA,MAAA,GAAA,CAAA,YAAA,CAAA,KAAAI,EAAA,IAAA,EAAA;AAAA,gBAChC,MACXC,EAAGL,EAAK,KAAK,GAAA,CAAA;AAAA,YAAA,CAAA;AAAA;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { defineComponent as f, computed as o } from "vue";
2
- import { executeFunction as r } from "../../utils/executeFunction.js";
2
+ import { executeFunction as a } from "../../utils/executeFunction.js";
3
3
  import y from "../svg-icon/index.vue.js";
4
+ import { ButtonPositionEnum as m } from "../../constants/index.js";
4
5
  const g = f({
5
6
  name: "ActionButtonListRender",
6
7
  components: { SvgIcon: y },
@@ -35,48 +36,52 @@ const g = f({
35
36
  default: !1
36
37
  }
37
38
  },
38
- setup(t) {
39
+ setup(e) {
39
40
  const i = o(() => ({
40
- "--flex": t.flex
41
- })), a = o(() => {
42
- var e;
43
- return !((e = t.options) != null && e.getContainer) || !!t.designState;
44
- }), c = o(() => {
45
- var e;
46
- return (e = t.options) == null ? void 0 : e.getContainer;
47
- });
48
- console.log({ isDisabled: a.value, getContainer: c.value });
41
+ "--flex": e.flex
42
+ })), r = o(
43
+ () => {
44
+ var t;
45
+ return ((t = e.options) == null ? void 0 : t.buttonPosition) !== m.DIY;
46
+ }
47
+ ), c = o(
48
+ () => {
49
+ var t;
50
+ return r.value ? null : (t = e.options) == null ? void 0 : t.getContainer;
51
+ }
52
+ );
53
+ console.log({ isDisabled: r.value, getContainer: c.value });
49
54
  const l = o(
50
- () => t.buttonList.filter((e) => !u(e))
51
- ), s = async (e) => {
52
- if (!t.designState && e.onClick)
55
+ () => e.buttonList.filter((t) => !d(t))
56
+ ), s = async (t) => {
57
+ if (!e.designState && t.onClick)
53
58
  try {
54
- await r({
55
- functionBody: e.onClick,
56
- context: t.ctx,
57
- params: t.scope
59
+ await a({
60
+ functionBody: t.onClick,
61
+ context: e.ctx,
62
+ params: e.scope
58
63
  });
59
64
  } catch (n) {
60
65
  console.error("Button click handler error:", n);
61
66
  }
62
- }, d = (e) => {
63
- if (!e.onDisabled) return !1;
67
+ }, u = (t) => {
68
+ if (!t.onDisabled) return !1;
64
69
  try {
65
- return r({
66
- functionBody: e.onDisabled,
67
- context: t.ctx,
68
- params: t.scope
70
+ return a({
71
+ functionBody: t.onDisabled,
72
+ context: e.ctx,
73
+ params: e.scope
69
74
  });
70
75
  } catch (n) {
71
76
  return console.error("Button disabled handler error:", n), !1;
72
77
  }
73
- }, u = (e) => {
74
- if (!e.onHidden) return !1;
78
+ }, d = (t) => {
79
+ if (!t.onHidden) return !1;
75
80
  try {
76
- return r({
77
- functionBody: e.onHidden,
78
- context: t.ctx,
79
- params: t.scope
81
+ return a({
82
+ functionBody: t.onHidden,
83
+ context: e.ctx,
84
+ params: e.scope
80
85
  });
81
86
  } catch (n) {
82
87
  return console.error("Button hidden handler error:", n), !1;
@@ -84,11 +89,11 @@ const g = f({
84
89
  };
85
90
  return {
86
91
  getContainer: c,
87
- isDisabled: a,
92
+ isDisabled: r,
88
93
  containerStyle: i,
89
94
  visibleButtons: l,
90
95
  handleClick: s,
91
- handleDisabled: d
96
+ handleDisabled: u
92
97
  };
93
98
  }
94
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonListRender.vue2.js","sources":["../../../../src/components/public/ActionButtonListRender.vue"],"sourcesContent":["<template>\n <div\n ref=\"fieldEditor\"\n :class=\"['button-list-container', ...customClass]\"\n :style=\"containerStyle\"\n >\n <Teleport :disabled=\"isDisabled\" :to=\"getContainer\">\n <a-space :size=\"8\">\n <a-button\n v-for=\"item in visibleButtons\"\n :key=\"item.key\"\n :type=\"item.type\"\n :danger=\"item.danger\"\n class=\"tpf-button\"\n :disabled=\"handleDisabled(item)\"\n @click=\"handleClick(item)\"\n >\n <template v-if=\"item.icon\">\n <SvgIcon :icon-class=\"item.icon\" class=\"button-icon\" />\n </template>\n {{ item.label }}\n </a-button>\n </a-space>\n </Teleport>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, PropType } from 'vue';\n import { executeFunction } from '@/utils/executeFunction';\n import SvgIcon from '@/components/svg-icon/index.vue';\n import type { ActionButton } from '@/types/button';\n\n export default defineComponent({\n name: 'ActionButtonListRender',\n components: { SvgIcon },\n props: {\n options: {\n type: Object,\n default: () => {}\n },\n scope: {\n type: Object,\n default: () => {}\n },\n ctx: {\n type: Object\n },\n buttonList: {\n type: Array as PropType<ActionButton[]>,\n default: () => []\n },\n customClass: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n flex: {\n type: String,\n default: 'center'\n },\n designState: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const containerStyle = computed(() => ({\n '--flex': props.flex\n }));\n\n const isDisabled = computed(() => !props.options?.getContainer || !!props.designState);\n\n const getContainer = computed(() => props.options?.getContainer);\n console.log({ isDisabled: isDisabled.value, getContainer: getContainer.value });\n\n const visibleButtons = computed(() =>\n props.buttonList.filter(item => !handleHidden(item))\n );\n\n const handleClick = async (item: ActionButton) => {\n if (props.designState) return; // 在设计状态下不处理点击事件\n if (!item.onClick) return;\n try {\n await executeFunction({\n functionBody: item.onClick,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button click handler error:', error);\n }\n };\n\n const handleDisabled = (item: ActionButton): boolean => {\n if (!item.onDisabled) return false;\n\n try {\n return executeFunction({\n functionBody: item.onDisabled,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button disabled handler error:', error);\n return false;\n }\n };\n\n const handleHidden = (item: ActionButton): boolean => {\n if (!item.onHidden) return false;\n\n try {\n return executeFunction({\n functionBody: item.onHidden,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button hidden handler error:', error);\n return false;\n }\n };\n\n return {\n getContainer,\n isDisabled,\n containerStyle,\n visibleButtons,\n handleClick,\n handleDisabled\n };\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .button-list-container {\n flex: 1;\n display: flex;\n justify-content: var(--flex);\n\n .button-icon {\n margin-right: 4px;\n }\n }\n</style>\n"],"names":["_sfc_main","defineComponent","SvgIcon","props","containerStyle","computed","isDisabled","_a","getContainer","visibleButtons","handleHidden","item","handleClick","executeFunction","error","handleDisabled"],"mappings":";;;AAiCI,MAAAA,IAAeC,EAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,YAAY,EAAE,SAAAC,EAAA;AAAA,EACd,OAAO;AAAA,IACH,SAAS;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAAA;AAAA,IAEpB,KAAK;AAAA,MACD,MAAM;AAAA,IAAA;AAAA,IAEV,YAAY;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,MAAM;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEb,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACb;AAAA,EAEJ,MAAMC,GAAO;AACT,UAAMC,IAAiBC,EAAS,OAAO;AAAA,MACnC,UAAUF,EAAM;AAAA,IAAA,EAClB,GAEIG,IAAaD,EAAS,MAAA;;AAAM,gBAACE,IAAAJ,EAAM,YAAN,QAAAI,EAAe,iBAAgB,CAAC,CAACJ,EAAM;AAAA,KAAW,GAE/EK,IAAeH,EAAS,MAAA;;AAAM,cAAAE,IAAAJ,EAAM,YAAN,gBAAAI,EAAe;AAAA,KAAY;AAC/D,YAAQ,IAAI,EAAE,YAAYD,EAAW,OAAO,cAAcE,EAAa,OAAO;AAE9E,UAAMC,IAAiBJ;AAAA,MAAS,MAC5BF,EAAM,WAAW,OAAO,OAAQ,CAACO,EAAaC,CAAI,CAAC;AAAA,IAAA,GAGjDC,IAAc,OAAOD,MAAuB;AAC9C,UAAI,CAAAR,EAAM,eACLQ,EAAK;AACV,YAAI;AACA,gBAAME,EAAgB;AAAA,YAClB,cAAcF,EAAK;AAAA,YACnB,SAASR,EAAM;AAAA,YACf,QAAQA,EAAM;AAAA,UAAA,CACjB;AAAA,QACL,SAASW,GAAO;AACZ,kBAAQ,MAAM,+BAA+BA,CAAK;AAAA,QACtD;AAAA,IACJ,GAEMC,IAAiB,CAACJ,MAAgC;AACpD,UAAI,CAACA,EAAK,WAAY,QAAO;AAE7B,UAAI;AACA,eAAOE,EAAgB;AAAA,UACnB,cAAcF,EAAK;AAAA,UACnB,SAASR,EAAM;AAAA,UACf,QAAQA,EAAM;AAAA,QAAA,CACjB;AAAA,MACL,SAASW,GAAO;AACZ,uBAAQ,MAAM,kCAAkCA,CAAK,GAC9C;AAAA,MACX;AAAA,IACJ,GAEMJ,IAAe,CAACC,MAAgC;AAClD,UAAI,CAACA,EAAK,SAAU,QAAO;AAE3B,UAAI;AACA,eAAOE,EAAgB;AAAA,UACnB,cAAcF,EAAK;AAAA,UACnB,SAASR,EAAM;AAAA,UACf,QAAQA,EAAM;AAAA,QAAA,CACjB;AAAA,MACL,SAASW,GAAO;AACZ,uBAAQ,MAAM,gCAAgCA,CAAK,GAC5C;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,cAAAN;AAAA,MACA,YAAAF;AAAA,MACA,gBAAAF;AAAA,MACA,gBAAAK;AAAA,MACA,aAAAG;AAAA,MACA,gBAAAG;AAAA,IAAA;AAAA,EAER;AACJ,CAAC;"}
1
+ {"version":3,"file":"ActionButtonListRender.vue2.js","sources":["../../../../src/components/public/ActionButtonListRender.vue"],"sourcesContent":["<template>\n <div\n ref=\"fieldEditor\"\n :class=\"['button-list-container', ...customClass]\"\n :style=\"containerStyle\"\n >\n <Teleport :disabled=\"isDisabled\" :to=\"getContainer\">\n <a-space :size=\"8\">\n <a-button\n v-for=\"item in visibleButtons\"\n :key=\"item.key\"\n :type=\"item.type\"\n :danger=\"item.danger\"\n class=\"tpf-button\"\n :disabled=\"handleDisabled(item)\"\n @click=\"handleClick(item)\"\n >\n <template v-if=\"item.icon\">\n <SvgIcon :icon-class=\"item.icon\" class=\"button-icon\" />\n </template>\n {{ item.label }}\n </a-button>\n </a-space>\n </Teleport>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, PropType } from 'vue';\n import { executeFunction } from '@/utils/executeFunction';\n import SvgIcon from '@/components/svg-icon/index.vue';\n import type { ActionButton } from '@/types/button';\n import { ButtonPositionEnum } from '@/constants';\n\n export default defineComponent({\n name: 'ActionButtonListRender',\n components: { SvgIcon },\n props: {\n options: {\n type: Object,\n default: () => {}\n },\n scope: {\n type: Object,\n default: () => {}\n },\n ctx: {\n type: Object\n },\n buttonList: {\n type: Array as PropType<ActionButton[]>,\n default: () => []\n },\n customClass: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n flex: {\n type: String,\n default: 'center'\n },\n designState: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const containerStyle = computed(() => ({\n '--flex': props.flex\n }));\n\n const isDisabled = computed(\n () => props.options?.buttonPosition !== ButtonPositionEnum.DIY\n );\n\n const getContainer = computed(() =>\n isDisabled.value ? null : props.options?.getContainer\n );\n\n console.log({ isDisabled: isDisabled.value, getContainer: getContainer.value });\n\n const visibleButtons = computed(() =>\n props.buttonList.filter(item => !handleHidden(item))\n );\n\n const handleClick = async (item: ActionButton) => {\n if (props.designState) return; // 在设计状态下不处理点击事件\n if (!item.onClick) return;\n try {\n await executeFunction({\n functionBody: item.onClick,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button click handler error:', error);\n }\n };\n\n const handleDisabled = (item: ActionButton): boolean => {\n if (!item.onDisabled) return false;\n\n try {\n return executeFunction({\n functionBody: item.onDisabled,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button disabled handler error:', error);\n return false;\n }\n };\n\n const handleHidden = (item: ActionButton): boolean => {\n if (!item.onHidden) return false;\n\n try {\n return executeFunction({\n functionBody: item.onHidden,\n context: props.ctx,\n params: props.scope\n });\n } catch (error) {\n console.error('Button hidden handler error:', error);\n return false;\n }\n };\n\n return {\n getContainer,\n isDisabled,\n containerStyle,\n visibleButtons,\n handleClick,\n handleDisabled\n };\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .button-list-container {\n flex: 1;\n display: flex;\n justify-content: var(--flex);\n\n .button-icon {\n margin-right: 4px;\n }\n }\n</style>\n"],"names":["_sfc_main","defineComponent","SvgIcon","props","containerStyle","computed","isDisabled","_a","ButtonPositionEnum","getContainer","visibleButtons","handleHidden","item","handleClick","executeFunction","error","handleDisabled"],"mappings":";;;;AAkCI,MAAAA,IAAeC,EAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,YAAY,EAAE,SAAAC,EAAA;AAAA,EACd,OAAO;AAAA,IACH,SAAS;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAAA;AAAA,IAEpB,KAAK;AAAA,MACD,MAAM;AAAA,IAAA;AAAA,IAEV,YAAY;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,MAAM;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEb,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACb;AAAA,EAEJ,MAAMC,GAAO;AACT,UAAMC,IAAiBC,EAAS,OAAO;AAAA,MACnC,UAAUF,EAAM;AAAA,IAAA,EAClB,GAEIG,IAAaD;AAAA,MACf,MAAA;;AAAM,iBAAAE,IAAAJ,EAAM,YAAN,gBAAAI,EAAe,oBAAmBC,EAAmB;AAAA;AAAA,IAAA,GAGzDC,IAAeJ;AAAA,MAAS,MAAA;;AAC1B,eAAAC,EAAW,QAAQ,QAAOC,IAAAJ,EAAM,YAAN,gBAAAI,EAAe;AAAA;AAAA,IAAA;AAG7C,YAAQ,IAAI,EAAE,YAAYD,EAAW,OAAO,cAAcG,EAAa,OAAO;AAE9E,UAAMC,IAAiBL;AAAA,MAAS,MAC5BF,EAAM,WAAW,OAAO,OAAQ,CAACQ,EAAaC,CAAI,CAAC;AAAA,IAAA,GAGjDC,IAAc,OAAOD,MAAuB;AAC9C,UAAI,CAAAT,EAAM,eACLS,EAAK;AACV,YAAI;AACA,gBAAME,EAAgB;AAAA,YAClB,cAAcF,EAAK;AAAA,YACnB,SAAST,EAAM;AAAA,YACf,QAAQA,EAAM;AAAA,UAAA,CACjB;AAAA,QACL,SAASY,GAAO;AACZ,kBAAQ,MAAM,+BAA+BA,CAAK;AAAA,QACtD;AAAA,IACJ,GAEMC,IAAiB,CAACJ,MAAgC;AACpD,UAAI,CAACA,EAAK,WAAY,QAAO;AAE7B,UAAI;AACA,eAAOE,EAAgB;AAAA,UACnB,cAAcF,EAAK;AAAA,UACnB,SAAST,EAAM;AAAA,UACf,QAAQA,EAAM;AAAA,QAAA,CACjB;AAAA,MACL,SAASY,GAAO;AACZ,uBAAQ,MAAM,kCAAkCA,CAAK,GAC9C;AAAA,MACX;AAAA,IACJ,GAEMJ,IAAe,CAACC,MAAgC;AAClD,UAAI,CAACA,EAAK,SAAU,QAAO;AAE3B,UAAI;AACA,eAAOE,EAAgB;AAAA,UACnB,cAAcF,EAAK;AAAA,UACnB,SAAST,EAAM;AAAA,UACf,QAAQA,EAAM;AAAA,QAAA,CACjB;AAAA,MACL,SAASY,GAAO;AACZ,uBAAQ,MAAM,gCAAgCA,CAAK,GAC5C;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,cAAAN;AAAA,MACA,YAAAH;AAAA,MACA,gBAAAF;AAAA,MACA,gBAAAM;AAAA,MACA,aAAAG;AAAA,MACA,gBAAAG;AAAA,IAAA;AAAA,EAER;AACJ,CAAC;"}