@ibiz-template/vue3-components 0.4.3 → 0.4.5

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 (108) hide show
  1. package/dist/chart-ImL2qyp9.js +0 -1
  2. package/dist/ibiz-markdown-editor-BQsiQfa2.js +0 -1
  3. package/dist/index-UNZ1dtt_.js +0 -1
  4. package/dist/index-Ul84JXar.js +0 -1
  5. package/dist/index-zzHHP33g.js +13 -0
  6. package/dist/index.min.css +1 -1
  7. package/dist/index.system.min.js +1 -2
  8. package/dist/map-chart-7nfIdU3w.js +0 -1
  9. package/dist/wang-editor-f4440Xvw.js +0 -1
  10. package/dist/{xlsx-util-Mxa6HuaG.js → xlsx-util-FO177Hj_.js} +1 -2
  11. package/es/common/col/col.mjs +0 -3
  12. package/es/common/data-import2/data-import2.css +1 -1
  13. package/es/common/data-import2/data-import2.d.ts +48 -11
  14. package/es/common/data-import2/data-import2.mjs +133 -166
  15. package/es/common/data-import2-select/data-import2-select.css +1 -0
  16. package/es/common/data-import2-select/data-import2-select.d.ts +59 -0
  17. package/es/common/data-import2-select/data-import2-select.mjs +170 -0
  18. package/es/common/data-import2-table/data-import2-table.css +1 -0
  19. package/es/common/data-import2-table/data-import2-table.d.ts +56 -0
  20. package/es/common/data-import2-table/data-import2-table.mjs +104 -0
  21. package/es/common/index.mjs +4 -0
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +2 -2
  23. package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.mjs +1 -1
  24. package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.provider.mjs +1 -1
  25. package/es/control/grid/row-edit-popover/row-edit-popover.css +1 -1
  26. package/es/control/tree/index.d.ts +1 -0
  27. package/es/control/tree/tree.css +1 -1
  28. package/es/control/tree/tree.d.ts +1 -0
  29. package/es/control/tree/tree.mjs +104 -54
  30. package/es/editor/index.mjs +9 -2
  31. package/es/index.mjs +0 -1
  32. package/es/panel-component/index.d.ts +0 -1
  33. package/es/panel-component/index.mjs +2 -4
  34. package/es/panel-component/panel-button/panel-button.controller.mjs +4 -1
  35. package/es/view-engine/index-view.engine.d.ts +0 -7
  36. package/es/view-engine/index-view.engine.mjs +0 -37
  37. package/lib/common/col/col.cjs +0 -3
  38. package/lib/common/data-import2/data-import2.cjs +132 -164
  39. package/lib/common/data-import2/data-import2.css +1 -1
  40. package/lib/common/data-import2-select/data-import2-select.cjs +172 -0
  41. package/lib/common/data-import2-select/data-import2-select.css +1 -0
  42. package/lib/common/data-import2-table/data-import2-table.cjs +106 -0
  43. package/lib/common/data-import2-table/data-import2-table.css +1 -0
  44. package/lib/common/index.cjs +4 -0
  45. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +1 -1
  46. package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.cjs +1 -1
  47. package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.provider.cjs +1 -1
  48. package/lib/control/grid/row-edit-popover/row-edit-popover.css +1 -1
  49. package/lib/control/tree/tree.cjs +102 -52
  50. package/lib/control/tree/tree.css +1 -1
  51. package/lib/editor/index.cjs +9 -2
  52. package/lib/index.cjs +15 -17
  53. package/lib/panel-component/index.cjs +29 -32
  54. package/lib/panel-component/panel-button/panel-button.controller.cjs +4 -1
  55. package/lib/view-engine/index-view.engine.cjs +0 -37
  56. package/package.json +10 -9
  57. package/dist/chart-ImL2qyp9.js.map +0 -1
  58. package/dist/ibiz-markdown-editor-BQsiQfa2.js.map +0 -1
  59. package/dist/index-1dtzc9-X.js +0 -14
  60. package/dist/index-1dtzc9-X.js.map +0 -1
  61. package/dist/index-UNZ1dtt_.js.map +0 -1
  62. package/dist/index-Ul84JXar.js.map +0 -1
  63. package/dist/index.system.min.js.map +0 -1
  64. package/dist/map-chart-7nfIdU3w.js.map +0 -1
  65. package/dist/wang-editor-f4440Xvw.js.map +0 -1
  66. package/dist/xlsx-util-Mxa6HuaG.js.map +0 -1
  67. package/es/_virtual/_commonjs-dynamic-modules.mjs +0 -5
  68. package/es/_virtual/pluralize.mjs +0 -3
  69. package/es/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/format-path/format-path.mjs +0 -11
  70. package/es/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/index.mjs +0 -4
  71. package/es/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/merge-model/merge-model.mjs +0 -22
  72. package/es/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/plural/plural.mjs +0 -30
  73. package/es/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/service-path-util/service-path-util.mjs +0 -187
  74. package/es/node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.mjs +0 -515
  75. package/es/panel-component/panel-container-group/index.d.ts +0 -28
  76. package/es/panel-component/panel-container-group/index.mjs +0 -20
  77. package/es/panel-component/panel-container-group/panel-container-group.controller.d.ts +0 -31
  78. package/es/panel-component/panel-container-group/panel-container-group.controller.mjs +0 -35
  79. package/es/panel-component/panel-container-group/panel-container-group.css +0 -1
  80. package/es/panel-component/panel-container-group/panel-container-group.d.ts +0 -28
  81. package/es/panel-component/panel-container-group/panel-container-group.mjs +0 -107
  82. package/es/panel-component/panel-container-group/panel-container-group.provider.d.ts +0 -15
  83. package/es/panel-component/panel-container-group/panel-container-group.provider.mjs +0 -21
  84. package/es/panel-component/panel-container-group/panel-container-group.state.d.ts +0 -12
  85. package/es/panel-component/panel-container-group/panel-container-group.state.mjs +0 -7
  86. package/es/panel-component/panel-tab-page/index.d.ts +0 -23
  87. package/es/panel-component/panel-tab-page/index.mjs +0 -12
  88. package/es/panel-component/panel-tab-page/panel-tab-page.d.ts +0 -25
  89. package/es/panel-component/panel-tab-page/panel-tab-page.mjs +0 -62
  90. package/es/panel-component/panel-tab-page/panel-tab-page.provider.d.ts +0 -13
  91. package/es/panel-component/panel-tab-page/panel-tab-page.provider.mjs +0 -21
  92. package/lib/_virtual/_commonjs-dynamic-modules.cjs +0 -7
  93. package/lib/_virtual/pluralize.cjs +0 -5
  94. package/lib/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/format-path/format-path.cjs +0 -13
  95. package/lib/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/index.cjs +0 -14
  96. package/lib/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/merge-model/merge-model.cjs +0 -24
  97. package/lib/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/plural/plural.cjs +0 -33
  98. package/lib/node_modules/.pnpm/@ibiz-template_model-helper@0.4.3_@ibiz-template_runtime@0.4.3_ramda@0.29.1/node_modules/@ibiz-template/model-helper/out/utils/service-path-util/service-path-util.cjs +0 -189
  99. package/lib/node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.cjs +0 -519
  100. package/lib/panel-component/panel-container-group/index.cjs +0 -27
  101. package/lib/panel-component/panel-container-group/panel-container-group.cjs +0 -109
  102. package/lib/panel-component/panel-container-group/panel-container-group.controller.cjs +0 -37
  103. package/lib/panel-component/panel-container-group/panel-container-group.css +0 -1
  104. package/lib/panel-component/panel-container-group/panel-container-group.provider.cjs +0 -23
  105. package/lib/panel-component/panel-container-group/panel-container-group.state.cjs +0 -9
  106. package/lib/panel-component/panel-tab-page/index.cjs +0 -17
  107. package/lib/panel-component/panel-tab-page/panel-tab-page.cjs +0 -64
  108. package/lib/panel-component/panel-tab-page/panel-tab-page.provider.cjs +0 -23
