ss-component-new 1.3.716 → 1.3.718
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/JSEncrypt-B36c1iN5.js +1983 -0
- package/dist/MTLLoader-CkNZudBE.js +657 -0
- package/dist/URDFLoader-DIzEVzUD.js +2299 -0
- package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
- package/dist/animationData-DvL_4GZ5.js +83 -0
- package/dist/array-CWqACcUR.js +1045 -0
- package/dist/clone-Dp_gc9ll.js +8 -0
- package/dist/config.js +1 -1
- package/dist/eleIcon-qStmsM1q.js +29 -0
- package/dist/fileUtil-UOt_otFo.js +20 -0
- package/dist/iconfont-BwY2qVoK.js +1030 -0
- package/dist/icons/svg/functionList.svg +1 -0
- package/dist/icons/svg/method.svg +1 -0
- package/dist/index-11kpzK0A.js +209 -0
- package/dist/index-B0H3C7WG.js +103 -0
- package/dist/index-BHtNKL1L.js +27 -0
- package/dist/index-BYdpVSno.js +572 -0
- package/dist/index-BbyrFzEO.js +93 -0
- package/dist/index-BooO2Bml.js +78 -0
- package/dist/index-Bw3sTXPI.js +8993 -0
- package/dist/index-BzUgGzuc.js +48 -0
- package/dist/index-CGi0g-VN.js +627 -0
- package/dist/index-CVAzpX9K.js +98 -0
- package/dist/index-CV_jQDcg.js +9 -0
- package/dist/index-CWOXvFfD.js +44 -0
- package/dist/index-Ch8te5LO.js +411 -0
- package/dist/{index-DyhB-cd1.js → index-ChNfRlIP.js} +18 -253
- package/dist/index-Cq1wQI_y.js +107 -0
- package/dist/index-CydXQbtX.js +622 -0
- package/dist/index-D0FZKjDs.js +25341 -0
- package/dist/index-DAJxL40d.js +55 -0
- package/dist/index-DBsEVMiM.js +201 -0
- package/dist/index-DG4hoOWt.js +665 -0
- package/dist/index-DI0jVTla.js +873 -0
- package/dist/index-DUbk5m5P.js +99 -0
- package/dist/index-Ds6m_4JJ.js +28500 -0
- package/dist/index-DupTchhl.js +1000 -0
- package/dist/index-DyCq_odP.js +331 -0
- package/dist/index-FJ3M8we8.js +83 -0
- package/dist/index-FxtrZ3Ur.js +93 -0
- package/dist/index-KDp0WF5x.js +20439 -0
- package/dist/index-Ru-cNTPj.js +84 -0
- package/dist/index-UB_oCdlo.js +62 -0
- package/dist/index-VnvWLzSa.js +119 -0
- package/dist/index-YjBTGOkO.js +61 -0
- package/dist/index-awJ3iGD-.js +30 -0
- package/dist/index-ebaA7pNY.js +63306 -0
- package/dist/index-jbOjjV0j.js +447 -0
- package/dist/index-ogo2gre_.js +470 -0
- package/dist/index-rlStojTL.js +52 -0
- package/dist/index-uF-ibwG0.js +9 -0
- package/dist/index.vue_vue_type_style_index_0_scoped_05e3a1d8_lang-C2itW9KG.js +137927 -0
- package/dist/isString-0ZglyOfu.js +8 -0
- package/dist/localIcon-D5UoFBU5.js +76 -0
- package/dist/main-CdZD0nqa.js +502 -0
- package/dist/menuIndex-BB0uVPRX.js +159 -0
- package/dist/pyodide-Dc1Mu-0d.js +489 -0
- package/dist/request-1RPa2bBn.js +9048 -0
- package/dist/ss-component.css +8 -2
- package/dist/ss-component.js +64 -28
- package/dist/ss-component2.js +75 -15
- package/dist/ss-component3.js +1 -1
- package/dist/threeModel-CWaOyliB.js +1109 -0
- package/dist/threePreview-DUfFZQ5q.js +3091 -0
- package/dist/threeSceneView-BVBz-gGI.js +1290 -0
- package/dist/threeSceneViewForCPMPIP-CD2jYm22.js +539 -0
- package/dist/threeTrackPathView-DmE9QE_0.js +620 -0
- package/dist/threeViewerHost--PNbDhbX.js +233 -0
- package/dist/urdfTree-VRms7Vm3.js +254 -0
- package/dist/workpieceTreePanel-DCSz_IDY.js +559 -0
- package/package.json +8 -10
- package/public/config.js +1 -1
- package/public/icons/svg/functionList.svg +1 -0
- package/public/icons/svg/method.svg +1 -0
- package/dist/index-0g0DP0Sz.js +0 -1044
- package/dist/index-BDCuosQJ.js +0 -50
- package/dist/index-BxJpjRsQ.js +0 -50711
- package/dist/index-C1ELjCn7.js +0 -181
- package/dist/index-CEUQmw5e.js +0 -58
- package/dist/index-CndLgFR1.js +0 -35
- package/dist/index-DlDwzFUG.js +0 -213
- package/dist/index-IoMa0kLh.js +0 -27
- package/dist/menu-HTA6NZEd.js +0 -5208
- package/dist/platform-DoyWecim.js +0 -11429
- /package/dist/icons/svg/{update.svg → Update.svg} +0 -0
- /package/dist/icons/svg/{table-close.svg → tableClose.svg} +0 -0
- /package/dist/icons/svg/{table-expand.svg → tableExpand.svg} +0 -0
- /package/public/icons/svg/{update.svg → Update.svg} +0 -0
- /package/public/icons/svg/{table-close.svg → tableClose.svg} +0 -0
- /package/public/icons/svg/{table-expand.svg → tableExpand.svg} +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ref as x, onMounted as _, createElementBlock as g, openBlock as y, createVNode as C } from "vue";
|
|
2
|
+
import { s as b } from "./index-BzUgGzuc.js";
|
|
3
|
+
import { c as s } from "./index-Bw3sTXPI.js";
|
|
4
|
+
import { _ as k } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
|
+
const A = (t, n, a) => {
|
|
6
|
+
var r, d, p, m;
|
|
7
|
+
let e = n;
|
|
8
|
+
e.title.text = (a == null ? void 0 : a.chartName) ?? "", e.xAxis.data = (r = s(t)) == null ? void 0 : r.map((i) => i.x), e.legend.data = (p = (d = s(t)) == null ? void 0 : d[0]) != null && p.y ? Object.keys(s(t)[0].y) : [];
|
|
9
|
+
let o = [];
|
|
10
|
+
return ((m = e.legend.data) == null ? void 0 : m.length) > 0 && s(e.legend.data).forEach((i) => {
|
|
11
|
+
var f;
|
|
12
|
+
const h = (f = s(t)) == null ? void 0 : f.map((l) => {
|
|
13
|
+
var u;
|
|
14
|
+
return (u = l == null ? void 0 : l.y) == null ? void 0 : u[i];
|
|
15
|
+
});
|
|
16
|
+
o.push({
|
|
17
|
+
name: i,
|
|
18
|
+
type: "line",
|
|
19
|
+
data: h
|
|
20
|
+
});
|
|
21
|
+
}), e.series = o, e;
|
|
22
|
+
}, c = [
|
|
23
|
+
{
|
|
24
|
+
key: "折线图",
|
|
25
|
+
value: {
|
|
26
|
+
title: {
|
|
27
|
+
text: "",
|
|
28
|
+
// 标题文本
|
|
29
|
+
left: "center",
|
|
30
|
+
// 水平居中
|
|
31
|
+
top: 25,
|
|
32
|
+
// 距离顶部距离
|
|
33
|
+
textStyle: {
|
|
34
|
+
// 文本样式
|
|
35
|
+
color: "#333",
|
|
36
|
+
fontSize: 18,
|
|
37
|
+
fontWeight: "bold"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
tooltip: {
|
|
41
|
+
trigger: "axis"
|
|
42
|
+
},
|
|
43
|
+
legend: {
|
|
44
|
+
data: []
|
|
45
|
+
},
|
|
46
|
+
grid: {
|
|
47
|
+
left: "6%",
|
|
48
|
+
right: "4%",
|
|
49
|
+
bottom: "3%",
|
|
50
|
+
containLabel: !0
|
|
51
|
+
},
|
|
52
|
+
xAxis: {
|
|
53
|
+
type: "category",
|
|
54
|
+
axisLabel: {
|
|
55
|
+
interval: 0
|
|
56
|
+
// 强制显示所有标签
|
|
57
|
+
},
|
|
58
|
+
data: []
|
|
59
|
+
},
|
|
60
|
+
yAxis: {
|
|
61
|
+
type: "value"
|
|
62
|
+
},
|
|
63
|
+
series: []
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
], v = { class: "eCharts" }, D = {
|
|
67
|
+
__name: "index",
|
|
68
|
+
props: {
|
|
69
|
+
eChartContents: Array
|
|
70
|
+
},
|
|
71
|
+
setup(t) {
|
|
72
|
+
const n = t, a = x({});
|
|
73
|
+
return _(() => {
|
|
74
|
+
var o;
|
|
75
|
+
const e = n == null ? void 0 : n.eChartContents;
|
|
76
|
+
a.value = A(s(e == null ? void 0 : e.compData), (o = c == null ? void 0 : c.find((r) => (r == null ? void 0 : r.key) === (e == null ? void 0 : e.name))) == null ? void 0 : o.value, e == null ? void 0 : e.extraContent);
|
|
77
|
+
}), (e, o) => (y(), g("div", v, [
|
|
78
|
+
C(b, { optionContents: a.value }, null, 8, ["optionContents"])
|
|
79
|
+
]));
|
|
80
|
+
}
|
|
81
|
+
}, N = /* @__PURE__ */ k(D, [["__scopeId", "data-v-0440fac3"]]);
|
|
82
|
+
export {
|
|
83
|
+
N as default
|
|
84
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { s as h, b as l, p as w, B as F } from "./index-Bw3sTXPI.js";
|
|
2
|
+
import { s as f } from "./request-1RPa2bBn.js";
|
|
3
|
+
import { watch as p } from "vue";
|
|
4
|
+
const P = l(w), { systemUrl: s, extraUrl: o } = h(P);
|
|
5
|
+
let d = s.value === "" || !s.value ? "http://222.92.178.198:63002" : s.value, m = o.value === "" || !o.value ? "http://139.196.154.85:20015" : o.value;
|
|
6
|
+
p(
|
|
7
|
+
() => s.value,
|
|
8
|
+
() => {
|
|
9
|
+
d = s.value === "" || !s.value ? "http://222.92.178.198:63002" : s.value;
|
|
10
|
+
},
|
|
11
|
+
{ deep: !0, immediate: !0 }
|
|
12
|
+
);
|
|
13
|
+
p(
|
|
14
|
+
() => o.value,
|
|
15
|
+
() => {
|
|
16
|
+
m = o.value === "" || !o.value ? "http://139.196.154.85:20015" : o.value;
|
|
17
|
+
},
|
|
18
|
+
{ deep: !0, immediate: !0 }
|
|
19
|
+
);
|
|
20
|
+
function S(a) {
|
|
21
|
+
return f({
|
|
22
|
+
url: m + "/api/face/face-verify",
|
|
23
|
+
method: "post",
|
|
24
|
+
data: a
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function V(a) {
|
|
28
|
+
return f({
|
|
29
|
+
url: d + "/platform/updatedata_faceURL",
|
|
30
|
+
method: "post",
|
|
31
|
+
data: a
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const b = () => {
|
|
35
|
+
const a = l(), { platId: v, userName: y, account: u, isSuperAdmin: g } = F(), c = async (t) => {
|
|
36
|
+
if (!t)
|
|
37
|
+
return;
|
|
38
|
+
const e = new FormData();
|
|
39
|
+
e.set("file", t);
|
|
40
|
+
const r = a.systemInfo.plat_id;
|
|
41
|
+
return e.set("systemKey", r), await S(e);
|
|
42
|
+
};
|
|
43
|
+
return { updateFacePhoto: async (t) => {
|
|
44
|
+
const e = a.loginUserInfo, { password: r } = e || {}, n = {
|
|
45
|
+
platId: v.value,
|
|
46
|
+
userName: y.value,
|
|
47
|
+
password: r,
|
|
48
|
+
faceURL: t
|
|
49
|
+
};
|
|
50
|
+
g.value && (n.platId = ""), await V(n);
|
|
51
|
+
}, initVerifySelf: async (t) => {
|
|
52
|
+
var i;
|
|
53
|
+
const e = await c(t), { account: r, password: n } = ((i = e == null ? void 0 : e.data) == null ? void 0 : i.data) || {};
|
|
54
|
+
if (!u)
|
|
55
|
+
return !1;
|
|
56
|
+
const I = a.loginUserInfo, { password: U } = I || {};
|
|
57
|
+
return r === u.value && n === U;
|
|
58
|
+
}, initVerify: async (t) => await c(t) };
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
b as u
|
|
62
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { defineComponent as C, reactive as k, ref as v, onMounted as D, nextTick as b, resolveComponent as i, resolveDirective as T, createElementBlock as m, openBlock as u, createVNode as t, withCtx as n, withDirectives as w, createElementVNode as p, createTextVNode as _ } from "vue";
|
|
2
|
+
import { S as x } from "./index-CGi0g-VN.js";
|
|
3
|
+
import { W as B } from "./index-ebaA7pNY.js";
|
|
4
|
+
import { s as F } from "./index-11kpzK0A.js";
|
|
5
|
+
import { a as y } from "./index-D0FZKjDs.js";
|
|
6
|
+
import { u as S, p as I, s as N } from "./index-Bw3sTXPI.js";
|
|
7
|
+
import { _ as R } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
8
|
+
const E = { class: "menu-module" }, M = {
|
|
9
|
+
class: "table-wrap",
|
|
10
|
+
"element-loading-text": "加载中..."
|
|
11
|
+
}, O = { class: "module-dialog-default" }, V = /* @__PURE__ */ C({
|
|
12
|
+
__name: "index",
|
|
13
|
+
setup(P) {
|
|
14
|
+
const e = k({ ...x }), s = v(null), c = S(I), { configMenu: a } = N(c);
|
|
15
|
+
return D(() => {
|
|
16
|
+
var r;
|
|
17
|
+
e.formatFormData(a.value), b(() => {
|
|
18
|
+
var o, l;
|
|
19
|
+
(l = s.value) == null || l.setCurrentKey((o = a.value) == null ? void 0 : o.path), c.setActiveMenuPath("/平台管理/菜单管理");
|
|
20
|
+
}), a.value && e.getInitialSubStructure((r = a.value) == null ? void 0 : r.path);
|
|
21
|
+
}), (r, o) => {
|
|
22
|
+
const l = i("el-tree"), d = i("el-splitter-panel"), f = i("el-splitter"), g = i("el-button"), h = T("loading");
|
|
23
|
+
return u(), m("div", E, [
|
|
24
|
+
t(f, null, {
|
|
25
|
+
default: n(() => [
|
|
26
|
+
t(d, {
|
|
27
|
+
size: 208,
|
|
28
|
+
class: "tree-wrap",
|
|
29
|
+
min: 200
|
|
30
|
+
}, {
|
|
31
|
+
default: n(() => [
|
|
32
|
+
t(l, {
|
|
33
|
+
ref_key: "treeRef",
|
|
34
|
+
ref: s,
|
|
35
|
+
data: e.treeData,
|
|
36
|
+
"expand-on-click-node": !1,
|
|
37
|
+
"node-key": "path",
|
|
38
|
+
props: { children: "children", label: "label", path: "path" },
|
|
39
|
+
"highlight-current": "",
|
|
40
|
+
"default-expand-all": "",
|
|
41
|
+
"check-on-click-leaf": !1,
|
|
42
|
+
"check-strictly": "",
|
|
43
|
+
onNodeClick: e.clickNodeTrigger
|
|
44
|
+
}, null, 8, ["data", "onNodeClick"])
|
|
45
|
+
]),
|
|
46
|
+
_: 1
|
|
47
|
+
}),
|
|
48
|
+
t(d, { min: 500 }, {
|
|
49
|
+
default: n(() => [
|
|
50
|
+
w((u(), m("div", M, [
|
|
51
|
+
t(B, {
|
|
52
|
+
itemData: e.menuPageData,
|
|
53
|
+
changedContent: e.changedRow,
|
|
54
|
+
operatingForm: e.operatingForm,
|
|
55
|
+
onOnFormChange: e.changeTrigger,
|
|
56
|
+
onChange: e.handleItemDataChange,
|
|
57
|
+
onClickTrigger: e.clickTrigger,
|
|
58
|
+
onOnButtonClick: e.clickRowButton
|
|
59
|
+
}, null, 8, ["itemData", "changedContent", "operatingForm", "onOnFormChange", "onChange", "onClickTrigger", "onOnButtonClick"])
|
|
60
|
+
])), [
|
|
61
|
+
[h, e.tableLoading]
|
|
62
|
+
])
|
|
63
|
+
]),
|
|
64
|
+
_: 1
|
|
65
|
+
})
|
|
66
|
+
]),
|
|
67
|
+
_: 1
|
|
68
|
+
}),
|
|
69
|
+
t(F, {
|
|
70
|
+
class: "module-dialog",
|
|
71
|
+
title: e.dialogInfo.title,
|
|
72
|
+
visible: e.dialogInfo.show,
|
|
73
|
+
width: e.dialogInfo.width,
|
|
74
|
+
onBeforeDestroy: e.beforeDialogDestroy
|
|
75
|
+
}, {
|
|
76
|
+
default: n(() => [
|
|
77
|
+
p("div", O, [
|
|
78
|
+
t(y, {
|
|
79
|
+
rowContents: e.renderFormData,
|
|
80
|
+
isEnableWrap: !1,
|
|
81
|
+
isEdit: !0,
|
|
82
|
+
onChange: e.changeTrigger,
|
|
83
|
+
onClickTrigger: e.clickTrigger
|
|
84
|
+
}, null, 8, ["rowContents", "onChange", "onClickTrigger"])
|
|
85
|
+
])
|
|
86
|
+
]),
|
|
87
|
+
footer: n(() => [
|
|
88
|
+
p("div", null, [
|
|
89
|
+
t(g, {
|
|
90
|
+
onClick: e.beforeDialogDestroy,
|
|
91
|
+
id: "themeBorderButton"
|
|
92
|
+
}, {
|
|
93
|
+
default: n(() => o[0] || (o[0] = [
|
|
94
|
+
_("取消")
|
|
95
|
+
])),
|
|
96
|
+
_: 1,
|
|
97
|
+
__: [0]
|
|
98
|
+
}, 8, ["onClick"]),
|
|
99
|
+
t(g, {
|
|
100
|
+
id: "themeButton",
|
|
101
|
+
onClick: e.clickSubmitForm
|
|
102
|
+
}, {
|
|
103
|
+
default: n(() => o[1] || (o[1] = [
|
|
104
|
+
_(" 确认 ")
|
|
105
|
+
])),
|
|
106
|
+
_: 1,
|
|
107
|
+
__: [1]
|
|
108
|
+
}, 8, ["onClick"])
|
|
109
|
+
])
|
|
110
|
+
]),
|
|
111
|
+
_: 1
|
|
112
|
+
}, 8, ["title", "visible", "width", "onBeforeDestroy"])
|
|
113
|
+
]);
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}), G = /* @__PURE__ */ R(V, [["__scopeId", "data-v-74868a06"]]);
|
|
117
|
+
export {
|
|
118
|
+
G as default
|
|
119
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { s as a } from "./request-1RPa2bBn.js";
|
|
2
|
+
function n(t) {
|
|
3
|
+
return a({
|
|
4
|
+
url: "/api/insofData/add",
|
|
5
|
+
method: "post",
|
|
6
|
+
data: t
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
function s(t) {
|
|
10
|
+
var e;
|
|
11
|
+
if (((e = Object.keys(t)) == null ? void 0 : e.length) !== 0)
|
|
12
|
+
return a({
|
|
13
|
+
url: "/api/insofData/get",
|
|
14
|
+
method: "post",
|
|
15
|
+
data: t
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function i(t) {
|
|
19
|
+
return a({
|
|
20
|
+
url: "/api/insofData/update",
|
|
21
|
+
method: "post",
|
|
22
|
+
data: t
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function r(t) {
|
|
26
|
+
return a({
|
|
27
|
+
url: "/api/insofData/delete",
|
|
28
|
+
method: "post",
|
|
29
|
+
data: t
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function p(t) {
|
|
33
|
+
return a({
|
|
34
|
+
url: "/api/insofData/batchAdd",
|
|
35
|
+
method: "post",
|
|
36
|
+
data: t
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function u(t) {
|
|
40
|
+
return a({
|
|
41
|
+
url: "/api/insofData/batchDelete",
|
|
42
|
+
method: "post",
|
|
43
|
+
data: t
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function f(t) {
|
|
47
|
+
return a({
|
|
48
|
+
url: "/api/insofData/batchUpdate",
|
|
49
|
+
method: "post",
|
|
50
|
+
data: t
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
u as a,
|
|
55
|
+
f as b,
|
|
56
|
+
n as c,
|
|
57
|
+
r as d,
|
|
58
|
+
p as e,
|
|
59
|
+
s as g,
|
|
60
|
+
i as u
|
|
61
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { defineComponent as l, reactive as c, onMounted as s, createElementBlock as r, openBlock as i, createVNode as p } from "vue";
|
|
2
|
+
import { S as m } from "./index-B0H3C7WG.js";
|
|
3
|
+
import { W as _ } from "./index-ebaA7pNY.js";
|
|
4
|
+
import { _ as d } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
|
+
const f = { class: "log-wrap" }, u = /* @__PURE__ */ l({
|
|
6
|
+
__name: "index",
|
|
7
|
+
setup(b) {
|
|
8
|
+
const t = c({ ...m });
|
|
9
|
+
s(async () => {
|
|
10
|
+
t.tableData = await t.getLogTableDataAsync();
|
|
11
|
+
});
|
|
12
|
+
const n = (o) => {
|
|
13
|
+
var e;
|
|
14
|
+
t.clickButton(o, (e = t.tableData) == null ? void 0 : e.map((a) => a.id), (a) => {
|
|
15
|
+
console.log("清空操作成功:", a), a && (t.tableData = []);
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
return (o, e) => (i(), r("div", f, [
|
|
19
|
+
p(_, {
|
|
20
|
+
itemData: t.pageData,
|
|
21
|
+
allowOperate: !1,
|
|
22
|
+
allowSelect: !1,
|
|
23
|
+
onOnButtonClick: n
|
|
24
|
+
}, null, 8, ["itemData"])
|
|
25
|
+
]));
|
|
26
|
+
}
|
|
27
|
+
}), B = /* @__PURE__ */ d(u, [["__scopeId", "data-v-b4bfde04"]]);
|
|
28
|
+
export {
|
|
29
|
+
B as default
|
|
30
|
+
};
|