@ibiz-template/vue3-components 0.7.40 → 0.7.41-alpha.0
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/dist/{index-8ZkS4CI0.js → index-4CBJktLS.js} +1 -1
- package/dist/{index-WNFQFxQd.js → index-QL7Ukex9.js} +1 -1
- package/dist/index-toTw1DLN.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{wang-editor-f_OOMd4x.js → wang-editor-GTNgz_em.js} +1 -1
- package/dist/{xlsx-util-3T0fByLw.js → xlsx-util-_sLiqD2S.js} +1 -1
- package/es/control/drbar/drbar.controller.mjs +4 -3
- package/es/control/grid/grid/grid-control.util.mjs +48 -2
- package/es/control/grid/row-edit-popover/row-edit-popover.css +1 -1
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/index.d.ts +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/index.mjs +3 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/icon.d.ts +2 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/icon.mjs +19 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/interface.d.ts +99 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/interface.mjs +89 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer-util.d.ts +17 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer-util.mjs +103 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.css +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.d.ts +182 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.mjs +146 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/icon.d.ts +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/icon.mjs +12 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/interface.d.ts +60 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/interface.mjs +52 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel-util.d.ts +14 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel-util.mjs +130 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel.css +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel.d.ts +108 -0
- package/es/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel.mjs +116 -0
- package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.css +1 -0
- package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +97 -0
- package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.mjs +279 -0
- package/es/editor/data-picker/index.d.ts +1 -0
- package/es/editor/data-picker/index.mjs +1 -0
- package/es/editor/data-picker/picker-editor.provider.mjs +3 -0
- package/es/editor/dropdown-list/dropdown-list-editor.provider.mjs +3 -0
- package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.css +1 -0
- package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +93 -0
- package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.mjs +292 -0
- package/es/editor/dropdown-list/index.d.ts +1 -0
- package/es/editor/dropdown-list/index.mjs +1 -0
- package/es/editor/index.mjs +12 -0
- package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +3 -0
- package/es/locale/en/index.d.ts +10 -0
- package/es/locale/en/index.mjs +10 -0
- package/es/locale/zh-CN/index.d.ts +10 -0
- package/es/locale/zh-CN/index.mjs +10 -0
- package/es/panel-component/app-switch/app-switch.controller.mjs +11 -1
- package/es/panel-component/panel-tab-panel/panel-tab-panel.css +1 -1
- package/es/panel-component/searchform-buttons/searchform-buttons.css +1 -1
- package/lib/control/drbar/drbar.controller.cjs +4 -3
- package/lib/control/grid/grid/grid-control.util.cjs +48 -2
- package/lib/control/grid/row-edit-popover/row-edit-popover.css +1 -1
- package/lib/editor/data-picker/ibiz-transfer-picker/components/index.cjs +7 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer/icon.cjs +22 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer/interface.cjs +99 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer-util.cjs +108 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.cjs +148 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.css +1 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/icon.cjs +14 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/interface.cjs +58 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel-util.cjs +133 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel.cjs +118 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/components/transfer-panel/transfer-panel.css +1 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.cjs +281 -0
- package/lib/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.css +1 -0
- package/lib/editor/data-picker/index.cjs +2 -0
- package/lib/editor/data-picker/picker-editor.provider.cjs +3 -0
- package/lib/editor/dropdown-list/dropdown-list-editor.provider.cjs +3 -0
- package/lib/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.cjs +294 -0
- package/lib/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.css +1 -0
- package/lib/editor/dropdown-list/index.cjs +2 -0
- package/lib/editor/index.cjs +12 -0
- package/lib/locale/en/index.cjs +10 -0
- package/lib/locale/zh-CN/index.cjs +10 -0
- package/lib/panel-component/app-switch/app-switch.controller.cjs +11 -1
- package/lib/panel-component/panel-tab-panel/panel-tab-panel.css +1 -1
- package/lib/panel-component/searchform-buttons/searchform-buttons.css +1 -1
- package/package.json +4 -4
- package/dist/index-azhHVxuV.js +0 -4
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { isVNode, ref, watch, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
|
|
2
|
+
import { getDropdownProps, getEditorEmits, useNamespace, useCodeListListen } from '@ibiz-template/vue3-util';
|
|
3
|
+
import { isArray, isString } from 'lodash-es';
|
|
4
|
+
import './ibiz-tree-picker.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 IBizTreePicker = /* @__PURE__ */ defineComponent({
|
|
11
|
+
name: "IBizTreePicker",
|
|
12
|
+
props: getDropdownProps(),
|
|
13
|
+
emits: getEditorEmits(),
|
|
14
|
+
setup(props, {
|
|
15
|
+
emit
|
|
16
|
+
}) {
|
|
17
|
+
const ns = useNamespace("tree-picker");
|
|
18
|
+
const c = props.controller;
|
|
19
|
+
const editorModel = c.model;
|
|
20
|
+
const items = ref([]);
|
|
21
|
+
const codeListItems = ref([]);
|
|
22
|
+
const isLoadedCodeList = ref(false);
|
|
23
|
+
const treeNodes = ref([]);
|
|
24
|
+
const defaultCheckedKeys = ref([]);
|
|
25
|
+
const isLoading = ref(false);
|
|
26
|
+
const codeItemValueNumber = ref(false);
|
|
27
|
+
const filterText = ref("");
|
|
28
|
+
const treeRef = ref();
|
|
29
|
+
const isCancel = ref(true);
|
|
30
|
+
const allExpand = ref(false);
|
|
31
|
+
const expandedKeys = ref([]);
|
|
32
|
+
const valueSeparator = c.model.valueSeparator || ",";
|
|
33
|
+
let showToolbar = false;
|
|
34
|
+
if (editorModel.editorParams) {
|
|
35
|
+
const {
|
|
36
|
+
editorParams
|
|
37
|
+
} = editorModel;
|
|
38
|
+
if (editorParams.showtoolbar)
|
|
39
|
+
showToolbar = editorParams.showtoolbar === "true";
|
|
40
|
+
}
|
|
41
|
+
const handleExpand = (_key, state) => {
|
|
42
|
+
var _a;
|
|
43
|
+
const treeNode = (_a = treeRef.value) == null ? void 0 : _a.getNode(_key);
|
|
44
|
+
if (treeNode.isLeaf)
|
|
45
|
+
return;
|
|
46
|
+
if (state) {
|
|
47
|
+
treeNode.expand();
|
|
48
|
+
} else {
|
|
49
|
+
treeNode.collapse();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const handleTreeNodes = (nodes) => {
|
|
53
|
+
if (nodes.length === 0) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const list = [];
|
|
57
|
+
nodes.forEach((codeItem) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const index = codeListItems.value.findIndex((_item) => {
|
|
60
|
+
return _item.value === codeItem.value;
|
|
61
|
+
});
|
|
62
|
+
if (index === -1) {
|
|
63
|
+
codeListItems.value.push(codeItem);
|
|
64
|
+
}
|
|
65
|
+
const tempObj = {
|
|
66
|
+
label: codeItem.text,
|
|
67
|
+
value: (_a = codeItem.value) == null ? void 0 : _a.toString(),
|
|
68
|
+
color: codeItem == null ? void 0 : codeItem.color,
|
|
69
|
+
textCls: codeItem == null ? void 0 : codeItem.textCls,
|
|
70
|
+
sysImage: codeItem.sysImage,
|
|
71
|
+
disabled: codeItem.disableSelect === true,
|
|
72
|
+
children: []
|
|
73
|
+
};
|
|
74
|
+
if (codeItem.children && codeItem.children.length > 0) {
|
|
75
|
+
tempObj.children = handleTreeNodes(codeItem.children);
|
|
76
|
+
}
|
|
77
|
+
list.push(tempObj);
|
|
78
|
+
});
|
|
79
|
+
return list;
|
|
80
|
+
};
|
|
81
|
+
const afterLoadCodeList = (codeList) => {
|
|
82
|
+
items.value = [];
|
|
83
|
+
codeListItems.value = [];
|
|
84
|
+
let tempCodeList = codeList;
|
|
85
|
+
if (c.multiple && !tempCodeList.some((item) => item.children)) {
|
|
86
|
+
tempCodeList = c.handleCodeListAllItems(tempCodeList);
|
|
87
|
+
}
|
|
88
|
+
items.value = tempCodeList;
|
|
89
|
+
for (let i = 0; i < items.value.length; i++) {
|
|
90
|
+
const _item = items.value[i];
|
|
91
|
+
if (_item.children) {
|
|
92
|
+
treeNodes.value = handleTreeNodes(tempCodeList);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const loadCodeList = async () => {
|
|
98
|
+
if (c.model.appCodeListId) {
|
|
99
|
+
const app = ibiz.hub.getApp(c.context.srfappid);
|
|
100
|
+
const codeListModel = app.codeList.getCodeList(c.model.appCodeListId);
|
|
101
|
+
if (codeListModel) {
|
|
102
|
+
codeItemValueNumber.value = codeListModel.codeItemValueNumber || false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
isLoading.value = true;
|
|
106
|
+
const codeList = await c.loadCodeList(props.data);
|
|
107
|
+
afterLoadCodeList(codeList);
|
|
108
|
+
isLoadedCodeList.value = true;
|
|
109
|
+
isLoading.value = false;
|
|
110
|
+
};
|
|
111
|
+
watch(() => props.value, async (newVal, oldVal) => {
|
|
112
|
+
if (newVal) {
|
|
113
|
+
let val = [];
|
|
114
|
+
if (!isLoadedCodeList.value && oldVal === void 0) {
|
|
115
|
+
await loadCodeList();
|
|
116
|
+
}
|
|
117
|
+
if (isArray(newVal)) {
|
|
118
|
+
val = newVal;
|
|
119
|
+
} else if (isString(newVal)) {
|
|
120
|
+
val = newVal.split(valueSeparator);
|
|
121
|
+
}
|
|
122
|
+
defaultCheckedKeys.value = val.filter((_key) => codeListItems.value.find((item) => item.value === _key && item.isLeaf));
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
immediate: true
|
|
126
|
+
});
|
|
127
|
+
const onChange = (values) => {
|
|
128
|
+
let selectArr = null;
|
|
129
|
+
if (c.model.valueType === "SIMPLES") {
|
|
130
|
+
selectArr = values;
|
|
131
|
+
} else {
|
|
132
|
+
selectArr = values.join(valueSeparator);
|
|
133
|
+
}
|
|
134
|
+
emit("change", selectArr);
|
|
135
|
+
};
|
|
136
|
+
const customNodeClass = (data) => {
|
|
137
|
+
return data.children.length ? ns.e("branch-node") : null;
|
|
138
|
+
};
|
|
139
|
+
const fn = (data) => {
|
|
140
|
+
if (data)
|
|
141
|
+
afterLoadCodeList(data);
|
|
142
|
+
};
|
|
143
|
+
useCodeListListen(c.model.appCodeListId, c.context.srfappid, fn);
|
|
144
|
+
onMounted(() => {
|
|
145
|
+
loadCodeList();
|
|
146
|
+
});
|
|
147
|
+
const filterNode = (value, data) => {
|
|
148
|
+
if (!value)
|
|
149
|
+
return true;
|
|
150
|
+
return data.label && data.label.includes(value);
|
|
151
|
+
};
|
|
152
|
+
watch(filterText, (val) => {
|
|
153
|
+
var _a;
|
|
154
|
+
(_a = treeRef.value) == null ? void 0 : _a.filter(val);
|
|
155
|
+
});
|
|
156
|
+
const handleExpandSwitch = (state = true) => {
|
|
157
|
+
codeListItems.value.forEach((item) => {
|
|
158
|
+
if (item.children && item.children.length > 0) {
|
|
159
|
+
handleExpand(item.value, state);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const onAllExpand = () => {
|
|
164
|
+
allExpand.value = true;
|
|
165
|
+
handleExpandSwitch();
|
|
166
|
+
};
|
|
167
|
+
const onAllCollapse = () => {
|
|
168
|
+
allExpand.value = false;
|
|
169
|
+
handleExpandSwitch(false);
|
|
170
|
+
};
|
|
171
|
+
const onAllSelect = () => {
|
|
172
|
+
var _a, _b;
|
|
173
|
+
const checkedKeys = (_a = codeListItems.value) == null ? void 0 : _a.map((item) => item.value);
|
|
174
|
+
handleExpandSwitch(allExpand.value);
|
|
175
|
+
(_b = treeRef.value) == null ? void 0 : _b.setCheckedKeys(checkedKeys);
|
|
176
|
+
onChange(checkedKeys);
|
|
177
|
+
};
|
|
178
|
+
const onAllCancel = () => {
|
|
179
|
+
var _a;
|
|
180
|
+
handleExpandSwitch(allExpand.value);
|
|
181
|
+
(_a = treeRef.value) == null ? void 0 : _a.setCheckedKeys([]);
|
|
182
|
+
onChange([]);
|
|
183
|
+
};
|
|
184
|
+
const onCheck = (...args) => {
|
|
185
|
+
if (args[1]) {
|
|
186
|
+
const {
|
|
187
|
+
checkedKeys,
|
|
188
|
+
halfCheckedKeys
|
|
189
|
+
} = args[1];
|
|
190
|
+
const combinedKeys = [...halfCheckedKeys, ...checkedKeys];
|
|
191
|
+
const filterArr = combinedKeys.filter((value, index, self) => {
|
|
192
|
+
return self.indexOf(value) === index;
|
|
193
|
+
});
|
|
194
|
+
onChange(filterArr);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
const onNodeExpand = (...args) => {
|
|
198
|
+
if (args[0] && args[0].value) {
|
|
199
|
+
expandedKeys.value.push(args[0].value);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
const onNodeCollapse = (...args) => {
|
|
203
|
+
if (args[0] && args[0].value) {
|
|
204
|
+
const index = expandedKeys.value.findIndex((_key) => args[0].value === _key);
|
|
205
|
+
if (index !== -1) {
|
|
206
|
+
expandedKeys.value.splice(index, 1);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
return {
|
|
211
|
+
ns,
|
|
212
|
+
c,
|
|
213
|
+
items,
|
|
214
|
+
treeRef,
|
|
215
|
+
filterText,
|
|
216
|
+
treeNodes,
|
|
217
|
+
isCancel,
|
|
218
|
+
defaultCheckedKeys,
|
|
219
|
+
expandedKeys,
|
|
220
|
+
showToolbar,
|
|
221
|
+
onNodeExpand,
|
|
222
|
+
onNodeCollapse,
|
|
223
|
+
filterNode,
|
|
224
|
+
customNodeClass,
|
|
225
|
+
onAllExpand,
|
|
226
|
+
onAllCollapse,
|
|
227
|
+
onAllSelect,
|
|
228
|
+
onAllCancel,
|
|
229
|
+
onCheck
|
|
230
|
+
};
|
|
231
|
+
},
|
|
232
|
+
render() {
|
|
233
|
+
const isReadonly = this.readonly || this.disabled;
|
|
234
|
+
const content = [createVNode("div", {
|
|
235
|
+
"class": [this.ns.e("search")]
|
|
236
|
+
}, [createVNode(resolveComponent("el-input"), {
|
|
237
|
+
"modelValue": this.filterText,
|
|
238
|
+
"onUpdate:modelValue": ($event) => this.filterText = $event,
|
|
239
|
+
"placeholder": this.c.placeHolder || " "
|
|
240
|
+
}, null)]), createVNode("div", {
|
|
241
|
+
"class": [this.ns.e("tree")]
|
|
242
|
+
}, [createVNode(resolveComponent("el-tree"), {
|
|
243
|
+
"ref": "treeRef",
|
|
244
|
+
"class": this.ns.b("tree"),
|
|
245
|
+
"data": this.treeNodes,
|
|
246
|
+
"node-key": "value",
|
|
247
|
+
"props": {
|
|
248
|
+
children: "children",
|
|
249
|
+
label: "label",
|
|
250
|
+
class: this.customNodeClass
|
|
251
|
+
},
|
|
252
|
+
"show-checkbox": !isReadonly,
|
|
253
|
+
"default-checked-keys": this.defaultCheckedKeys,
|
|
254
|
+
"default-expanded-keys": this.expandedKeys,
|
|
255
|
+
"filter-node-method": this.filterNode,
|
|
256
|
+
"onNodeExpand": this.onNodeExpand,
|
|
257
|
+
"onNodeCollapse": this.onNodeCollapse,
|
|
258
|
+
"onCheck": this.onCheck
|
|
259
|
+
}, null)])];
|
|
260
|
+
if (!isReadonly && this.showToolbar) {
|
|
261
|
+
let _slot, _slot2, _slot3, _slot4;
|
|
262
|
+
content.unshift(...[createVNode("div", {
|
|
263
|
+
"class": [this.ns.e("header")]
|
|
264
|
+
}, [createVNode(resolveComponent("el-button"), {
|
|
265
|
+
"type": "primary",
|
|
266
|
+
"onClick": this.onAllSelect
|
|
267
|
+
}, _isSlot(_slot = ibiz.i18n.t("editor.treePicker.allowAll")) ? _slot : {
|
|
268
|
+
default: () => [_slot]
|
|
269
|
+
}), createVNode(resolveComponent("el-button"), {
|
|
270
|
+
"type": "primary",
|
|
271
|
+
"onClick": this.onAllCancel
|
|
272
|
+
}, _isSlot(_slot2 = ibiz.i18n.t("editor.treePicker.allProhibited")) ? _slot2 : {
|
|
273
|
+
default: () => [_slot2]
|
|
274
|
+
}), createVNode(resolveComponent("el-button"), {
|
|
275
|
+
"type": "primary",
|
|
276
|
+
"onClick": this.onAllExpand
|
|
277
|
+
}, _isSlot(_slot3 = ibiz.i18n.t("editor.treePicker.expandAll")) ? _slot3 : {
|
|
278
|
+
default: () => [_slot3]
|
|
279
|
+
}), createVNode(resolveComponent("el-button"), {
|
|
280
|
+
"type": "primary",
|
|
281
|
+
"onClick": this.onAllCollapse
|
|
282
|
+
}, _isSlot(_slot4 = ibiz.i18n.t("editor.treePicker.collapseAll")) ? _slot4 : {
|
|
283
|
+
default: () => [_slot4]
|
|
284
|
+
})])]);
|
|
285
|
+
}
|
|
286
|
+
return createVNode("div", {
|
|
287
|
+
"class": [this.ns.b()]
|
|
288
|
+
}, [content]);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
export { IBizTreePicker };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { IBizDropdown } from './ibiz-dropdown/ibiz-dropdown';
|
|
2
2
|
export { IBizEmojiPicker } from './ibiz-emoji-picker/ibiz-emoji-picker';
|
|
3
3
|
export { IBizVirtualizedList } from './ibiz-virtualized-list/ibiz-virtualized-list';
|
|
4
|
+
export { IBizTreePicker } from './ibiz-tree-picker/ibiz-tree-picker';
|
|
4
5
|
export * from './dropdown-list-editor.controller';
|
|
5
6
|
export * from './dropdown-list-editor.provider';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { IBizDropdown } from './ibiz-dropdown/ibiz-dropdown.mjs';
|
|
2
2
|
export { IBizEmojiPicker } from './ibiz-emoji-picker/ibiz-emoji-picker.mjs';
|
|
3
3
|
export { IBizVirtualizedList } from './ibiz-virtualized-list/ibiz-virtualized-list.mjs';
|
|
4
|
+
export { IBizTreePicker } from './ibiz-tree-picker/ibiz-tree-picker.mjs';
|
|
4
5
|
export { DropDownListEditorController } from './dropdown-list-editor.controller.mjs';
|
|
5
6
|
export { DropDownListEditorProvider } from './dropdown-list-editor.provider.mjs';
|
|
6
7
|
|
package/es/editor/index.mjs
CHANGED
|
@@ -38,6 +38,7 @@ import { IBizInputNumber } from './text-box/ibiz-input-number/ibiz-input-number.
|
|
|
38
38
|
import { IBizInputIP } from './text-box/ibiz-input-ip/ibiz-input-ip.mjs';
|
|
39
39
|
import { IBizDropdown } from './dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs';
|
|
40
40
|
import { IBizEmojiPicker } from './dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs';
|
|
41
|
+
import { IBizTreePicker } from './dropdown-list/ibiz-tree-picker/ibiz-tree-picker.mjs';
|
|
41
42
|
import { IBizCheckbox } from './check-box/ibiz-checkbox/ibiz-checkbox.mjs';
|
|
42
43
|
import { IBizCheckboxList } from './check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs';
|
|
43
44
|
import { IBizRadio } from './radio-button-list/ibiz-radio/ibiz-radio.mjs';
|
|
@@ -59,6 +60,7 @@ import { IBizPickerDropDown } from './data-picker/ibiz-picker-dropdown/ibiz-pick
|
|
|
59
60
|
import { IBizPickerLink } from './data-picker/ibiz-picker-link/ibiz-picker-link.mjs';
|
|
60
61
|
import { IBizPickerEmbedView } from './data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.mjs';
|
|
61
62
|
import { IBizPickerSelectView } from './data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs';
|
|
63
|
+
import { IBizTransferPicker } from './data-picker/ibiz-transfer-picker/ibiz-transfer-picker.mjs';
|
|
62
64
|
import { IBizNumberRangePicker } from './number-range/ibiz-number-range-picker/ibiz-number-range-picker.mjs';
|
|
63
65
|
import { IBizDateRangePicker } from './date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs';
|
|
64
66
|
import { IBizCode } from './code/monaco-editor/monaco-editor.mjs';
|
|
@@ -112,6 +114,7 @@ const IBizEditor = {
|
|
|
112
114
|
v.component(IBizInputIP.name, IBizInputIP);
|
|
113
115
|
v.component(IBizDropdown.name, IBizDropdown);
|
|
114
116
|
v.component(IBizEmojiPicker.name, IBizEmojiPicker);
|
|
117
|
+
v.component(IBizTreePicker.name, IBizTreePicker);
|
|
115
118
|
v.component(IBizCheckbox.name, IBizCheckbox);
|
|
116
119
|
v.component(IBizCheckboxList.name, IBizCheckboxList);
|
|
117
120
|
v.component(IBizRadio.name, IBizRadio);
|
|
@@ -133,6 +136,7 @@ const IBizEditor = {
|
|
|
133
136
|
v.component(IBizPickerLink.name, IBizPickerLink);
|
|
134
137
|
v.component(IBizPickerEmbedView.name, IBizPickerEmbedView);
|
|
135
138
|
v.component(IBizPickerSelectView.name, IBizPickerSelectView);
|
|
139
|
+
v.component(IBizTransferPicker.name, IBizTransferPicker);
|
|
136
140
|
v.component(IBizNumberRangePicker.name, IBizNumberRangePicker);
|
|
137
141
|
v.component(IBizDateRangePicker.name, IBizDateRangePicker);
|
|
138
142
|
v.component(IBizCode.name, IBizCode);
|
|
@@ -205,6 +209,10 @@ const IBizEditor = {
|
|
|
205
209
|
"DROPDOWNLIST_EMOJI_PICKER",
|
|
206
210
|
() => new DropDownListEditorProvider("EMOJI_PICKER")
|
|
207
211
|
);
|
|
212
|
+
registerEditorProvider(
|
|
213
|
+
"MDROPDOWNLIST_TREE_PICKER",
|
|
214
|
+
() => new DropDownListEditorProvider("TREE_PICKER")
|
|
215
|
+
);
|
|
208
216
|
registerEditorProvider(
|
|
209
217
|
"DROPDOWNLIST_VIRTUALIZED_LIST",
|
|
210
218
|
() => new DropDownListEditorProvider("VIRTUALIZED_LIST")
|
|
@@ -317,6 +325,10 @@ const IBizEditor = {
|
|
|
317
325
|
"PICKER",
|
|
318
326
|
() => new DataPickerEditorProvider("PICKER")
|
|
319
327
|
);
|
|
328
|
+
registerEditorProvider(
|
|
329
|
+
"PICKER_TRANSFER_PICKER",
|
|
330
|
+
() => new DataPickerEditorProvider("TRANSFER_PICKER")
|
|
331
|
+
);
|
|
320
332
|
registerEditorProvider(
|
|
321
333
|
"PICKEREX_NOAC",
|
|
322
334
|
() => new DataPickerEditorProvider("PICKEREX_NOAC")
|
|
@@ -8,6 +8,7 @@ import { RateEditorController } from '../rate-editor.controller';
|
|
|
8
8
|
* @editorparams {name:showText,parameterType:boolean,defaultvalue:false,description:el-rate组件的showText属性,是否显示辅助文字,值为 true 时会在右侧显示辅助文字}
|
|
9
9
|
* @editorparams {name:maxvalue,parameterType:number,defaultvalue:5,description:el-rate组件的max属性,设置允许的最大分值}
|
|
10
10
|
* @editorparams {name:texts,parameterType:string[],defaultvalue:[],description:el-rate组件的texts属性,辅助文字数组}
|
|
11
|
+
* @editorparams {"name":"colors","parameterType":"string[]","defaultvalue":"[]","description":"设置评分不同阶段展示的颜色,传入数组,共有 3 个元素,为 3 个分段所对应的颜色。示例配置:[\"#99A9BF\",\"#F7BA2A\",\"#FF9900\"]"}
|
|
11
12
|
* @ignoreprops autoFocus | overflowMode
|
|
12
13
|
* @ignoreemits blur | focus | enter | infoTextChange
|
|
13
14
|
*/
|
|
@@ -22,6 +23,7 @@ export declare const IBizRate: import("vue").DefineComponent<{
|
|
|
22
23
|
* @editorparams {name:showText,parameterType:boolean,defaultvalue:false,description:el-rate组件的showText属性,是否显示辅助文字,值为 true 时会在右侧显示辅助文字}
|
|
23
24
|
* @editorparams {name:maxvalue,parameterType:number,defaultvalue:5,description:el-rate组件的max属性,设置允许的最大分值}
|
|
24
25
|
* @editorparams {name:texts,parameterType:string[],defaultvalue:[],description:el-rate组件的texts属性,辅助文字数组}
|
|
26
|
+
* @editorparams {"name":"colors","parameterType":"string[]","defaultvalue":"[]","description":"设置评分不同阶段展示的颜色,传入数组,共有 3 个元素,为 3 个分段所对应的颜色。示例配置:[\"#99A9BF\",\"#F7BA2A\",\"#FF9900\"]"}
|
|
25
27
|
* @ignoreprops autoFocus | overflowMode
|
|
26
28
|
* @ignoreemits blur | focus | enter | infoTextChange
|
|
27
29
|
*/
|
|
@@ -71,6 +73,7 @@ export declare const IBizRate: import("vue").DefineComponent<{
|
|
|
71
73
|
* @editorparams {name:showText,parameterType:boolean,defaultvalue:false,description:el-rate组件的showText属性,是否显示辅助文字,值为 true 时会在右侧显示辅助文字}
|
|
72
74
|
* @editorparams {name:maxvalue,parameterType:number,defaultvalue:5,description:el-rate组件的max属性,设置允许的最大分值}
|
|
73
75
|
* @editorparams {name:texts,parameterType:string[],defaultvalue:[],description:el-rate组件的texts属性,辅助文字数组}
|
|
76
|
+
* @editorparams {"name":"colors","parameterType":"string[]","defaultvalue":"[]","description":"设置评分不同阶段展示的颜色,传入数组,共有 3 个元素,为 3 个分段所对应的颜色。示例配置:[\"#99A9BF\",\"#F7BA2A\",\"#FF9900\"]"}
|
|
74
77
|
* @ignoreprops autoFocus | overflowMode
|
|
75
78
|
* @ignoreemits blur | focus | enter | infoTextChange
|
|
76
79
|
*/
|
package/es/locale/en/index.d.ts
CHANGED
|
@@ -1404,6 +1404,16 @@ declare const _default: {
|
|
|
1404
1404
|
title: string;
|
|
1405
1405
|
searchPlaceholder: string;
|
|
1406
1406
|
};
|
|
1407
|
+
transferPicker: {
|
|
1408
|
+
optionalList: string;
|
|
1409
|
+
selectedList: string;
|
|
1410
|
+
};
|
|
1411
|
+
treePicker: {
|
|
1412
|
+
allowAll: string;
|
|
1413
|
+
allProhibited: string;
|
|
1414
|
+
expandAll: string;
|
|
1415
|
+
collapseAll: string;
|
|
1416
|
+
};
|
|
1407
1417
|
};
|
|
1408
1418
|
panelComponent: {
|
|
1409
1419
|
authUserinfo: {
|
package/es/locale/en/index.mjs
CHANGED
|
@@ -678,6 +678,16 @@ var index = {
|
|
|
678
678
|
mapPicker: {
|
|
679
679
|
title: "Please select an address",
|
|
680
680
|
searchPlaceholder: "Please enter a keyword to select a location"
|
|
681
|
+
},
|
|
682
|
+
transferPicker: {
|
|
683
|
+
optionalList: "Optional list",
|
|
684
|
+
selectedList: "Selected list"
|
|
685
|
+
},
|
|
686
|
+
treePicker: {
|
|
687
|
+
allowAll: "Allow all",
|
|
688
|
+
allProhibited: "All prohibited",
|
|
689
|
+
expandAll: "Expand all",
|
|
690
|
+
collapseAll: "Collapse all"
|
|
681
691
|
}
|
|
682
692
|
},
|
|
683
693
|
panelComponent: {
|
|
@@ -1399,6 +1399,16 @@ declare const _default: {
|
|
|
1399
1399
|
title: string;
|
|
1400
1400
|
searchPlaceholder: string;
|
|
1401
1401
|
};
|
|
1402
|
+
transferPicker: {
|
|
1403
|
+
optionalList: string;
|
|
1404
|
+
selectedList: string;
|
|
1405
|
+
};
|
|
1406
|
+
treePicker: {
|
|
1407
|
+
allowAll: string;
|
|
1408
|
+
allProhibited: string;
|
|
1409
|
+
expandAll: string;
|
|
1410
|
+
collapseAll: string;
|
|
1411
|
+
};
|
|
1402
1412
|
};
|
|
1403
1413
|
panelComponent: {
|
|
1404
1414
|
authUserinfo: {
|
|
@@ -674,6 +674,16 @@ var index = {
|
|
|
674
674
|
mapPicker: {
|
|
675
675
|
title: "\u8BF7\u9009\u62E9\u5730\u5740",
|
|
676
676
|
searchPlaceholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u9009\u62E9\u5730\u70B9"
|
|
677
|
+
},
|
|
678
|
+
transferPicker: {
|
|
679
|
+
optionalList: "\u53EF\u9009\u5217\u8868",
|
|
680
|
+
selectedList: "\u5DF2\u9009\u5217\u8868"
|
|
681
|
+
},
|
|
682
|
+
treePicker: {
|
|
683
|
+
allowAll: "\u5168\u90E8\u5141\u8BB8",
|
|
684
|
+
allProhibited: "\u5168\u90E8\u7981\u6B62",
|
|
685
|
+
expandAll: "\u5168\u90E8\u5C55\u5F00",
|
|
686
|
+
collapseAll: "\u5168\u90E8\u6536\u8D77"
|
|
677
687
|
}
|
|
678
688
|
},
|
|
679
689
|
panelComponent: {
|
|
@@ -145,7 +145,7 @@ class AppSwitchController extends PanelItemController {
|
|
|
145
145
|
async loadAppsWithUtil() {
|
|
146
146
|
const result = [];
|
|
147
147
|
if (!this.util) {
|
|
148
|
-
const app = ibiz.hub.getApp(
|
|
148
|
+
const app = ibiz.hub.getApp(ibiz.env.appId);
|
|
149
149
|
const hubAppUtil = app.getAppUtil("HUBAPP", "CUSTOM");
|
|
150
150
|
if (!hubAppUtil) {
|
|
151
151
|
return result;
|
|
@@ -156,7 +156,17 @@ class AppSwitchController extends PanelItemController {
|
|
|
156
156
|
if (!data || data.length === 0) {
|
|
157
157
|
return result;
|
|
158
158
|
}
|
|
159
|
+
const defaultAppModel = ibiz.hub.getAppSourceModel(ibiz.env.appId);
|
|
160
|
+
const allPSSubAppRefs = defaultAppModel.getAllPSSubAppRefs;
|
|
159
161
|
for (let i = 0; i < data.length; i++) {
|
|
162
|
+
if (data[i].id !== ibiz.env.appId && !/^[0-9a-zA-Z]+__[0-9a-zA-Z]+__[0-9a-zA-Z]+$/.test(data[i].id)) {
|
|
163
|
+
const targetSubAppRef = allPSSubAppRefs.find((subAppRef) => {
|
|
164
|
+
return subAppRef.id.endsWith(data[i].id);
|
|
165
|
+
});
|
|
166
|
+
if (targetSubAppRef) {
|
|
167
|
+
data[i].id = targetSubAppRef.id;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
160
170
|
result.push({
|
|
161
171
|
// 应用标识@首页视图标识
|
|
162
172
|
id: "".concat(data[i].id, "@").concat(data[i].indexViewName.toLowerCase()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-panel-tab-panel{width:100%;height:100%}.ibiz-panel-tab-panel>.el-tabs__header{margin-bottom:0}.ibiz-panel-tab-panel>.el-tabs__content{height:calc(100% - var(--el-tabs-header-height));overflow:auto}
|
|
1
|
+
.ibiz-panel-tab-panel{width:100%;height:100%}.ibiz-panel-tab-panel>.el-tabs__header{height:var(--el-tabs-header-height);margin-bottom:0}.ibiz-panel-tab-panel>.el-tabs__content{height:calc(100% - var(--el-tabs-header-height));overflow:auto}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-searchform-buttons{--ibiz-searchform-buttons-height:40px;display:flex;gap:var(--ibiz-spacing-tight);align-items:center;height:var(--ibiz-searchform-buttons-height);margin
|
|
1
|
+
.ibiz-searchform-buttons{--ibiz-searchform-buttons-height:40px;display:flex;gap:var(--ibiz-spacing-tight);align-items:center;height:var(--ibiz-searchform-buttons-height);margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-extra-tight) 0 var(--ibiz-spacing-tight)}.ibiz-searchform-buttons .el-button+.el-button{margin-left:0}.ibiz-searchform-buttons-filter-item{position:relative}.ibiz-searchform-buttons-filter-item__text{padding-right:var(--ibiz-spacing-extra-tight)}.ibiz-searchform-buttons-filter-item__remove{position:absolute;top:var(--ibiz-spacing-base-tight);right:0;display:none;font-size:var(--ibiz-font-size-header-5)}.ibiz-searchform-buttons-filter-item:hover .ibiz-searchform-buttons-filter-item__remove{display:block}
|
|
@@ -303,6 +303,7 @@ class DRBarController extends runtime.ControlController {
|
|
|
303
303
|
* @memberof DRBarController
|
|
304
304
|
*/
|
|
305
305
|
initDRBarItems() {
|
|
306
|
+
var _a;
|
|
306
307
|
const { dedrctrlItems, dedrbarGroups } = this.model;
|
|
307
308
|
const drBarItems = [];
|
|
308
309
|
if (!this.state.hideEditItem) {
|
|
@@ -324,7 +325,7 @@ class DRBarController extends runtime.ControlController {
|
|
|
324
325
|
caption,
|
|
325
326
|
disabled: false,
|
|
326
327
|
sysImage: editItemSysImage,
|
|
327
|
-
fullPath: this.router.currentRoute.value.fullPath
|
|
328
|
+
fullPath: (_a = this.router) == null ? void 0 : _a.currentRoute.value.fullPath
|
|
328
329
|
});
|
|
329
330
|
this.state.defaultItem = uniqueTag;
|
|
330
331
|
}
|
|
@@ -356,11 +357,11 @@ class DRBarController extends runtime.ControlController {
|
|
|
356
357
|
});
|
|
357
358
|
} else {
|
|
358
359
|
dedrbarGroups.forEach((group) => {
|
|
359
|
-
var
|
|
360
|
+
var _a2;
|
|
360
361
|
const groupItems = dedrctrlItems.filter(
|
|
361
362
|
(item) => item.dedrbarGroupId === group.id
|
|
362
363
|
);
|
|
363
|
-
if (groupItems.length > 1 || ((
|
|
364
|
+
if (groupItems.length > 1 || ((_a2 = this.controlParams) == null ? void 0 : _a2.singleitemgroup) === "true" && groupItems.length === 1) {
|
|
364
365
|
let itemCaption = group.caption;
|
|
365
366
|
if (group.capLanguageRes) {
|
|
366
367
|
itemCaption = ibiz.i18n.t(
|
|
@@ -511,11 +511,57 @@ function useAppGridBase(c, props) {
|
|
|
511
511
|
}
|
|
512
512
|
return state.rows.map((row) => row.data);
|
|
513
513
|
});
|
|
514
|
+
const calcGroupColumns = (groupColumn) => {
|
|
515
|
+
const result = { ...groupColumn };
|
|
516
|
+
const columns = [];
|
|
517
|
+
const degridColumns = groupColumn.degridColumns || [];
|
|
518
|
+
degridColumns.forEach((column) => {
|
|
519
|
+
var _a, _b;
|
|
520
|
+
if (column.columnType === "GROUPGRIDCOLUMN") {
|
|
521
|
+
const children = calcGroupColumns(column);
|
|
522
|
+
if (children.degridColumns && children.degridColumns.length) {
|
|
523
|
+
columns.push(children);
|
|
524
|
+
}
|
|
525
|
+
} else {
|
|
526
|
+
const columnState = c.state.columnStates.find(
|
|
527
|
+
(item) => item.key === column.codeName
|
|
528
|
+
);
|
|
529
|
+
if (columnState && !columnState.hidden) {
|
|
530
|
+
const columnModel = ((_a = c.fieldColumns[columnState.key]) == null ? void 0 : _a.model) || ((_b = c.uaColumns[columnState.key]) == null ? void 0 : _b.model);
|
|
531
|
+
if (columnModel) {
|
|
532
|
+
columns.push(columnModel);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
result.degridColumns = columns;
|
|
538
|
+
return result;
|
|
539
|
+
};
|
|
514
540
|
const renderColumns = vue.computed(() => {
|
|
541
|
+
const columns = [];
|
|
515
542
|
if (c.isMultistageHeader) {
|
|
516
|
-
|
|
543
|
+
const degridColumns = c.model.degridColumns || [];
|
|
544
|
+
degridColumns.forEach((column) => {
|
|
545
|
+
var _a, _b;
|
|
546
|
+
if (column.columnType === "GROUPGRIDCOLUMN") {
|
|
547
|
+
const groupColumn = calcGroupColumns(column);
|
|
548
|
+
if (groupColumn.degridColumns && groupColumn.degridColumns.length) {
|
|
549
|
+
columns.push(groupColumn);
|
|
550
|
+
}
|
|
551
|
+
} else {
|
|
552
|
+
const columnState = c.state.columnStates.find(
|
|
553
|
+
(item) => item.key === column.codeName
|
|
554
|
+
);
|
|
555
|
+
if (columnState && !columnState.hidden) {
|
|
556
|
+
const columnModel = ((_a = c.fieldColumns[columnState.key]) == null ? void 0 : _a.model) || ((_b = c.uaColumns[columnState.key]) == null ? void 0 : _b.model);
|
|
557
|
+
if (columnModel) {
|
|
558
|
+
columns.push(columnModel);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
|
+
return columns;
|
|
517
564
|
}
|
|
518
|
-
const columns = [];
|
|
519
565
|
c.state.columnStates.forEach((item) => {
|
|
520
566
|
var _a, _b;
|
|
521
567
|
if (item.hidden) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-row-edit-popover{position:absolute;z-index:2;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);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:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);white-space:nowrap;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}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
const arrowLeft = () => vue.createVNode("svg", {
|
|
7
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
8
|
+
"viewBox": "0 0 1024 1024"
|
|
9
|
+
}, [vue.createVNode("path", {
|
|
10
|
+
"fill": "currentColor",
|
|
11
|
+
"d": "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"
|
|
12
|
+
}, null)]);
|
|
13
|
+
const arrowRight = () => vue.createVNode("svg", {
|
|
14
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
15
|
+
"viewBox": "0 0 1024 1024"
|
|
16
|
+
}, [vue.createVNode("path", {
|
|
17
|
+
"fill": "currentColor",
|
|
18
|
+
"d": "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
|
|
19
|
+
}, null)]);
|
|
20
|
+
|
|
21
|
+
exports.arrowLeft = arrowLeft;
|
|
22
|
+
exports.arrowRight = arrowRight;
|