resolver-egretimp-plus 0.0.239 → 0.0.241
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/h5/index.js +2 -2
- package/dist/theme/element/index.css +1 -1
- package/dist/theme/element/src/components/form.scss +3 -0
- package/dist/web/index.js +28 -28
- package/package.json +1 -1
- package/src/components/childDialog/src/index.vue +6 -0
- package/src/components/helper/eventOrchestration.js +1 -0
- package/src/components/icons/date.vue +33 -0
- package/src/components/packages-H5/CmiButton.vue +2 -0
- package/src/components/packages-web/CustomComponentTable.jsx +3 -1
- package/src/components/packages-web/ElButton.vue +2 -0
- package/src/components/packages-web/ElDatePicker.vue +5 -1
- package/src/hooks/pageConfig.js +2 -0
- package/src/index.jsx +9 -1
- package/src/resolver-common.vue +1 -0
- package/src/theme/element/components/form.scss +3 -0
- package/src/utils/render.jsx +10 -6
package/package.json
CHANGED
|
@@ -48,6 +48,11 @@ const props = defineProps({
|
|
|
48
48
|
type: Object,
|
|
49
49
|
default: () => ({})
|
|
50
50
|
},
|
|
51
|
+
parentDynamicMapComp: {
|
|
52
|
+
type: Object,
|
|
53
|
+
default: () => ({})
|
|
54
|
+
},
|
|
55
|
+
|
|
51
56
|
selectionsObj: {
|
|
52
57
|
type: Object,
|
|
53
58
|
// selections
|
|
@@ -133,6 +138,7 @@ defineExpose({
|
|
|
133
138
|
@rootStoreChange="rootStoreChange"
|
|
134
139
|
v-model="formData"
|
|
135
140
|
:parentRootValue="props.parentRootValue"
|
|
141
|
+
:parentDynamicMapComp="props.parentDynamicMapComp"
|
|
136
142
|
:selectionsObj="props.selectionsObj"
|
|
137
143
|
:busiIdentityId="busiIdentityId"
|
|
138
144
|
:lang="props.lang"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
5
|
+
fill="none"
|
|
6
|
+
version="1.1"
|
|
7
|
+
width="39"
|
|
8
|
+
height="39"
|
|
9
|
+
viewBox="0 0 39 39"
|
|
10
|
+
>
|
|
11
|
+
<g>
|
|
12
|
+
<g>
|
|
13
|
+
<path
|
|
14
|
+
d="M11.8929,0L12.1071,0C12.8764,0,13.5,0.623603,13.5,1.39286L13.5,3L25.5,3L25.5,1.39286C25.5,0.623603,26.1236,0,26.8929,0L27.1071,0C27.8764,0,28.5,0.623603,28.5,1.39286L28.5,3L34.5,3Q34.6105,3,34.7208,3.00542Q34.8311,3.01084,34.9411,3.02167Q35.051,3.0325,35.1603,3.04871Q35.2696,3.06492,35.3779,3.08647Q35.4862,3.10802,35.5934,3.13486Q35.7006,3.1617,35.8063,3.19377Q35.912,3.22584,36.016,3.26305Q36.12,3.30027,36.2221,3.34254Q36.3241,3.38482,36.424,3.43205Q36.5239,3.47928,36.6213,3.53135Q36.7187,3.58343,36.8135,3.64022Q36.9082,3.69701,37.0001,3.75839Q37.0919,3.81976,37.1806,3.88557Q37.2694,3.95137,37.3548,4.02145Q37.4402,4.09153,37.522,4.16572Q37.6039,4.23991,37.682,4.31802Q37.7601,4.39613,37.8343,4.47798Q37.9085,4.55984,37.9785,4.64523Q38.0486,4.73062,38.1144,4.81935Q38.1802,4.90808,38.2416,4.99993Q38.303,5.09178,38.3598,5.18654Q38.4166,5.28129,38.4686,5.37871Q38.5207,5.47614,38.5679,5.576Q38.6152,5.67586,38.6575,5.77792Q38.6997,5.87998,38.7369,5.984Q38.7742,6.08801,38.8062,6.19372Q38.8383,6.29943,38.8651,6.40659Q38.892,6.51375,38.9135,6.62209Q38.9351,6.73044,38.9513,6.83971Q38.9675,6.94899,38.9783,7.05892Q38.9892,7.16886,38.9946,7.2792Q39,7.38953,39,7.5L39,34.5Q39,34.6105,38.9946,34.7208Q38.9892,34.8311,38.9783,34.9411Q38.9675,35.051,38.9513,35.1603Q38.9351,35.2696,38.9135,35.3779Q38.892,35.4862,38.8651,35.5934Q38.8383,35.7006,38.8062,35.8063Q38.7742,35.912,38.7369,36.016Q38.6997,36.12,38.6575,36.2221Q38.6152,36.3241,38.5679,36.424Q38.5207,36.5239,38.4686,36.6213Q38.4166,36.7187,38.3598,36.8135Q38.303,36.9082,38.2416,37.0001Q38.1802,37.0919,38.1144,37.1806Q38.0486,37.2694,37.9785,37.3548Q37.9085,37.4402,37.8343,37.522Q37.7601,37.6039,37.682,37.682Q37.6039,37.7601,37.522,37.8343Q37.4402,37.9085,37.3548,37.9785Q37.2694,38.0486,37.1806,38.1144Q37.0919,38.1802,37.0001,38.2416Q36.9082,38.303,36.8135,38.3598Q36.7187,38.4166,36.6213,38.4686Q36.5238,38.5207,36.424,38.5679Q36.3241,38.6152,36.2221,38.6575Q36.12,38.6997,36.016,38.7369Q35.912,38.7742,35.8063,38.8062Q35.7006,38.8383,35.5934,38.8651Q35.4862,38.892,35.3779,38.9135Q35.2696,38.9351,35.1603,38.9513Q35.051,38.9675,34.9411,38.9783Q34.8311,38.9892,34.7208,38.9946Q34.6105,39,34.5,39L4.5,39Q4.38953,39,4.2792,38.9946Q4.16886,38.9892,4.05892,38.9783Q3.94899,38.9675,3.83971,38.9513Q3.73044,38.9351,3.62209,38.9135Q3.51375,38.892,3.40659,38.8651Q3.29943,38.8383,3.19372,38.8062Q3.08801,38.7742,2.984,38.7369Q2.87998,38.6997,2.77792,38.6575Q2.67586,38.6152,2.576,38.5679Q2.47614,38.5207,2.37871,38.4686Q2.28129,38.4166,2.18654,38.3598Q2.09179,38.303,1.99993,38.2416Q1.90808,38.1802,1.81935,38.1144Q1.73062,38.0486,1.64523,37.9785Q1.55984,37.9085,1.47798,37.8343Q1.39613,37.7601,1.31802,37.682Q1.23991,37.6039,1.16572,37.522Q1.09153,37.4402,1.02145,37.3548Q0.951372,37.2694,0.885566,37.1806Q0.81976,37.0919,0.758387,37.0001Q0.697013,36.9082,0.640221,36.8135Q0.583429,36.7187,0.531354,36.6213Q0.47928,36.5238,0.432048,36.424Q0.384817,36.3241,0.342542,36.2221Q0.300267,36.12,0.263052,36.016Q0.225836,35.912,0.193768,35.8063Q0.161701,35.7006,0.134859,35.5934Q0.108018,35.4862,0.0864662,35.3779Q0.0649148,35.2696,0.0487057,35.1603Q0.0324966,35.051,0.0216687,34.9411Q0.0108409,34.8311,0.00542045,34.7208Q0,34.6105,0,34.5L0,7.5Q0,7.38953,0.00542045,7.2792Q0.0108409,7.16886,0.0216687,7.05892Q0.0324966,6.94899,0.0487057,6.83971Q0.0649148,6.73044,0.0864662,6.62209Q0.108018,6.51375,0.134859,6.40659Q0.161701,6.29943,0.193768,6.19372Q0.225836,6.08801,0.263052,5.984Q0.300267,5.87998,0.342542,5.77792Q0.384817,5.67586,0.432048,5.576Q0.47928,5.47614,0.531354,5.37871Q0.583429,5.28129,0.640221,5.18654Q0.697013,5.09178,0.758387,4.99993Q0.81976,4.90808,0.885566,4.81935Q0.951372,4.73062,1.02145,4.64523Q1.09153,4.55984,1.16572,4.47798Q1.23991,4.39613,1.31802,4.31802Q1.39613,4.23991,1.47798,4.16572Q1.55984,4.09153,1.64523,4.02145Q1.73062,3.95137,1.81935,3.88557Q1.90808,3.81976,1.99993,3.75839Q2.09179,3.69701,2.18654,3.64022Q2.28129,3.58343,2.37871,3.53135Q2.47614,3.47928,2.576,3.43205Q2.67586,3.38482,2.77792,3.34254Q2.87998,3.30027,2.984,3.26305Q3.08801,3.22584,3.19372,3.19377Q3.29943,3.1617,3.40659,3.13486Q3.51375,3.10802,3.62209,3.08647Q3.73044,3.06491,3.83971,3.04871Q3.94899,3.0325,4.05892,3.02167Q4.16886,3.01084,4.2792,3.00542Q4.38953,3,4.5,3L10.5,3L10.5,1.39286C10.5,0.623603,11.1236,0,11.8929,0ZM10.5,6L4.5,6C3.67157,6,3,6.67157,3,7.5L3,16.5L36,16.5L36,7.5C36,6.67157,35.3284,6,34.5,6L28.5,6L28.5,7.60714C28.5,8.3764,27.8764,9,27.1071,9L26.8929,9C26.1236,9,25.5,8.3764,25.5,7.60714L25.5,6L13.5,6L13.5,7.60714C13.5,8.3764,12.8764,9,12.1071,9L11.8929,9C11.1236,9,10.5,8.3764,10.5,7.60714L10.5,6ZM36,19.5L3,19.5L3,34.5C3,35.3284,3.67157,36,4.5,36L34.5,36C35.3284,36,36,35.3284,36,34.5L36,19.5Z"
|
|
15
|
+
fill-rule="evenodd"
|
|
16
|
+
fill="#a8abb2"
|
|
17
|
+
fill-opacity="1"
|
|
18
|
+
/>
|
|
19
|
+
</g>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
22
|
+
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
|
23
|
+
<path
|
|
24
|
+
fill="currentColor"
|
|
25
|
+
d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"
|
|
26
|
+
/>
|
|
27
|
+
</svg> -->
|
|
28
|
+
</template>
|
|
29
|
+
<script setup>
|
|
30
|
+
defineOptions({
|
|
31
|
+
name: "Date",
|
|
32
|
+
});
|
|
33
|
+
</script>
|
|
@@ -59,6 +59,7 @@ const dataLoad = inject('dataLoad')
|
|
|
59
59
|
const rootForm = inject('rootForm')
|
|
60
60
|
const validate = inject('_validate', () => {})
|
|
61
61
|
const parentRootValue = inject('_parentRootValue', {})
|
|
62
|
+
const parentDynamicMapComp = inject('_parentDynamicMapComp', {})
|
|
62
63
|
const rootInstance = inject('_rootInstance', {})
|
|
63
64
|
|
|
64
65
|
const routeQuery= route?.query
|
|
@@ -84,6 +85,7 @@ const buttonAction = (e, params) => {
|
|
|
84
85
|
validate,
|
|
85
86
|
lastClick,
|
|
86
87
|
parentRootValue,
|
|
88
|
+
parentDynamicMapComp,
|
|
87
89
|
rootInstance
|
|
88
90
|
}, appContext)
|
|
89
91
|
}
|
|
@@ -70,6 +70,7 @@ export default {
|
|
|
70
70
|
const ruleExecuter = inject('_ruleExecuter')
|
|
71
71
|
const dynamicMapComp = inject('dynamicMapComp')
|
|
72
72
|
const parentRootValue = inject('_parentRootValue', {})
|
|
73
|
+
const parentDynamicMapComp = inject('_parentDynamicMapComp', {})
|
|
73
74
|
const selectionsObj = inject('_selectionsObj', {})
|
|
74
75
|
const rootStore = inject('_rootStore', {})
|
|
75
76
|
const lang = inject('lang')
|
|
@@ -203,7 +204,8 @@ export default {
|
|
|
203
204
|
orginRet = orginSelectable(row, index, {
|
|
204
205
|
tableConfig: props.config,
|
|
205
206
|
rootValue: rootValue,
|
|
206
|
-
parentRootValue
|
|
207
|
+
parentRootValue,
|
|
208
|
+
parentDynamicMapComp
|
|
207
209
|
})
|
|
208
210
|
}
|
|
209
211
|
let parentSelectionsRet = true
|
|
@@ -78,6 +78,7 @@ const dataLoad = inject('dataLoad')
|
|
|
78
78
|
const rootForm = inject('rootForm')
|
|
79
79
|
const validate = inject('_validate', () => {})
|
|
80
80
|
const parentRootValue = inject('_parentRootValue', {})
|
|
81
|
+
const parentDynamicMapComp = inject('_parentDynamicMapComp', {})
|
|
81
82
|
const rootInstance = inject('_rootInstance', {})
|
|
82
83
|
|
|
83
84
|
const routeQuery= route?.query
|
|
@@ -104,6 +105,7 @@ const buttonAction = async (e, params) => {
|
|
|
104
105
|
validate,
|
|
105
106
|
lastClick,
|
|
106
107
|
parentRootValue,
|
|
108
|
+
parentDynamicMapComp,
|
|
107
109
|
rootInstance
|
|
108
110
|
}, appContext)
|
|
109
111
|
}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
<script setup>
|
|
5
5
|
import { ElDatePicker } from 'element-plus'
|
|
6
6
|
import { useAttrs, computed, watch, nextTick } from 'vue'
|
|
7
|
-
import { commonPropsType, formatDate, isDate } from '../../utils/index.js'
|
|
7
|
+
import { commonPropsType, formatDate, isDate, hasOwn } from '../../utils/index.js'
|
|
8
8
|
import { useFormItem } from 'element-plus'
|
|
9
|
+
import dateIcon from '../icons/date.vue'
|
|
9
10
|
|
|
10
11
|
const { formItem: elFormItem } = useFormItem()
|
|
11
12
|
const props = defineProps({
|
|
@@ -32,6 +33,9 @@ const datePickerProps = computed(() => {
|
|
|
32
33
|
if (props?.config?.displayType) {
|
|
33
34
|
ret.type = props?.config?.displayType
|
|
34
35
|
}
|
|
36
|
+
if (!hasOwn(props?.config, 'prefix-icon') && !hasOwn(props?.config, 'prefixIcon')) {
|
|
37
|
+
ret.prefixIcon = dateIcon
|
|
38
|
+
}
|
|
35
39
|
return ret
|
|
36
40
|
})
|
|
37
41
|
const attrs = useAttrs()
|
package/src/hooks/pageConfig.js
CHANGED
|
@@ -23,6 +23,7 @@ export function usePageConfig() {
|
|
|
23
23
|
isH5,
|
|
24
24
|
rootValue,
|
|
25
25
|
parentRootValue,
|
|
26
|
+
parentDynamicMapComp,
|
|
26
27
|
axiosInstance,
|
|
27
28
|
messageInstance,
|
|
28
29
|
messageCb
|
|
@@ -36,6 +37,7 @@ export function usePageConfig() {
|
|
|
36
37
|
config, lang, polyfillConfigs, instance, isH5,
|
|
37
38
|
rootValue,
|
|
38
39
|
parentRootValue,
|
|
40
|
+
parentDynamicMapComp,
|
|
39
41
|
axiosInstance,
|
|
40
42
|
messageInstance,
|
|
41
43
|
messageCb
|
package/src/index.jsx
CHANGED
|
@@ -124,6 +124,11 @@ export default {
|
|
|
124
124
|
type: Object,
|
|
125
125
|
default: () => ({})
|
|
126
126
|
},
|
|
127
|
+
// 如果当前页面是弹框,这个是父页面传入的配置
|
|
128
|
+
parentDynamicMapComp: {
|
|
129
|
+
type: Object,
|
|
130
|
+
default: () => ({})
|
|
131
|
+
},
|
|
127
132
|
// 如果当前页面是弹框,这个是父页面已经选中的数据,控制表格选中的禁用
|
|
128
133
|
selectionsObj: {
|
|
129
134
|
type: Object,
|
|
@@ -243,6 +248,7 @@ export default {
|
|
|
243
248
|
isH5: props.isH5,
|
|
244
249
|
rootValue: props.modelValue,
|
|
245
250
|
parentRootValue: props.parentRootValue,
|
|
251
|
+
parentDynamicMapComp: props.parentDynamicMapComp,
|
|
246
252
|
axiosInstance: axiosInstance.value,
|
|
247
253
|
messageInstance: props.messageInstance,
|
|
248
254
|
messageCb: props.messageCb
|
|
@@ -263,6 +269,7 @@ export default {
|
|
|
263
269
|
isH5: props.isH5,
|
|
264
270
|
rootValue: props.modelValue,
|
|
265
271
|
parentRootValue: props.parentRootValue,
|
|
272
|
+
parentDynamicMapComp: props.parentDynamicMapComp,
|
|
266
273
|
axiosInstance: axiosInstance.value,
|
|
267
274
|
messageInstance: props.messageInstance,
|
|
268
275
|
messageCb: props.messageCb
|
|
@@ -305,7 +312,8 @@ export default {
|
|
|
305
312
|
provide('dialogComponents', props.dialogComponents) // 是否可以开始执行规则初始化
|
|
306
313
|
provide('_isH5', toRef(props, 'isH5')) // 是否是H5配置
|
|
307
314
|
|
|
308
|
-
provide('_parentRootValue', props.parentRootValue)
|
|
315
|
+
provide('_parentRootValue', props.parentRootValue)
|
|
316
|
+
provide('_parentDynamicMapComp', props.parentDynamicMapComp)
|
|
309
317
|
provide('_selectionsObj', props.selectionsObj)
|
|
310
318
|
provide('_polyfillConfigs', props.polyfillConfigs)
|
|
311
319
|
provide('requestTraceId', toRef(props, 'requestTraceId')) // 所有渲染器调用的接口,都需要加次参数(生哥提)
|
package/src/resolver-common.vue
CHANGED
package/src/utils/render.jsx
CHANGED
|
@@ -116,6 +116,7 @@ export function parsePageConfig({
|
|
|
116
116
|
config, lang, polyfillConfigs, instance, isH5,
|
|
117
117
|
rootValue,
|
|
118
118
|
parentRootValue,
|
|
119
|
+
parentDynamicMapComp,
|
|
119
120
|
axiosInstance,
|
|
120
121
|
messageInstance,
|
|
121
122
|
messageCb
|
|
@@ -139,7 +140,8 @@ export function parsePageConfig({
|
|
|
139
140
|
axiosInstance,
|
|
140
141
|
messageInstance,
|
|
141
142
|
messageCb,
|
|
142
|
-
parentRootValue
|
|
143
|
+
parentRootValue,
|
|
144
|
+
parentDynamicMapComp,
|
|
143
145
|
}, formConfig)
|
|
144
146
|
cbs.forEach((cb) => {
|
|
145
147
|
cb()
|
|
@@ -169,7 +171,8 @@ export function normalConfig({
|
|
|
169
171
|
axiosInstance,
|
|
170
172
|
messageInstance,
|
|
171
173
|
messageCb,
|
|
172
|
-
parentRootValue
|
|
174
|
+
parentRootValue,
|
|
175
|
+
parentDynamicMapComp,
|
|
173
176
|
}, config, hireRelat = '', mapComp = {}, needformItem = false) {
|
|
174
177
|
const metaCode = config.metaCode || ''
|
|
175
178
|
hireRelat += hireRelat ? `->${metaCode}` : metaCode
|
|
@@ -216,7 +219,8 @@ export function normalConfig({
|
|
|
216
219
|
axiosInstance,
|
|
217
220
|
messageInstance ,
|
|
218
221
|
messageCb,
|
|
219
|
-
parentRootValue
|
|
222
|
+
parentRootValue,
|
|
223
|
+
parentDynamicMapComp,
|
|
220
224
|
}, metaItem, hireRelat, mapComp, needformItem || [FORM_META_TYPE, FORM_META_TYPE_H5].includes(metaType))
|
|
221
225
|
return pageConfig
|
|
222
226
|
})?.sort((a, b) => a.seqNo - b.seqNo)
|
|
@@ -269,7 +273,7 @@ export function normalConfig({
|
|
|
269
273
|
}
|
|
270
274
|
|
|
271
275
|
mapComp[hireRelat] = pageConfig
|
|
272
|
-
parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue }, pageConfig)
|
|
276
|
+
parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue, parentDynamicMapComp }, pageConfig)
|
|
273
277
|
if(pageConfig.lcpPageServiceMapVOList?.length) {
|
|
274
278
|
cbs.push(() => {
|
|
275
279
|
const tabsServices = getTableServices(pageConfig.lcpPageServiceMapVOList, {dynamicMapComp: mapComp, dynamicMapCompKeys: Object.keys(mapComp), hireRelat})
|
|
@@ -343,7 +347,7 @@ function getTableServices(lcpPageServiceMapVOList = [], { dynamicMapComp, dynami
|
|
|
343
347
|
}
|
|
344
348
|
return []
|
|
345
349
|
}
|
|
346
|
-
function parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue }, config) {
|
|
350
|
+
function parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue, parentDynamicMapComp}, config) {
|
|
347
351
|
const hireRelat = config.hireRelat
|
|
348
352
|
const findKeys = Object.keys(polyfillConfigs || {}).filter(key => hireRelat.endsWith(key))
|
|
349
353
|
if (!findKeys.length) {
|
|
@@ -351,7 +355,7 @@ function parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue }, co
|
|
|
351
355
|
}
|
|
352
356
|
// 层级写的越明确,就使用更明确的层级配置
|
|
353
357
|
const findKey = findKeys.reduce((ret, key) => (hireRelat.lastIndexOf(ret) < hireRelat.lastIndexOf(key) ? ret : key))
|
|
354
|
-
const polyObj = polyfillConfigs[findKey] && polyfillConfigs[findKey](config, instance, {parentRootValue})
|
|
358
|
+
const polyObj = polyfillConfigs[findKey] && polyfillConfigs[findKey](config, instance, {parentRootValue, parentDynamicMapComp,})
|
|
355
359
|
polyObj && Object.keys(polyObj).forEach(key => {
|
|
356
360
|
config[key] = polyObj[key]
|
|
357
361
|
})
|