@@ -0,0 +1,170 @@
1
+ import { isVNode, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { importMapping } from '../data-import2/data-import2.mjs';
4
+ import './data-import2-select.css';
5
+
6
+ "use strict";
7
+ function _isSlot(s) {
8
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
+ }
10
+ const DataImport2Select = /* @__PURE__ */ defineComponent({
11
+ name: "DataImport2Select",
12
+ props: {
13
+ previewinfo: {
14
+ type: Object,
15
+ required: true
16
+ },
17
+ options: {
18
+ type: Object,
19
+ required: true
20
+ },
21
+ columnMappingListMap: {
22
+ type: Object,
23
+ required: true
24
+ },
25
+ listValue: {
26
+ type: String,
27
+ required: true
28
+ }
29
+ },
30
+ setup(props, {
31
+ emit
32
+ }) {
33
+ const ns = useNamespace("data-import2-select");
34
+ const inputClick = (e) => {
35
+ e.stopPropagation();
36
+ };
37
+ const editLabel = (e, item) => {
38
+ e.stopPropagation();
39
+ emit("optionsChange", item.label, {
40
+ edit: false,
41
+ checkmark: true,
42
+ close: true
43
+ });
44
+ };
45
+ const saveLabel = async (e, item) => {
46
+ e.stopPropagation();
47
+ emit("optionsChange", item.label, {
48
+ edit: true,
49
+ checkmark: false,
50
+ close: false,
51
+ value: item.label,
52
+ label: item.label
53
+ });
54
+ const data = props.columnMappingListMap.get(item.oldLabel);
55
+ if (data) {
56
+ data.name = item.label;
57
+ const result = await importMapping("put", data.id, data);
58
+ if (result.status === 200 && result.ok) {
59
+ emit("columnMappingListMapChange", item.label, result.data);
60
+ }
61
+ }
62
+ if (props.listValue === item.oldLabel) {
63
+ emit("listValueChange", item.label);
64
+ }
65
+ emit("optionsChange", item.label, {
66
+ oldLabel: item.label
67
+ });
68
+ };
69
+ const notSaveLabel = (e, item) => {
70
+ e.stopPropagation();
71
+ emit("optionsChange", item.label, {
72
+ edit: true,
73
+ checkmark: false,
74
+ close: false,
75
+ label: item.oldLabel
76
+ });
77
+ };
78
+ const handleDeleteOption = async (e, str) => {
79
+ e.stopPropagation();
80
+ const columnData = props.columnMappingListMap.get(str);
81
+ if (columnData) {
82
+ const res = await importMapping("delete", columnData.id);
83
+ if (res.status === 200 && res.ok) {
84
+ emit("optionsChange", str);
85
+ emit("columnMappingListMapChange", str);
86
+ if (props.listValue === str) {
87
+ emit("listValueChange", "");
88
+ }
89
+ }
90
+ }
91
+ };
92
+ const valueChange = (data) => {
93
+ emit("listValueChange", data);
94
+ };
95
+ return {
96
+ ns,
97
+ inputClick,
98
+ editLabel,
99
+ saveLabel,
100
+ notSaveLabel,
101
+ handleDeleteOption,
102
+ valueChange
103
+ };
104
+ },
105
+ render() {
106
+ let _slot;
107
+ return createVNode("div", {
108
+ "class": "ibiz-control-toolbar__item"
109
+ }, [createVNode(resolveComponent("el-select"), {
110
+ "ref": "select",
111
+ "model-value": this.listValue,
112
+ "onChange": this.valueChange,
113
+ "clearable": true,
114
+ "placeholder": "\u9009\u62E9\u5BFC\u5165\u6A21\u5F0F",
115
+ "disabled": !(this.previewinfo[0] && this.previewinfo[0].length),
116
+ "popper-class": this.ns.e("dataimport-select")
117
+ }, _isSlot(_slot = this.options.map((item) => {
118
+ return createVNode(resolveComponent("el-option"), {
119
+ "label": item.label,
120
+ "value": item.value,
121
+ "class": [this.ns.e("select-option")]
122
+ }, {
123
+ default: () => createVNode("div", {
124
+ "class": [this.ns.e("select-option-item")]
125
+ }, [item.edit ? createVNode("span", null, [item.label]) : "", item.edit ? "" : createVNode(resolveComponent("el-input"), {
126
+ "model-value": item.label,
127
+ "onClick": (e) => this.inputClick(e),
128
+ "class": [this.ns.e("select-option-item-input")],
129
+ "onInput": (args) => {
130
+ item.label = args;
131
+ }
132
+ }, null), item.edit ? createVNode(resolveComponent("el-button"), {
133
+ "text": true,
134
+ "size": "small",
135
+ "onClick": (e) => this.editLabel(e, item)
136
+ }, {
137
+ default: () => [createTextVNode("\u7F16\u8F91")]
138
+ }) : "", item.checkmark ? createVNode(resolveComponent("el-button"), {
139
+ "size": "small",
140
+ "onClick": (e) => this.saveLabel(e, item)
141
+ }, {
142
+ default: () => [createVNode("ion-icon", {
143
+ "name": "checkmark-outline"
144
+ }, null)]
145
+ }) : "", item.close ? createVNode(resolveComponent("el-button"), {
146
+ "size": "small",
147
+ "onClick": (e) => this.notSaveLabel(e, item)
148
+ }, {
149
+ default: () => [createVNode("ion-icon", {
150
+ "name": "close-outline"
151
+ }, null)]
152
+ }) : "", createVNode(resolveComponent("el-button"), {
153
+ "text": true,
154
+ "size": "small",
155
+ "onClick": (e) => this.handleDeleteOption(e, item.value),
156
+ "class": this.ns.e("select-option-item-button-delete")
157
+ }, {
158
+ default: () => [createVNode("ion-icon", {
159
+ "name": "trash-outline",
160
+ "class": this.ns.e("select-option-item-button-delete-icon")
161
+ }, null)]
162
+ })])
163
+ });
164
+ })) ? _slot : {
165
+ default: () => [_slot]
166
+ })]);
167
+ }
168
+ });
169
+
170
+ export { DataImport2Select };
@@ -0,0 +1 @@
1
+ .ibiz-data-import2-table__template-container{height:100%}.ibiz-data-import2-table__empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ibiz-data-import2-table__dataimport-select{margin-top:-5px}.ibiz-data-import2-table__select{width:100%}.ibiz-data-import2-table__dataimport-table{border-spacing:var(--ibiz-spacing-none);border-collapse:collapse}.ibiz-data-import2-table__dataimpoer2-table-select{border:1px solid var(--ibiz-color-border);min-width:132px}.ibiz-data-import2-table__dataimport2-table-th{border:1px solid var(--ibiz-color-border);padding:var(--ibiz-spacing-extra-tight);min-width:132px}.ibiz-data-import2-table__dataimport2-table-td{border:1px solid var(--ibiz-color-border);padding:var(--ibiz-spacing-extra-tight);min-width:132px}
@@ -0,0 +1,56 @@
1
+ import { PropType } from 'vue';
2
+ import { IAppDEField, IDEDataImportItem } from '@ibiz/model-core';
3
+ import './data-import2-table.scss';
4
+ interface ISharedProperties {
5
+ logicName?: string;
6
+ caption?: string;
7
+ }
8
+ type DataOption = (IAppDEField & ISharedProperties) | (IDEDataImportItem & ISharedProperties);
9
+ export declare const DataImport2Table: import("vue").DefineComponent<{
10
+ previewinfo: {
11
+ type: PropType<[string[]]>;
12
+ required: true;
13
+ };
14
+ dataOption: {
15
+ type: PropType<DataOption[]>;
16
+ required: true;
17
+ };
18
+ selectValues: {
19
+ type: PropType<string[]>;
20
+ required: true;
21
+ };
22
+ columnMappingSave: {
23
+ type: BooleanConstructor;
24
+ required: true;
25
+ };
26
+ columnMap: {
27
+ type: PropType<Map<string, IData>>;
28
+ required: true;
29
+ };
30
+ }, {
31
+ ns: import("@ibiz-template/core").Namespace;
32
+ renderEmpty: () => JSX.Element;
33
+ renderTable: () => JSX.Element;
34
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
35
+ previewinfo: {
36
+ type: PropType<[string[]]>;
37
+ required: true;
38
+ };
39
+ dataOption: {
40
+ type: PropType<DataOption[]>;
41
+ required: true;
42
+ };
43
+ selectValues: {
44
+ type: PropType<string[]>;
45
+ required: true;
46
+ };
47
+ columnMappingSave: {
48
+ type: BooleanConstructor;
49
+ required: true;
50
+ };
51
+ columnMap: {
52
+ type: PropType<Map<string, IData>>;
53
+ required: true;
54
+ };
55
+ }>>, {}, {}>;
56
+ export {};
@@ -0,0 +1,104 @@
1
+ import { isVNode, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './data-import2-table.css';
4
+
5
+ "use strict";
6
+ function _isSlot(s) {
7
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
8
+ }
9
+ const DataImport2Table = /* @__PURE__ */ defineComponent({
10
+ name: "DataImport2Table",
11
+ props: {
12
+ previewinfo: {
13
+ type: Object,
14
+ required: true
15
+ },
16
+ dataOption: {
17
+ type: Object,
18
+ required: true
19
+ },
20
+ selectValues: {
21
+ type: Object,
22
+ required: true
23
+ },
24
+ columnMappingSave: {
25
+ type: Boolean,
26
+ required: true
27
+ },
28
+ columnMap: {
29
+ type: Object,
30
+ required: true
31
+ }
32
+ },
33
+ setup(props, {
34
+ emit
35
+ }) {
36
+ const ns = useNamespace("data-import2-table");
37
+ const renderSelect = (itemx, index) => {
38
+ let _slot;
39
+ const change = (item) => {
40
+ emit("selectValuesChange", index, item);
41
+ const data = props.columnMap.get(`${itemx}-${index}`);
42
+ if (data) {
43
+ data.name = item;
44
+ }
45
+ emit("columnMapChange", `${itemx}-${index}`, data);
46
+ emit("columnMappingSaveChange", false);
47
+ };
48
+ return createVNode(resolveComponent("el-select"), {
49
+ "modelValue": props.selectValues[index],
50
+ "placeholder": "\u9009\u62E9\u5F53\u524D\u5217\u5BF9\u5E94\u7684\u5BFC\u5165\u5C5E\u6027",
51
+ "onChange": change,
52
+ "key": index,
53
+ "popper-class": ns.e("dataimport-select"),
54
+ "class": ns.e("select")
55
+ }, _isSlot(_slot = props.dataOption.map((item) => {
56
+ return createVNode(resolveComponent("el-option"), {
57
+ "key": item.name,
58
+ "value": item.id,
59
+ "label": item.caption ? item.caption : item.logicName
60
+ }, null);
61
+ })) ? _slot : {
62
+ default: () => [_slot]
63
+ });
64
+ };
65
+ const renderTable = () => {
66
+ const arr = props.previewinfo;
67
+ const rows = arr.map((row, rowIndex) => createVNode("tr", {
68
+ "key": rowIndex
69
+ }, [row.map((cell, cellIndex) => rowIndex === 0 ? createVNode("th", {
70
+ "key": cellIndex,
71
+ "class": ns.e("dataimport2-table-th")
72
+ }, [cell]) : createVNode("td", {
73
+ "key": cellIndex,
74
+ "class": ns.e("dataimport2-table-td")
75
+ }, [cell]))]));
76
+ const newRows = [createVNode("tr", {
77
+ "key": "newRow"
78
+ }, [arr[0].map((item, index) => createVNode("td", {
79
+ "key": index,
80
+ "class": ns.e("dataimpoer2-table-select")
81
+ }, [renderSelect(item, index)]))]), ...rows];
82
+ return createVNode("table", {
83
+ "class": ns.e("dataimport-table")
84
+ }, [createVNode("tbody", null, [newRows])]);
85
+ };
86
+ const renderEmpty = () => {
87
+ return createVNode("div", {
88
+ "class": ns.e("empty")
89
+ }, [createTextVNode("\u6682\u65E0\u6570\u636E")]);
90
+ };
91
+ return {
92
+ ns,
93
+ renderEmpty,
94
+ renderTable
95
+ };
96
+ },
97
+ render() {
98
+ return createVNode("div", {
99
+ "class": [this.ns.e("template-container"), "ibiz-panel-view-content"]
100
+ }, [this.previewinfo[0] && this.previewinfo[0].length ? this.renderTable() : this.renderEmpty()]);
101
+ }
102
+ });
103
+
104
+ export { DataImport2Table };
@@ -13,6 +13,8 @@ import { IBizPagination } from './pagination/pagination.mjs';
13
13
  import { IBizSortBar } from './sort-bar/sort-bar.mjs';
14
14
  import { DataImport } from './data-import/data-import.mjs';
15
15
  import { DataImport2 } from './data-import2/data-import2.mjs';
16
+ import { DataImport2Table } from './data-import2-table/data-import2-table.mjs';
17
+ import { DataImport2Select } from './data-import2-select/data-import2-select.mjs';
16
18
 
17
19
  "use strict";
18
20
  const IBizCommonComponents = {
@@ -36,6 +38,8 @@ const IBizCommonComponents = {
36
38
  v.component(IBizSortBar.name, IBizSortBar);
37
39
  v.component(DataImport.name, DataImport);
38
40
  v.component(DataImport2.name, DataImport2);
41
+ v.component(DataImport2Table.name, DataImport2Table);
42
+ v.component(DataImport2Select.name, DataImport2Select);
39
43
  v.component(
40
44
  "IBizMapChart",
41
45
  defineAsyncComponent({
@@ -1,4 +1,4 @@
1
- import { isVNode, reactive, watch, resolveComponent, createTextVNode, createVNode, h, defineComponent } from 'vue';
1
+ import { isVNode, reactive, watch, resolveComponent, createTextVNode, createVNode, toRaw, h, defineComponent } from 'vue';
2
2
  import { FormMDCtrlRepeaterController, EditFormController } from '@ibiz-template/runtime';
3
3
  import { useNamespace, useCtx } from '@ibiz-template/vue3-util';
4
4
  import './repeater-grid.css';
@@ -164,7 +164,7 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
164
164
  const {
165
165
  $index
166
166
  } = opts;
167
- const formC = this.formControllers[$index];
167
+ const formC = toRaw(this.formControllers[$index]);
168
168
  if (!formC || !formC.state.isLoaded) {
169
169
  return createVNode("div", null, [createTextVNode("\u4E0D\u5B58\u5728\u6216\u52A0\u8F7D\u4E2D")]);
170
170
  }
@@ -10,7 +10,7 @@ import './grid-field-edit-column.css';
10
10
 
11
11
  "use strict";
12
12
  const GridFieldEditColumn = /* @__PURE__ */ defineComponent({
13
- name: "GridFieldEditColumn",
13
+ name: "IBizGridFieldEditColumn",
14
14
  props: {
15
15
  controller: {
16
16
  type: GridFieldEditColumnController,
@@ -9,7 +9,7 @@ var __publicField = (obj, key, value) => {
9
9
  };
10
10
  class GridFieldEditColumnProvider {
11
11
  constructor() {
12
- __publicField(this, "component", "GridFieldEditColumn");
12
+ __publicField(this, "component", "IBizGridFieldEditColumn");
13
13
  }
14
14
  async createController(columnModel, grid) {
15
15
  const c = new GridFieldEditColumnController(columnModel, grid);
@@ -1 +1 @@
1
- .ibiz-row-edit-popover{position:absolute;z-index:1;padding:9px 16px;background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-row-edit-popover.is-hidden{top:-9999px;left:-9999px;z-index:-9999}.ibiz-row-edit-popover::before{position:absolute;top:0;left:-50px;width:0;height:0;content:"";border-color:transparent var(--ibiz-control-grid-row-edit-bg-color) transparent transparent;border-style:solid;border-width:0 50px 50px 0}.ibiz-row-edit-popover::after{position:absolute;top:0;right:-50px;width:0;height:0;content:"";border-color:transparent transparent transparent var(--ibiz-control-grid-row-edit-bg-color);border-style:solid;border-width:0 0 50px 50px}.row-edit-popover__placeholder{height:50px}
1
+ .ibiz-row-edit-popover{position:absolute;z-index:2;padding:9px 16px;background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-row-edit-popover.is-hidden{top:-9999px;left:-9999px;z-index:-9999}.ibiz-row-edit-popover::before{position:absolute;top:0;left:-50px;width:0;height:0;content:"";border-color:transparent var(--ibiz-control-grid-row-edit-bg-color) transparent transparent;border-style:solid;border-width:0 50px 50px 0}.ibiz-row-edit-popover::after{position:absolute;top:0;right:-50px;width:0;height:0;content:"";border-color:transparent transparent transparent var(--ibiz-control-grid-row-edit-bg-color);border-style:solid;border-width:0 0 50px 50px}.row-edit-popover__placeholder{height:50px}
@@ -941,6 +941,7 @@ export declare const IBizTreeControl: import("@ibiz-template/vue3-util").TypeWit
941
941
  loadData: (item: IData, callback: (nodes: IData[]) => void) => Promise<void>;
942
942
  renderContextMenu: (nodeModel: import("@ibiz/model-core").IDETreeNode, nodeData: import("@ibiz-template/runtime").ITreeNodeData) => JSX.Element | undefined;
943
943
  updateNodeExpand: (data: IData, expanded: boolean) => void;
944
+ onInput: (value: string) => void;
944
945
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
945
946
  modelData: {
946
947
  type: import("vue").PropType<import("@ibiz/model-core").IDETree>;
@@ -1 +1 @@
1
- .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%;line-height:26px}.ibiz-control-treeview-node__icon{min-width:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}
1
+ .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);height:100%;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%;line-height:26px}.ibiz-control-treeview-node__icon{min-width:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-control-treeview-quick-search{margin-bottom:var(--ibiz-spacing-tight)}
@@ -961,6 +961,7 @@ export declare const TreeControl: import("vue").DefineComponent<{
961
961
  loadData: (item: IData, callback: (nodes: IData[]) => void) => Promise<void>;
962
962
  renderContextMenu: (nodeModel: IDETreeNode, nodeData: ITreeNodeData) => JSX.Element | undefined;
963
963
  updateNodeExpand: (data: IData, expanded: boolean) => void;
964
+ onInput: (value: string) => void;
964
965
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
965
966
  modelData: {
966
967
  type: PropType<IDETree>;
@@ -1,12 +1,16 @@
1
- import { ref, computed, watch, nextTick, resolveComponent, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
1
+ import { isVNode, ref, computed, watch, nextTick, resolveComponent, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { createUUID } from 'qx-util';
4
- import { TreeController } from '@ibiz-template/runtime';
4
+ import { debounce } from 'lodash-es';
5
+ import { TreeController, getControlPanel } from '@ibiz-template/runtime';
5
6
  import './tree.css';
6
7
  import { RuntimeError } from '@ibiz-template/core';
7
8
  import { useElTreeUtil, findNodeData } from './el-tree-util.mjs';
8
9
 
9
10
  "use strict";
11
+ function _isSlot(s) {
12
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
13
+ }
10
14
  const TreeControl = /* @__PURE__ */ defineComponent({
11
15
  name: "IBizTreeControl",
12
16
  props: {
@@ -278,6 +282,13 @@ const TreeControl = /* @__PURE__ */ defineComponent({
278
282
  }
279
283
  c.onExpandChange(nodeData, expanded);
280
284
  };
285
+ const debounceSearch = debounce(() => {
286
+ c.load();
287
+ }, 500);
288
+ const onInput = (value) => {
289
+ c.state.query = value;
290
+ debounceSearch();
291
+ };
281
292
  return {
282
293
  c,
283
294
  ns,
@@ -291,63 +302,102 @@ const TreeControl = /* @__PURE__ */ defineComponent({
291
302
  onNodeContextmenu,
292
303
  loadData,
293
304
  renderContextMenu,
294
- updateNodeExpand
305
+ updateNodeExpand,
306
+ onInput
295
307
  };
296
308
  },
297
309
  render() {
298
- return withDirectives(createVNode(resolveComponent("iBizControlBase"), {
299
- "controller": this.c
300
- }, {
301
- default: () => [this.c.state.isLoaded && this.treeRefreshKey && createVNode(resolveComponent("el-tree"), {
302
- "ref": "treeRef",
303
- "key": this.treeRefreshKey,
304
- "node-key": "id",
305
- "highlight-current": true,
306
- "expand-on-click-node": false,
307
- "auto-expand-parent": false,
308
- "show-checkbox": !this.c.state.singleSelect,
309
- "check-strictly": true,
310
- "default-expanded-keys": this.c.state.expandedKeys,
311
- "props": {
312
- label: "text",
313
- children: "children",
314
- isLeaf: "leaf"
315
- },
316
- "lazy": true,
317
- "load": this.loadData,
318
- "onCheck": this.onCheck,
319
- "onNodeExpand": (data) => {
320
- this.updateNodeExpand(data, true);
321
- },
322
- "onNodeCollapse": (data) => {
323
- this.updateNodeExpand(data, false);
310
+ const slots = {
311
+ searchbar: () => {
312
+ if (!this.c.enableQuickSearch) {
313
+ return null;
324
314
  }
325
- }, {
326
- default: ({
327
- data
328
- }) => {
329
- var _a;
330
- const nodeData = this.findNodeData(data.id, this.c);
331
- if (!nodeData) {
332
- return null;
315
+ return createVNode(resolveComponent("el-input"), {
316
+ "model-value": this.c.state.query,
317
+ "class": [this.ns.b("quick-search"), this.ns.b("quick-search")],
318
+ "placeholder": this.c.state.placeHolder,
319
+ "onInput": this.onInput
320
+ }, {
321
+ prefix: () => {
322
+ return createVNode("ion-icon", {
323
+ "class": this.ns.e("search-icon"),
324
+ "name": "search"
325
+ }, null);
333
326
  }
334
- const nodeModel = this.c.getNodeModel(nodeData.nodeId);
335
- return createVNode("div", {
336
- "onDblclick": (evt) => this.onNodeDbClick(nodeData, evt),
337
- "onClick": (evt) => this.onNodeClick(nodeData, evt),
338
- "onContextmenu": (evt) => this.onNodeContextmenu(nodeData, evt),
339
- "class": [this.ns.b("node"), (_a = nodeModel.sysCss) == null ? void 0 : _a.cssName]
340
- }, [nodeData.icon && createVNode(resolveComponent("iBizIcon"), {
341
- "class": this.ns.be("node", "icon"),
342
- "icon": nodeData.icon
343
- }, null), nodeData.textHtml ? createVNode("span", {
344
- "class": this.ns.be("node", "label"),
345
- "innerHTML": nodeData.textHtml
346
- }, null) : createVNode("span", {
347
- "class": this.ns.be("node", "label")
348
- }, [nodeData.text]), this.renderContextMenu(nodeModel, nodeData)]);
349
- }
350
- })]
327
+ });
328
+ }
329
+ };
330
+ const key = this.c.controlPanel ? "tree" : "default";
331
+ slots[key] = () => {
332
+ if (this.c.state.isLoaded && this.treeRefreshKey) {
333
+ return createVNode(resolveComponent("el-tree"), {
334
+ "ref": "treeRef",
335
+ "key": this.treeRefreshKey,
336
+ "node-key": "id",
337
+ "highlight-current": true,
338
+ "expand-on-click-node": false,
339
+ "auto-expand-parent": false,
340
+ "show-checkbox": !this.c.state.singleSelect,
341
+ "check-strictly": true,
342
+ "default-expanded-keys": this.c.state.expandedKeys,
343
+ "props": {
344
+ label: "text",
345
+ children: "children",
346
+ isLeaf: "leaf"
347
+ },
348
+ "lazy": true,
349
+ "load": this.loadData,
350
+ "onCheck": this.onCheck,
351
+ "onNodeExpand": (data) => {
352
+ this.updateNodeExpand(data, true);
353
+ },
354
+ "onNodeCollapse": (data) => {
355
+ this.updateNodeExpand(data, false);
356
+ }
357
+ }, {
358
+ default: ({
359
+ data
360
+ }) => {
361
+ var _a;
362
+ const nodeData = this.findNodeData(data.id, this.c);
363
+ if (!nodeData) {
364
+ return null;
365
+ }
366
+ const nodeModel = this.c.getNodeModel(nodeData.nodeId);
367
+ const layoutPanel = getControlPanel(nodeModel);
368
+ let content;
369
+ if (layoutPanel) {
370
+ content = createVNode(resolveComponent("iBizControlShell"), {
371
+ "data": nodeData,
372
+ "modelData": layoutPanel,
373
+ "context": this.c.context,
374
+ "params": this.c.params
375
+ }, null);
376
+ } else {
377
+ content = [nodeData.icon ? createVNode(resolveComponent("iBizIcon"), {
378
+ "class": this.ns.be("node", "icon"),
379
+ "icon": nodeData.icon
380
+ }, null) : null, nodeData.textHtml ? createVNode("span", {
381
+ "class": this.ns.be("node", "label"),
382
+ "innerHTML": nodeData.textHtml
383
+ }, null) : createVNode("span", {
384
+ "class": this.ns.be("node", "label")
385
+ }, [nodeData.text])];
386
+ }
387
+ return createVNode("div", {
388
+ "onDblclick": (evt) => this.onNodeDbClick(nodeData, evt),
389
+ "onClick": (evt) => this.onNodeClick(nodeData, evt),
390
+ "onContextmenu": (evt) => this.onNodeContextmenu(nodeData, evt),
391
+ "class": [this.ns.b("node"), (_a = nodeModel.sysCss) == null ? void 0 : _a.cssName]
392
+ }, [content, this.renderContextMenu(nodeModel, nodeData)]);
393
+ }
394
+ });
395
+ }
396
+ };
397
+ return withDirectives(createVNode(resolveComponent("iBizControlBase"), {
398
+ "controller": this.c
399
+ }, _isSlot(slots) ? slots : {
400
+ default: () => [slots]
351
401
  }), [[resolveDirective("loading"), this.c.state.isLoading]]);
352
402
  }
353
403
  });
@@ -83,7 +83,6 @@ import { MarkDownEditorProvider } from './markdown/markdown-editor.provider.mjs'
83
83
  import { ArrayEditorProvider } from './array/array-editor.provider.mjs';
84
84
  import { CascaderEditorProvider } from './cascader/cascader-editor.provider.mjs';
85
85
  import { ColorPickerEditorProvider } from './color-picker/color-picker-editor.provider.mjs';
86
- import { PresetRawitemEditorProvider } from './preset/preset-rawitem/preset-rawitem.provider.mjs';
87
86
 
88
87
  "use strict";
89
88
  const IBizEditor = {
@@ -288,12 +287,20 @@ const IBizEditor = {
288
287
  );
289
288
  registerEditorProvider(
290
289
  "FIELD_IMAGE_PICTURE_ONE",
291
- () => new PresetRawitemEditorProvider()
290
+ () => new FileUploaderEditorProvider("PICTURE_ONE")
291
+ );
292
+ registerEditorProvider(
293
+ "FIELD_IMAGE_PICTURE",
294
+ () => new FileUploaderEditorProvider("PICTURE")
292
295
  );
293
296
  registerEditorProvider(
294
297
  "FIELD_TEXT_DYNAMIC_SPAN",
295
298
  () => new SpanEditorProvider()
296
299
  );
300
+ registerEditorProvider(
301
+ "VIEW_PAGECAPTION_SPAN",
302
+ () => new SpanEditorProvider()
303
+ );
297
304
  registerEditorProvider("STATIC_LABEL_RAW", () => new RawEditorProvider());
298
305
  registerEditorProvider(
299
306
  "FIELD_TEXTBOX_TEXTBOX",
package/es/index.mjs CHANGED
@@ -94,7 +94,6 @@ export { IBizPanelButton } from './panel-component/panel-button/index.mjs';
94
94
  export { PanelAppTitleController } from './panel-component/panel-app-title/panel-app-title.controller.mjs';
95
95
  export { IBizPanelAppTitle } from './panel-component/panel-app-title/index.mjs';
96
96
  export { IBizPanelTabPanel } from './panel-component/panel-tab-panel/index.mjs';
97
- export { IBizPanelTabPage } from './panel-component/panel-tab-page/index.mjs';
98
97
  export { SplitContainerController } from './panel-component/split-container/split-container.controller.mjs';
99
98
  export { IBizSplitContainer } from './panel-component/split-container/index.mjs';
100
99
  export { IBizPanelIndexViewSearch } from './panel-component/panel-index-view-search/index.mjs';
@@ -4,7 +4,6 @@ export * from './nav-pos-index';
4
4
  export * from './panel-button';
5
5
  export * from './panel-app-title';
6
6
  export * from './panel-tab-panel';
7
- export * from './panel-tab-page';
8
7
  export * from './split-container';
9
8
  export * from './panel-index-view-search';
10
9
  export * from './index-actions';