@kp-ui/lowcode 2.15.0-beta.7 → 2.16.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install.js +18 -16
- package/install.js.map +1 -1
- package/package.json +3 -6
- package/src/components/FormRender/FormContainer.vue.js +55 -0
- package/src/components/FormRender/FormContainer.vue.js.map +1 -0
- package/src/components/FormRender/FormContainer.vue2.js +5 -0
- package/src/components/FormRender/FormContainer.vue2.js.map +1 -0
- package/src/components/FormRender/index.vue.js +2 -2
- package/src/components/FormRender/index.vue2.js +35 -40
- package/src/components/FormRender/index.vue2.js.map +1 -1
- package/src/components/FormRender/useFormContext.js +128 -120
- package/src/components/FormRender/useFormContext.js.map +1 -1
- package/src/components/{designer.js → form-designer/designer.js} +76 -71
- package/src/components/form-designer/designer.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js +116 -114
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +18 -19
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js +22 -16
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +8 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +58 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/useField.js +140 -140
- package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
- package/src/components/form-designer/form-widget/index.vue.js +2 -2
- package/src/components/form-designer/form-widget/index.vue2.js +56 -47
- package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/useFormDesigner.js +34 -0
- package/src/components/form-designer/form-widget/useFormDesigner.js.map +1 -0
- package/src/components/form-designer/index.vue.js +77 -74
- package/src/components/form-designer/index.vue.js.map +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue.js +2 -2
- package/src/components/form-designer/setting-panel/form-setting.vue2.js +100 -126
- package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/index.vue.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +255 -201
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js +45 -39
- package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +2 -2
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +32 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +32 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js +38 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js +38 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js +4 -4
- package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/index.js +178 -176
- package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
- package/src/components/form-designer/setting-panel/propertyRegister.js +12 -12
- package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
- package/src/components/form-designer/toolbar-panel/index.vue2.js +177 -137
- package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +50 -0
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +1 -0
- package/src/components/form-designer/widget-panel/containers/vf-box.js +1 -4
- package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-dialog.js +34 -10
- package/src/components/form-designer/widget-panel/containers/vf-dialog.js.map +1 -1
- package/src/components/form-designer/widget-panel/index.vue.js +2 -2
- package/src/components/form-designer/widget-panel/index.vue2.js +34 -74
- package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue.js +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue2.js +60 -61
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +72 -76
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/components/public/ActionButtonListDialog.vue.js +1 -1
- package/src/components/public/ActionButtonListDialog.vue2.js +115 -94
- package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue.js +15 -13
- package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue2.js +35 -25
- package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
- package/src/constants/EditorTypeEnum.js +1 -1
- package/src/constants/EditorTypeEnum.js.map +1 -1
- package/src/constants/WidgetTypeEnum.js +3 -4
- package/src/constants/WidgetTypeEnum.js.map +1 -1
- package/src/hooks/useLowcode.js.map +1 -1
- package/src/lang/en-US.js +2 -1
- package/src/lang/en-US.js.map +1 -1
- package/src/lang/zh-CN.js +4 -5
- package/src/lang/zh-CN.js.map +1 -1
- package/src/utils/util.js +22 -21
- package/src/utils/util.js.map +1 -1
- package/stats.html +1 -1
- package/styles/style.css +1 -1
- package/src/components/FormRender/FormContainer.js +0 -52
- package/src/components/FormRender/FormContainer.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +0 -8
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +0 -43
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar.js +0 -35
- package/src/components/bi-widget/echartBar/echart-bar.js.map +0 -1
- package/src/components/bi-widget/index.js +0 -13
- package/src/components/bi-widget/index.js.map +0 -1
- package/src/components/designer.js.map +0 -1
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +0 -26
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +0 -5
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +0 -68
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +0 -136
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +0 -153
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/useRuler.js +0 -66
- package/src/components/form-designer/form-widget/bi/useRuler.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +0 -51
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +0 -51
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +0 -5
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +0 -5
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +0 -71
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +0 -5
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +0 -81
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +0 -1
- package/src/constants/LayoutTypeEnum.js +0 -5
- package/src/constants/LayoutTypeEnum.js.map +0 -1
- package/src/hooks/useDesigner.js +0 -51
- package/src/hooks/useDesigner.js.map +0 -1
- /package/src/components/form-designer/{setting-panel/panel → widget-panel}/PanelItemDrag.vue2.js +0 -0
- /package/src/components/form-designer/{setting-panel/panel → widget-panel}/PanelItemDrag.vue2.js.map +0 -0
package/install.js
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/* empty css */
|
|
2
2
|
import "./_virtual/virtual_svg-icons-register.js";
|
|
3
|
-
import
|
|
4
|
-
import { getLocat as
|
|
5
|
-
import { VxeTooltip as
|
|
6
|
-
import { basicFieldsEnums as
|
|
7
|
-
import { default as
|
|
3
|
+
import p from "dayjs";
|
|
4
|
+
import { getLocat as m } from "@kp-ui/tool";
|
|
5
|
+
import { VxeTooltip as s } from "vxe-pc-ui";
|
|
6
|
+
import { basicFieldsEnums as P } from "./src/components/form-designer/widget-panel/basicFieldsEnums.js";
|
|
7
|
+
import { default as $ } from "./src/components/form-designer/index.vue.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { openCustomerModal as
|
|
10
|
-
import { default as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
9
|
+
import { openCustomerModal as a } from "./src/components/public/CustomerModal/useCustomerModal.js";
|
|
10
|
+
import { default as V } from "./src/components/form-render/SubmitButtonRender.vue.js";
|
|
11
|
+
import { default as F } from "./src/components/public/ActionButtonListRender.vue.js";
|
|
12
|
+
import { useLowcode as w } from "./src/hooks/useLowcode.js";
|
|
13
|
+
import { default as I } from "./src/components/FormRender/index.vue.js";
|
|
13
14
|
const x = (e) => {
|
|
14
|
-
const { app: o,
|
|
15
|
-
o.config.globalProperties.$getLocat =
|
|
15
|
+
const { app: o, factoryRender: r, getUserInfo: t } = e;
|
|
16
|
+
o.config.globalProperties.$getLocat = m, o.config.globalProperties.$dayjs = p, o.config.globalProperties.$getUserInfo = t, o.config.globalProperties.$factoryRender = r, o.config.globalProperties.$openCustomerModal = (i) => a(i, o), o.component("VxeTooltip", s);
|
|
16
17
|
};
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
F as ActionButtonListRender,
|
|
20
|
+
V as SubmitButtonRender,
|
|
21
|
+
$ as VFormDesigner,
|
|
22
|
+
I as VFormRender,
|
|
23
|
+
P as basicFieldsEnums,
|
|
22
24
|
x as registerLowcodeCore,
|
|
23
|
-
|
|
25
|
+
w as useLowcode
|
|
24
26
|
};
|
|
25
27
|
//# sourceMappingURL=install.js.map
|
package/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sources":["../install.ts"],"sourcesContent":["// 导出基础组件\nimport '@/styles/global.less';\nimport 'virtual:svg-icons-register';\nimport dayjs from 'dayjs';\nimport { getLocat } from '@kp-ui/tool';\nimport { VxeTooltip } from 'vxe-pc-ui';\n\nexport { basicFieldsEnums } from '@/components/form-designer/widget-panel/basicFieldsEnums';\n\nexport { default as VFormDesigner } from '@/components/form-designer/index.vue';\n\nimport { openCustomerModal } from '@/components/public/CustomerModal/useCustomerModal';\nimport type { App } from 'vue';\
|
|
1
|
+
{"version":3,"file":"install.js","sources":["../install.ts"],"sourcesContent":["// 导出基础组件\nimport '@/styles/global.less';\nimport 'virtual:svg-icons-register';\nimport dayjs from 'dayjs';\nimport { getLocat } from '@kp-ui/tool';\nimport { VxeTooltip } from 'vxe-pc-ui';\n\nexport { basicFieldsEnums } from '@/components/form-designer/widget-panel/basicFieldsEnums';\n\nexport { default as VFormDesigner } from '@/components/form-designer/index.vue';\n\nimport { openCustomerModal } from '@/components/public/CustomerModal/useCustomerModal';\nimport type { App } from 'vue';\nexport { default as SubmitButtonRender } from '@/components/form-render/SubmitButtonRender.vue';\n\nexport { default as ActionButtonListRender } from '@/components/public/ActionButtonListRender.vue';\n\nexport { useLowcode, VFormRender } from '@/hooks/useLowcode';\nexport type { ActionButton } from '@/types/button';\n\ninterface RegisterLowcodeCoreParams {\n app: App;\n factoryRender: (name: any, props: any, ...args: any[]) => any;\n getUserInfo?: () => any;\n}\n\n// 注册 HTTP\nexport const registerLowcodeCore = (params: RegisterLowcodeCoreParams) => {\n const { app, factoryRender, getUserInfo } = params;\n app.config.globalProperties.$getLocat = getLocat;\n app.config.globalProperties.$dayjs = dayjs;\n app.config.globalProperties.$getUserInfo = getUserInfo;\n app.config.globalProperties.$factoryRender = factoryRender;\n app.config.globalProperties.$openCustomerModal = ops => openCustomerModal(ops, app);\n app.component('VxeTooltip', VxeTooltip);\n};\n"],"names":["registerLowcodeCore","params","app","factoryRender","getUserInfo","getLocat","dayjs","ops","openCustomerModal","VxeTooltip"],"mappings":";;;;;;;;;;;;;AA2BO,MAAMA,IAAsB,CAACC,MAAsC;AACtE,QAAM,EAAE,KAAAC,GAAK,eAAAC,GAAe,aAAAC,EAAA,IAAgBH;AAC5C,EAAAC,EAAI,OAAO,iBAAiB,YAAYG,GACxCH,EAAI,OAAO,iBAAiB,SAASI,GACrCJ,EAAI,OAAO,iBAAiB,eAAeE,GAC3CF,EAAI,OAAO,iBAAiB,iBAAiBC,GAC7CD,EAAI,OAAO,iBAAiB,qBAAqB,CAAAK,MAAOC,EAAkBD,GAAKL,CAAG,GAClFA,EAAI,UAAU,cAAcO,CAAU;AAC1C;"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kp-ui/lowcode",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0-alpha.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
7
|
"module": "install.js",
|
|
8
8
|
"dependencies": {
|
|
9
|
+
"@kp-ui/lowcode": "link:./",
|
|
9
10
|
"animate.css": "^4.1.1",
|
|
10
11
|
"ant-design-vue": "4.2.6",
|
|
11
12
|
"axios": "^1.3.5",
|
|
@@ -13,8 +14,6 @@
|
|
|
13
14
|
"clipboard": "^2.0.8",
|
|
14
15
|
"core-js": "^3.6.5",
|
|
15
16
|
"dayjs": "^1.11.10",
|
|
16
|
-
"echarts": "^5.6.0",
|
|
17
|
-
"es-drager": "^1.3.2",
|
|
18
17
|
"file-saver": "^2.0.5",
|
|
19
18
|
"json-bigint": "^1.0.0",
|
|
20
19
|
"lodash-es": "^4.17.21",
|
|
@@ -27,9 +26,7 @@
|
|
|
27
26
|
"vite": "6.3.3",
|
|
28
27
|
"vite-plugin-lazy-import": "^1.0.7",
|
|
29
28
|
"vue": "3.5.17",
|
|
30
|
-
"vue-
|
|
31
|
-
"vue-router": "4.2.4",
|
|
32
|
-
"vue3-sketch-ruler": "^2.3.3"
|
|
29
|
+
"vue-router": "4.2.4"
|
|
33
30
|
},
|
|
34
31
|
"main": "install.js",
|
|
35
32
|
"types": "types/install.d.ts",
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineComponent as _, ref as C, computed as t, onMounted as M, createBlock as y, openBlock as F, unref as w, withKeys as D, normalizeClass as b, withCtx as E, createVNode as L } from "vue";
|
|
2
|
+
import { Form as $ } from "ant-design-vue";
|
|
3
|
+
import h from "../form-render/RenderWigetList.vue.js";
|
|
4
|
+
import { useEmitter as k } from "../../utils/useEmitter.js";
|
|
5
|
+
const j = /* @__PURE__ */ _({
|
|
6
|
+
__name: "FormContainer",
|
|
7
|
+
props: {
|
|
8
|
+
context: {
|
|
9
|
+
type: Object,
|
|
10
|
+
required: !0
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
emits: ["form-submit", "form-cancel"],
|
|
14
|
+
setup(l, { expose: s, emit: K }) {
|
|
15
|
+
const e = l, a = C(), { emit$: m, on$: i, off$: u } = k(), r = t({
|
|
16
|
+
get: () => e.context.formDataModel.value,
|
|
17
|
+
set: (o) => {
|
|
18
|
+
e.context.formDataModel.value = o;
|
|
19
|
+
}
|
|
20
|
+
}), c = t(() => e.context.readModeFlag.value), d = t(() => e.context.formConfig.value), f = t(() => e.context.widgetList.value), p = t(() => e.context.labelPosition.value), v = t(() => e.context.customClass.value), x = () => {
|
|
21
|
+
var o;
|
|
22
|
+
((o = d.value) == null ? void 0 : o.isEnterSubmit) === 1 && e.context.onFormUpdate();
|
|
23
|
+
};
|
|
24
|
+
return M(() => {
|
|
25
|
+
}), s({
|
|
26
|
+
renderForm: a,
|
|
27
|
+
off$: u,
|
|
28
|
+
on$: i,
|
|
29
|
+
emit$: m
|
|
30
|
+
}), (o, n) => (F(), y(w($), {
|
|
31
|
+
ref_key: "renderForm",
|
|
32
|
+
ref: a,
|
|
33
|
+
layout: p.value,
|
|
34
|
+
class: b(["render-form", "tpf-form", v.value, c.value ? "readonly-mode-form" : ""]),
|
|
35
|
+
scrollToFirstError: !0,
|
|
36
|
+
validateOnRuleChange: !1,
|
|
37
|
+
model: r.value,
|
|
38
|
+
onKeydown: D(x, ["enter"])
|
|
39
|
+
}, {
|
|
40
|
+
default: E(() => [
|
|
41
|
+
L(h, {
|
|
42
|
+
parentWidget: null,
|
|
43
|
+
widgetList: f.value,
|
|
44
|
+
formDataModel: r.value,
|
|
45
|
+
"onUpdate:formDataModel": n[0] || (n[0] = (g) => r.value = g)
|
|
46
|
+
}, null, 8, ["widgetList", "formDataModel"])
|
|
47
|
+
]),
|
|
48
|
+
_: 1
|
|
49
|
+
}, 8, ["layout", "class", "model"]));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
export {
|
|
53
|
+
j as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=FormContainer.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContainer.vue.js","sources":["../../../../src/components/FormRender/FormContainer.vue"],"sourcesContent":["<template>\n <Form\n ref=\"renderForm\"\n :layout=\"labelPosition\"\n :class=\"['render-form', 'tpf-form', customClass, readModeFlag ? 'readonly-mode-form' : '']\"\n :scrollToFirstError=\"true\"\n :validateOnRuleChange=\"false\"\n :model=\"formDataModel\"\n @keydown.enter=\"handleEnterKey\"\n >\n <RenderWigetList\n :parentWidget=\"null\"\n :widgetList=\"widgetList\"\n v-model:formDataModel=\"formDataModel\"\n />\n </Form>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, onMounted, type PropType } from 'vue';\n import { Form } from 'ant-design-vue';\n import RenderWigetList from '@/components/form-render/RenderWigetList.vue';\n import { useEmitter } from '@/utils/useEmitter';\n\n /**\n * 表单容器组件\n * 负责渲染表单及其子组件\n */\n\n const props = defineProps({\n context: {\n type: Object as PropType<any>,\n required: true\n }\n });\n\n const emit = defineEmits(['form-submit', 'form-cancel']);\n\n // 组件引用\n const renderForm = ref();\n const { emit$, on$, off$ } = useEmitter();\n\n // 从上下文中获取数据\n const formDataModel = computed({\n get: () => props.context.formDataModel.value,\n set: val => {\n props.context.formDataModel.value = val;\n }\n });\n const readModeFlag = computed(() => props.context.readModeFlag.value);\n const formConfig = computed(() => props.context.formConfig.value);\n const widgetList = computed(() => props.context.widgetList.value);\n const labelPosition = computed(() => props.context.labelPosition.value);\n const customClass = computed(() => props.context.customClass.value);\n\n /**\n * 处理回车键事件\n */\n const handleEnterKey = () => {\n if (formConfig.value?.isEnterSubmit === 1) {\n props.context.onFormUpdate();\n }\n };\n\n onMounted(() => {});\n\n // 暴露方法\n defineExpose({\n renderForm,\n off$,\n on$,\n emit$\n });\n</script>\n"],"names":["props","__props","renderForm","ref","emit$","on$","off$","useEmitter","formDataModel","computed","val","readModeFlag","formConfig","widgetList","labelPosition","customClass","handleEnterKey","_a","onMounted","__expose","_createBlock","_unref","Form","_normalizeClass","_createVNode","RenderWigetList","$event"],"mappings":";;;;;;;;;;;;;;AA6BI,UAAMA,IAAQC,GAURC,IAAaC,EAAA,GACb,EAAE,OAAAC,GAAO,KAAAC,GAAK,MAAAC,EAAA,IAASC,EAAA,GAGvBC,IAAgBC,EAAS;AAAA,MAC3B,KAAK,MAAMT,EAAM,QAAQ,cAAc;AAAA,MACvC,KAAK,CAAAU,MAAO;AACR,QAAAV,EAAM,QAAQ,cAAc,QAAQU;AAAA,MACxC;AAAA,IAAA,CACH,GACKC,IAAeF,EAAS,MAAMT,EAAM,QAAQ,aAAa,KAAK,GAC9DY,IAAaH,EAAS,MAAMT,EAAM,QAAQ,WAAW,KAAK,GAC1Da,IAAaJ,EAAS,MAAMT,EAAM,QAAQ,WAAW,KAAK,GAC1Dc,IAAgBL,EAAS,MAAMT,EAAM,QAAQ,cAAc,KAAK,GAChEe,IAAcN,EAAS,MAAMT,EAAM,QAAQ,YAAY,KAAK,GAK5DgB,IAAiB,MAAM;;AACzB,QAAIC,IAAAL,EAAW,UAAX,gBAAAK,EAAkB,mBAAkB,KACpCjB,EAAM,QAAQ,aAAA;AAAA,IAEtB;AAEA,WAAAkB,EAAU,MAAM;AAAA,IAAC,CAAC,GAGlBC,EAAa;AAAA,MACT,YAAAjB;AAAA,MACA,MAAAI;AAAA,MACA,KAAAD;AAAA,MACA,OAAAD;AAAA,IAAA,CACH,mBAvEDgB,EAcOC,EAAAC,CAAA,GAAA;AAAA,eAbC;AAAA,MAAJ,KAAIpB;AAAA,MACH,QAAQY,EAAA;AAAA,MACR,OAAKS,EAAA,CAAA,eAAA,YAA8BR,EAAA,OAAaJ,EAAA,QAAY,uBAAA,EAAA,CAAA;AAAA,MAC5D,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,MACtB,OAAOH,EAAA;AAAA,MACP,aAAeQ,GAAc,CAAA,OAAA,CAAA;AAAA,IAAA;iBAE9B,MAIE;AAAA,QAJFQ,EAIEC,GAAA;AAAA,UAHG,cAAc;AAAA,UACd,YAAYZ,EAAA;AAAA,UACL,eAAeL,EAAA;AAAA,2DAAAA,EAAa,QAAAkB;AAAA,QAAA;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContainer.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./index.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import r from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-32ab7c81"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
e as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=index.vue.js.map
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { defineComponent as L, computed as
|
|
2
|
-
import { Skeleton as
|
|
3
|
-
import
|
|
1
|
+
import { defineComponent as L, computed as u, ref as R, useTemplateRef as V, onMounted as D, watch as h, createElementBlock as c, openBlock as n, Fragment as w, createElementVNode as J, createBlock as S, createCommentVNode as p, createVNode as a, unref as e, mergeProps as T } from "vue";
|
|
2
|
+
import { Skeleton as E } from "ant-design-vue";
|
|
3
|
+
import I from "../form-render/dynamic-dialog.vue.js";
|
|
4
4
|
/* empty css */
|
|
5
|
-
import
|
|
6
|
-
import { useFormContext as
|
|
7
|
-
import { useI18n as
|
|
8
|
-
import { storeToRefs as
|
|
9
|
-
import { useLocaleStore as
|
|
10
|
-
import { getLocat as
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
const q = { class: "form-render-wrapper" }, G = {
|
|
5
|
+
import M from "./FormContainer.vue.js";
|
|
6
|
+
import { useFormContext as P } from "./useFormContext.js";
|
|
7
|
+
import { useI18n as $ } from "../../utils/i18n.js";
|
|
8
|
+
import { storeToRefs as z } from "pinia";
|
|
9
|
+
import { useLocaleStore as A } from "@kp-ui/i18n";
|
|
10
|
+
import { getLocat as U } from "@kp-ui/tool";
|
|
11
|
+
import W from "./Debugger.vue.js";
|
|
12
|
+
const j = { class: "form-render-wrapper" }, q = {
|
|
14
13
|
key: 0,
|
|
15
14
|
class: "loading-wrapper"
|
|
16
|
-
},
|
|
15
|
+
}, ne = /* @__PURE__ */ L({
|
|
17
16
|
name: "VFormRender",
|
|
18
17
|
componentName: "VFormRender",
|
|
19
18
|
inheritAttrs: !1,
|
|
@@ -31,55 +30,51 @@ const q = { class: "form-render-wrapper" }, G = {
|
|
|
31
30
|
debug: { type: Boolean }
|
|
32
31
|
},
|
|
33
32
|
emits: ["form-submit", "form-cancel"],
|
|
34
|
-
setup(
|
|
35
|
-
const { initLocale:
|
|
33
|
+
setup(g, { expose: v, emit: G }) {
|
|
34
|
+
const { initLocale: _ } = $(), b = A(), { locale: m } = z(b), C = u(() => U().debug === "1"), i = R(!1), l = g, o = V("formContainer"), s = u(() => {
|
|
36
35
|
var r;
|
|
37
36
|
return (r = o.value) == null ? void 0 : r.renderForm;
|
|
38
|
-
}), t =
|
|
37
|
+
}), t = P({
|
|
39
38
|
props: l,
|
|
40
39
|
renderForm: s
|
|
41
|
-
}),
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
}),
|
|
40
|
+
}), x = () => o.value, { dialogProps: y, emitter: F, isLoading: f, registerToRefList: k, formWidgetId: N } = t;
|
|
41
|
+
return D(() => {
|
|
42
|
+
k(N);
|
|
43
|
+
}), h(
|
|
45
44
|
m,
|
|
46
45
|
() => {
|
|
47
|
-
|
|
46
|
+
_(m.value);
|
|
48
47
|
},
|
|
49
48
|
{
|
|
50
49
|
immediate: !0
|
|
51
50
|
}
|
|
52
|
-
),
|
|
53
|
-
...
|
|
54
|
-
...t,
|
|
55
|
-
|
|
56
|
-
getNativeForm: F,
|
|
51
|
+
), v({
|
|
52
|
+
...F,
|
|
53
|
+
...t.expose,
|
|
54
|
+
getNativeForm: x,
|
|
57
55
|
formJson: l.formJson,
|
|
58
56
|
renderForm: s
|
|
59
|
-
}), (r,
|
|
60
|
-
|
|
61
|
-
e(
|
|
62
|
-
a(e(
|
|
63
|
-
])) :
|
|
64
|
-
a(
|
|
57
|
+
}), (r, d) => (n(), c(w, null, [
|
|
58
|
+
J("div", j, [
|
|
59
|
+
e(f) ? (n(), c("div", q, [
|
|
60
|
+
a(e(E), { active: e(f) }, null, 8, ["active"])
|
|
61
|
+
])) : p("", !0),
|
|
62
|
+
a(M, {
|
|
65
63
|
ref_key: "formContainer",
|
|
66
64
|
ref: o,
|
|
67
65
|
context: e(t)
|
|
68
66
|
}, null, 8, ["context"]),
|
|
69
|
-
a(
|
|
70
|
-
ref_key: "dynamicDialgRef",
|
|
71
|
-
ref: f
|
|
72
|
-
}), null, 16)
|
|
67
|
+
a(I, T(e(y), { ref: "dynamicDialgRef" }), null, 16)
|
|
73
68
|
]),
|
|
74
|
-
|
|
69
|
+
C.value ? (n(), S(W, {
|
|
75
70
|
key: 0,
|
|
76
71
|
visible: i.value,
|
|
77
|
-
"onUpdate:visible":
|
|
78
|
-
}, null, 8, ["visible"])) :
|
|
72
|
+
"onUpdate:visible": d[0] || (d[0] = (B) => i.value = B)
|
|
73
|
+
}, null, 8, ["visible"])) : p("", !0)
|
|
79
74
|
], 64));
|
|
80
75
|
}
|
|
81
76
|
});
|
|
82
77
|
export {
|
|
83
|
-
|
|
78
|
+
ne as default
|
|
84
79
|
};
|
|
85
80
|
//# sourceMappingURL=index.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../src/components/FormRender/index.vue"],"sourcesContent":["<template>\n <div class=\"form-render-wrapper\">\n <div class=\"loading-wrapper\" v-if=\"isLoading\">\n <Skeleton :active=\"isLoading\" />\n </div>\n <FormContainer ref=\"formContainer\" :context=\"formContext\" />\n <DynamicDialog v-bind=\"dialogProps\" ref=\"dynamicDialgRef\" />\n </div>\n <Debugger v-if=\"debug\" v-model:visible=\"debugVisible\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { onMounted, ref, watch, computed } from 'vue';\n import { Skeleton } from 'ant-design-vue';\n import DynamicDialog from '@/components/form-render/dynamic-dialog.vue';\n import FormContainer from './FormContainer';\n import { type FormRenderProps, useFormContext } from './useFormContext';\n import { useI18n } from '@/utils/i18n';\n import { storeToRefs } from 'pinia';\n import { useLocaleStore } from '@kp-ui/i18n';\n import { getLocat } from '@kp-ui/tool';\n import Debugger from './Debugger.vue';\n
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../src/components/FormRender/index.vue"],"sourcesContent":["<template>\n <div class=\"form-render-wrapper\">\n <div class=\"loading-wrapper\" v-if=\"isLoading\">\n <Skeleton :active=\"isLoading\" />\n </div>\n <FormContainer ref=\"formContainer\" :context=\"formContext\" />\n <DynamicDialog v-bind=\"dialogProps\" ref=\"dynamicDialgRef\" />\n </div>\n <Debugger v-if=\"debug\" v-model:visible=\"debugVisible\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { onMounted, ref, watch, computed, useTemplateRef } from 'vue';\n import { Skeleton } from 'ant-design-vue';\n import DynamicDialog from '@/components/form-render/dynamic-dialog.vue';\n import FormContainer from './FormContainer.vue';\n import { type FormRenderProps, useFormContext } from './useFormContext';\n import { useI18n } from '@/utils/i18n';\n import { storeToRefs } from 'pinia';\n import { useLocaleStore } from '@kp-ui/i18n';\n import { getLocat } from '@kp-ui/tool';\n import Debugger from './Debugger.vue';\n\n const { initLocale } = useI18n();\n defineOptions({\n name: 'VFormRender',\n componentName: 'VFormRender',\n inheritAttrs: false\n });\n const localeStore = useLocaleStore();\n const { locale } = storeToRefs(localeStore);\n\n const debug = computed(() => getLocat().debug === '1');\n const debugVisible = ref(false);\n\n const props = withDefaults(defineProps<FormRenderProps>(), {\n vfCtx: () => ({}),\n formJson: () => ({ widgetList: [], formConfig: {} }),\n formData: () => ({}),\n optionData: () => ({}),\n disabledMode: false,\n renderConfig: () => ({ languageName: 'zh-CN' }),\n globalDsv: () => ({}),\n parentForm: null,\n dynamicCreation: false\n });\n\n // 组件引用\n const formContainer = useTemplateRef('formContainer');\n\n const renderForm = computed(() => formContainer.value?.renderForm);\n\n // 组件事件\n const emit = defineEmits<{\n (e: 'form-submit', formData: any): void;\n (e: 'form-cancel'): void;\n }>();\n\n // 创建表单上下文\n const formContext = useFormContext({\n props,\n renderForm\n });\n\n //获取原生form引用\n const getNativeForm = () => {\n return formContainer.value;\n };\n const { dialogProps, emitter, isLoading, registerToRefList, formWidgetId } = formContext;\n\n // 生命周期钩子\n onMounted(() => {\n registerToRefList(formWidgetId);\n });\n\n watch(\n locale,\n () => {\n initLocale(locale.value);\n },\n {\n immediate: true\n }\n );\n\n // 暴露方法\n defineExpose({\n ...emitter,\n ...formContext.expose,\n getNativeForm,\n formJson: props.formJson,\n renderForm\n });\n</script>\n\n<style lang=\"less\" scoped>\n .loading-wrapper {\n min-height: 300px;\n padding: 20px;\n }\n .ant-form .ant-form-item-explain.ant-form-item-explain-connected {\n display: none;\n }\n</style>\n"],"names":["initLocale","useI18n","localeStore","useLocaleStore","locale","storeToRefs","debug","computed","getLocat","debugVisible","ref","props","__props","formContainer","useTemplateRef","renderForm","_a","formContext","useFormContext","getNativeForm","dialogProps","emitter","isLoading","registerToRefList","formWidgetId","onMounted","watch","__expose","_createElementVNode","_hoisted_1","_unref","_openBlock","_createElementBlock","_hoisted_2","_createVNode","Skeleton","FormContainer","DynamicDialog","_mergeProps","_createBlock","Debugger","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBI,UAAM,EAAE,YAAAA,EAAA,IAAeC,EAAA,GAMjBC,IAAcC,EAAA,GACd,EAAE,QAAAC,EAAA,IAAWC,EAAYH,CAAW,GAEpCI,IAAQC,EAAS,MAAMC,EAAA,EAAW,UAAU,GAAG,GAC/CC,IAAeC,EAAI,EAAK,GAExBC,IAAQC,GAaRC,IAAgBC,EAAe,eAAe,GAE9CC,IAAaR,EAAS,MAAA;;AAAM,cAAAS,IAAAH,EAAc,UAAd,gBAAAG,EAAqB;AAAA,KAAU,GAS3DC,IAAcC,EAAe;AAAA,MAC/B,OAAAP;AAAA,MACA,YAAAI;AAAA,IAAA,CACH,GAGKI,IAAgB,MACXN,EAAc,OAEnB,EAAE,aAAAO,GAAa,SAAAC,GAAS,WAAAC,GAAW,mBAAAC,GAAmB,cAAAC,MAAiBP;AAG7E,WAAAQ,EAAU,MAAM;AACZ,MAAAF,EAAkBC,CAAY;AAAA,IAClC,CAAC,GAEDE;AAAA,MACItB;AAAA,MACA,MAAM;AACF,QAAAJ,EAAWI,EAAO,KAAK;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,WAAW;AAAA,MAAA;AAAA,IACf,GAIJuB,EAAa;AAAA,MACT,GAAGN;AAAA,MACH,GAAGJ,EAAY;AAAA,MACf,eAAAE;AAAA,MACA,UAAUR,EAAM;AAAA,MAChB,YAAAI;AAAA,IAAA,CACH;MA3FDa,EAMM,OANNC,GAMM;AAAA,QALiCC,EAAAR,CAAA,KAAnCS,KAAAC,EAEM,OAFNC,GAEM;AAAA,UADFC,EAAgCJ,EAAAK,CAAA,GAAA,EAArB,QAAQL,EAAAR,CAAA,KAAS,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAEhCY,EAA4DE,GAAA;AAAA,mBAAzC;AAAA,UAAJ,KAAIvB;AAAA,UAAiB,SAASiB,EAAAb,CAAA;AAAA,QAAA;QAC7CiB,EAA4DG,GAA5DC,EAA4DR,MAA1B,EAAE,KAAI,kBAAA,CAAiB,GAAA,MAAA,EAAA;AAAA,MAAA;MAE7CxB,EAAA,cAAhBiC,EAAwDC,GAAA;AAAA;QAAzB,SAAS/B,EAAA;AAAA,mDAAAA,EAAY,QAAAgC;AAAA,MAAA;;;;"}
|