jmash-core 0.0.2 → 0.0.4
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/401-DoLCxv3l.mjs +103 -0
- package/dist/404-D1KiG-19.mjs +37 -0
- package/dist/BarChart-C1VgkGMN.mjs +203 -0
- package/dist/FileSaver.min-CbZYb_R2.mjs +77 -0
- package/dist/FunnelChart-Czy2TVI1.mjs +106 -0
- package/dist/PieChart-D4hXD0SH.mjs +4 -0
- package/dist/PieChart.vue_vue_type_script_setup_true_lang-BzbbPmOh.mjs +90 -0
- package/dist/RadarChart-BIL7VT1H.mjs +4 -0
- package/dist/RadarChart.vue_vue_type_script_setup_true_lang-DcuctIiI.mjs +109 -0
- package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
- package/dist/caret-bottom-Cm1qBSrY.mjs +59 -0
- package/dist/common-DuVBTwAv.mjs +36 -0
- package/dist/debounce-C0G0JMal.mjs +81 -0
- package/dist/dropdown2-BiRFTrOq.mjs +160 -0
- package/dist/edit-Bpt21Eir.mjs +833 -0
- package/dist/edit-CYWeo3RE.mjs +4 -0
- package/dist/edit-Cde8RIRN.mjs +4 -0
- package/dist/edit-D3-EslTs.mjs +4 -0
- package/dist/edit-DLx0iRHQ.mjs +469 -0
- package/dist/edit-NICINRFG.mjs +4 -0
- package/dist/edit-Vk23bJyE.mjs +4 -0
- package/dist/edit-sqzPOfBX.mjs +4 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-BYoUZaYJ.mjs +157 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-CFHGaytm.mjs +137 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-C_NNjRjK.mjs +622 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-DBxZMZyS.mjs +222 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-_tHqd9tg.mjs +226 -0
- package/dist/edit.vue_vue_type_script_setup_true_lang-mM66jf9N.mjs +288 -0
- package/dist/el-card-BIRVdEQY.mjs +61 -0
- package/dist/el-checkbox-group-l0sNRNKZ.mjs +1 -0
- package/dist/el-checkbox-miY6QbQ8.mjs +548 -0
- package/dist/el-col-BOgRUJYE.mjs +135 -0
- package/dist/el-date-picker-D9yvdcj2.mjs +3349 -0
- package/dist/el-dialog-BSTwker5.mjs +378 -0
- package/dist/el-dropdown-item-YDb2-w9y.mjs +675 -0
- package/dist/el-form-item-BzKoZc6I.mjs +1489 -0
- package/dist/el-icon-l0sNRNKZ.mjs +1 -0
- package/dist/el-popover-DuRdut0P.mjs +159 -0
- package/dist/el-popper-AjIjI4wK.mjs +1656 -0
- package/dist/el-progress-BPv5gfee.mjs +898 -0
- package/dist/el-radio-NC-gfUsx.mjs +251 -0
- package/dist/el-scrollbar-p0O6uID0.mjs +607 -0
- package/dist/el-select-DAMII7lv.mjs +1040 -0
- package/dist/el-switch-C2AFgHGW.mjs +254 -0
- package/dist/el-table-IQFrP3zv.mjs +3168 -0
- package/dist/el-tag-l0sNRNKZ.mjs +1 -0
- package/dist/el-tooltip-l0sNRNKZ.mjs +1 -0
- package/dist/el-tree-select-CyDKS6nF.mjs +1316 -0
- package/dist/importUpload.vue_vue_type_script_setup_true_lang-DWWbxFGH.mjs +117 -0
- package/dist/index-A3UILhe-.mjs +279 -0
- package/dist/index-Ax_8ZsXK.mjs +3163 -0
- package/dist/index-B46NFfoE.mjs +487 -0
- package/dist/index-BWx4KWAY.mjs +282 -0
- package/dist/index-BWyb1bu2.mjs +505 -0
- package/dist/index-BjqMDjBg.mjs +43994 -0
- package/dist/index-BnbEfNmI.mjs +134 -0
- package/dist/index-BpAihYhN.mjs +280 -0
- package/dist/index-Bs3AcT6R.mjs +107 -0
- package/dist/index-BvixCbHl.mjs +329 -0
- package/dist/index-C0UgbyoZ.mjs +452 -0
- package/dist/index-C0vV2_4K.mjs +63 -0
- package/dist/index-CBB_r4G5.mjs +965 -0
- package/dist/index-CCFtIl_h.mjs +516 -0
- package/dist/index-Cd3TOW5i.mjs +93 -0
- package/dist/index-CgNPGcHv.mjs +292 -0
- package/dist/index-CoOFKDgw.mjs +74 -0
- package/dist/index-CrNYgyNm.mjs +8800 -0
- package/dist/index-CurzO9C6.mjs +248 -0
- package/dist/index-DJ08yxAP.mjs +11 -0
- package/dist/index-DjkMA-Wh.mjs +40 -0
- package/dist/index-Url6hMpl.mjs +483 -0
- package/dist/index-eT2JltVa.mjs +55 -0
- package/dist/index-mkT_dTWL.mjs +13 -0
- package/dist/index-uykKwY2Z.mjs +12 -0
- package/dist/index-xtDIXRPY.mjs +633 -0
- package/dist/index.mjs +19 -273
- package/dist/index.vue_vue_type_script_setup_true_lang-BoxqootF.mjs +58 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-C6yk_vUt.mjs +286 -0
- package/dist/isUndefined-CUQZk6oB.mjs +6 -0
- package/dist/moment-CMYwqyVT.mjs +2579 -0
- package/dist/picture-kPnmHaoS.mjs +599 -0
- package/dist/profile-RVQuIwXg.mjs +319 -0
- package/dist/refs-S3PYDmaW.mjs +9 -0
- package/dist/style.css +1 -1
- package/dist/types-CCG3Dvqs.mjs +205 -0
- package/dist/updatePwd-2UsTmJa5.mjs +4 -0
- package/dist/updatePwd.vue_vue_type_script_setup_true_lang-_Uadc2g3.mjs +151 -0
- package/dist/useColumnToggleTable-D_QF8Uy9.mjs +272 -0
- package/dist/vue-i18n-CE6tUbcO.mjs +3808 -0
- package/dts/tsconfig.tsbuildinfo +1 -1
- package/package.json +31 -2
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { _ as ae } from "./index-xtDIXRPY.mjs";
|
|
2
|
+
import { _ as de } from "./index.vue_vue_type_script_setup_true_lang-C6yk_vUt.mjs";
|
|
3
|
+
import { c as se, e as ie, f as re, y as me } from "./index-CrNYgyNm.mjs";
|
|
4
|
+
import "./el-icon-l0sNRNKZ.mjs";
|
|
5
|
+
import { E as ue, a as pe } from "./el-col-BOgRUJYE.mjs";
|
|
6
|
+
import { u as ce, a as fe, _ as _e } from "./useColumnToggleTable-D_QF8Uy9.mjs";
|
|
7
|
+
import { a as be, E as ye } from "./el-form-item-BzKoZc6I.mjs";
|
|
8
|
+
import { defineComponent as ge, reactive as p, resolveComponent as R, resolveDirective as Ce, openBlock as r, createElementBlock as $, createVNode as t, withCtx as n, withKeys as T, unref as o, createTextVNode as m, toDisplayString as u, withDirectives as C, createBlock as v, isRef as ve, createCommentVNode as S, createElementVNode as he } from "vue";
|
|
9
|
+
import { u as ke } from "./vue-i18n-CE6tUbcO.mjs";
|
|
10
|
+
import { g as we, d as $e, b as Me, a as Ee, c as Ie } from "./index-Cd3TOW5i.mjs";
|
|
11
|
+
import { _ as Ne } from "./edit.vue_vue_type_script_setup_true_lang-BYoUZaYJ.mjs";
|
|
12
|
+
const Re = { class: "app-container" }, Te = /* @__PURE__ */ he("div", { class: "clear" }, null, -1), Se = ["onClick"], De = ["onClick"], je = /* @__PURE__ */ ge({
|
|
13
|
+
__name: "index",
|
|
14
|
+
setup(Ve) {
|
|
15
|
+
const { t: s } = ke(), d = p({
|
|
16
|
+
tenant: se().user.tenant,
|
|
17
|
+
curPage: 1,
|
|
18
|
+
pageSize: 10
|
|
19
|
+
});
|
|
20
|
+
let c = p({
|
|
21
|
+
moduleId: "",
|
|
22
|
+
moduleCode: "",
|
|
23
|
+
moduleName: "",
|
|
24
|
+
description: ""
|
|
25
|
+
}), f = p([
|
|
26
|
+
{
|
|
27
|
+
label: s("sysModule.code"),
|
|
28
|
+
width: "200",
|
|
29
|
+
prop: "moduleCode",
|
|
30
|
+
isColumn: !0
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: s("sysModule.name"),
|
|
34
|
+
width: "200",
|
|
35
|
+
prop: "moduleName",
|
|
36
|
+
isColumn: !0
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: s("sysModule.description"),
|
|
40
|
+
prop: "description",
|
|
41
|
+
isColumn: !0
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: s("sysModule.sort"),
|
|
45
|
+
width: "100",
|
|
46
|
+
prop: "orderName",
|
|
47
|
+
columnType: "slot",
|
|
48
|
+
slotName: "sort",
|
|
49
|
+
isColumn: !0
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: s("common.operate"),
|
|
53
|
+
width: "200",
|
|
54
|
+
columnType: "slot",
|
|
55
|
+
slotName: "operation",
|
|
56
|
+
fixed: "right",
|
|
57
|
+
isColumn: !0
|
|
58
|
+
}
|
|
59
|
+
]);
|
|
60
|
+
const i = p({
|
|
61
|
+
visible: !1,
|
|
62
|
+
title: ""
|
|
63
|
+
}), D = p({
|
|
64
|
+
list: we,
|
|
65
|
+
del: $e,
|
|
66
|
+
dels: Me,
|
|
67
|
+
up: Ee,
|
|
68
|
+
down: Ie
|
|
69
|
+
}), {
|
|
70
|
+
tableData: V,
|
|
71
|
+
total: _,
|
|
72
|
+
listLoading: P,
|
|
73
|
+
selectionRows: F,
|
|
74
|
+
multipleTableRef: B,
|
|
75
|
+
queryFormRef: M,
|
|
76
|
+
getList: h,
|
|
77
|
+
handleQuery: b,
|
|
78
|
+
deleteRecord: U,
|
|
79
|
+
deleteRecords: q,
|
|
80
|
+
handleMoveTop: z,
|
|
81
|
+
// 上移
|
|
82
|
+
handleMoveDown: K
|
|
83
|
+
// 下移
|
|
84
|
+
} = ce(s, D, d), {
|
|
85
|
+
parIndex: L,
|
|
86
|
+
tableArray: x,
|
|
87
|
+
getLocalStorageContent: A,
|
|
88
|
+
fixedChange: Q,
|
|
89
|
+
isShowChange: j
|
|
90
|
+
} = fe(f, "/system/module");
|
|
91
|
+
function G(e) {
|
|
92
|
+
F.value = e;
|
|
93
|
+
}
|
|
94
|
+
function H() {
|
|
95
|
+
M.value.resetFields(), b();
|
|
96
|
+
}
|
|
97
|
+
function J() {
|
|
98
|
+
for (const e in c)
|
|
99
|
+
c[e] = "";
|
|
100
|
+
i.title = s("common.add"), i.visible = !0;
|
|
101
|
+
}
|
|
102
|
+
function O(e) {
|
|
103
|
+
i.title = s("common.edit"), i.visible = !0, c = { ...e };
|
|
104
|
+
}
|
|
105
|
+
function W(e) {
|
|
106
|
+
i.visible = e;
|
|
107
|
+
}
|
|
108
|
+
function X(e) {
|
|
109
|
+
e && h();
|
|
110
|
+
}
|
|
111
|
+
return A(), f = x.value, h(), (e, a) => {
|
|
112
|
+
const E = ie, k = be, y = re, Y = ye, I = ue, Z = _e, ee = pe, oe = R("Bottom"), N = me, te = R("Top"), le = de, ne = ae, g = Ce("hasPerm");
|
|
113
|
+
return r(), $("div", Re, [
|
|
114
|
+
t(Y, {
|
|
115
|
+
ref_key: "queryFormRef",
|
|
116
|
+
ref: M,
|
|
117
|
+
model: d,
|
|
118
|
+
inline: !0
|
|
119
|
+
}, {
|
|
120
|
+
default: n(() => [
|
|
121
|
+
t(k, {
|
|
122
|
+
label: e.$t("sysModule.code"),
|
|
123
|
+
prop: "moduleCode"
|
|
124
|
+
}, {
|
|
125
|
+
default: n(() => [
|
|
126
|
+
t(E, {
|
|
127
|
+
modelValue: d.moduleCode,
|
|
128
|
+
"onUpdate:modelValue": a[0] || (a[0] = (l) => d.moduleCode = l),
|
|
129
|
+
placeholder: e.$t("sysModule.codeRequired"),
|
|
130
|
+
onKeyup: T(o(b), ["enter"])
|
|
131
|
+
}, null, 8, ["modelValue", "placeholder", "onKeyup"])
|
|
132
|
+
]),
|
|
133
|
+
_: 1
|
|
134
|
+
}, 8, ["label"]),
|
|
135
|
+
t(k, {
|
|
136
|
+
label: e.$t("sysModule.name"),
|
|
137
|
+
prop: "likeModuleName"
|
|
138
|
+
}, {
|
|
139
|
+
default: n(() => [
|
|
140
|
+
t(E, {
|
|
141
|
+
modelValue: d.likeModuleName,
|
|
142
|
+
"onUpdate:modelValue": a[1] || (a[1] = (l) => d.likeModuleName = l),
|
|
143
|
+
placeholder: e.$t("sysModule.nameRequired"),
|
|
144
|
+
onKeyup: T(o(b), ["enter"])
|
|
145
|
+
}, null, 8, ["modelValue", "placeholder", "onKeyup"])
|
|
146
|
+
]),
|
|
147
|
+
_: 1
|
|
148
|
+
}, 8, ["label"]),
|
|
149
|
+
t(k, { class: "search-container" }, {
|
|
150
|
+
default: n(() => [
|
|
151
|
+
t(y, {
|
|
152
|
+
type: "primary",
|
|
153
|
+
onClick: o(b)
|
|
154
|
+
}, {
|
|
155
|
+
default: n(() => [
|
|
156
|
+
m(u(e.$t("common.search")), 1)
|
|
157
|
+
]),
|
|
158
|
+
_: 1
|
|
159
|
+
}, 8, ["onClick"]),
|
|
160
|
+
t(y, { onClick: H }, {
|
|
161
|
+
default: n(() => [
|
|
162
|
+
m(u(e.$t("common.reset")), 1)
|
|
163
|
+
]),
|
|
164
|
+
_: 1
|
|
165
|
+
})
|
|
166
|
+
]),
|
|
167
|
+
_: 1
|
|
168
|
+
})
|
|
169
|
+
]),
|
|
170
|
+
_: 1
|
|
171
|
+
}, 8, ["model"]),
|
|
172
|
+
Te,
|
|
173
|
+
t(ee, { justify: "space-between" }, {
|
|
174
|
+
default: n(() => [
|
|
175
|
+
t(I, { span: 19 }, {
|
|
176
|
+
default: n(() => [
|
|
177
|
+
C((r(), v(y, {
|
|
178
|
+
type: "primary",
|
|
179
|
+
onClick: J
|
|
180
|
+
}, {
|
|
181
|
+
default: n(() => [
|
|
182
|
+
m(u(e.$t("common.add")), 1)
|
|
183
|
+
]),
|
|
184
|
+
_: 1
|
|
185
|
+
})), [
|
|
186
|
+
[g, ["rbac:module:add"]]
|
|
187
|
+
]),
|
|
188
|
+
C((r(), v(y, {
|
|
189
|
+
type: "primary",
|
|
190
|
+
onClick: a[2] || (a[2] = (l) => o(q)("moduleId"))
|
|
191
|
+
}, {
|
|
192
|
+
default: n(() => [
|
|
193
|
+
m(u(e.$t("common.batchDelete")), 1)
|
|
194
|
+
]),
|
|
195
|
+
_: 1
|
|
196
|
+
})), [
|
|
197
|
+
[g, ["rbac:module:delete"]]
|
|
198
|
+
])
|
|
199
|
+
]),
|
|
200
|
+
_: 1
|
|
201
|
+
}),
|
|
202
|
+
t(I, {
|
|
203
|
+
span: 5,
|
|
204
|
+
class: "container-float"
|
|
205
|
+
}, {
|
|
206
|
+
default: n(() => [
|
|
207
|
+
t(Z, {
|
|
208
|
+
"table-label": o(f),
|
|
209
|
+
"par-index": o(L),
|
|
210
|
+
onFixedChange: o(Q),
|
|
211
|
+
onIsShowChange: o(j)
|
|
212
|
+
}, null, 8, ["table-label", "par-index", "onFixedChange", "onIsShowChange"])
|
|
213
|
+
]),
|
|
214
|
+
_: 1
|
|
215
|
+
})
|
|
216
|
+
]),
|
|
217
|
+
_: 1
|
|
218
|
+
}),
|
|
219
|
+
t(le, {
|
|
220
|
+
class: "table-top",
|
|
221
|
+
ref_key: "multipleTableRef",
|
|
222
|
+
ref: B,
|
|
223
|
+
"row-keys": "moduleId",
|
|
224
|
+
"table-data": o(V),
|
|
225
|
+
"list-loading": o(P),
|
|
226
|
+
"table-label": o(f),
|
|
227
|
+
onTableSelected: G
|
|
228
|
+
}, {
|
|
229
|
+
sort: n((l) => [
|
|
230
|
+
t(N, {
|
|
231
|
+
size: "16",
|
|
232
|
+
onClick: (w) => o(K)(l.data.row.moduleId)
|
|
233
|
+
}, {
|
|
234
|
+
default: n(() => [
|
|
235
|
+
t(oe)
|
|
236
|
+
]),
|
|
237
|
+
_: 2
|
|
238
|
+
}, 1032, ["onClick"]),
|
|
239
|
+
t(N, {
|
|
240
|
+
size: "16",
|
|
241
|
+
onClick: (w) => o(z)(l.data.row.moduleId)
|
|
242
|
+
}, {
|
|
243
|
+
default: n(() => [
|
|
244
|
+
t(te)
|
|
245
|
+
]),
|
|
246
|
+
_: 2
|
|
247
|
+
}, 1032, ["onClick"])
|
|
248
|
+
]),
|
|
249
|
+
operation: n((l) => [
|
|
250
|
+
C((r(), $("span", {
|
|
251
|
+
class: "el-button-color",
|
|
252
|
+
onClick: (w) => O(l.data.row)
|
|
253
|
+
}, [
|
|
254
|
+
m(u(e.$t("common.edit")), 1)
|
|
255
|
+
], 8, Se)), [
|
|
256
|
+
[g, ["rbac:module:update"]]
|
|
257
|
+
]),
|
|
258
|
+
C((r(), $("span", {
|
|
259
|
+
class: "el-button-color dropdown-left",
|
|
260
|
+
onClick: (w) => o(U)(l.data.row.moduleId)
|
|
261
|
+
}, [
|
|
262
|
+
m(u(e.$t("common.delete")), 1)
|
|
263
|
+
], 8, De)), [
|
|
264
|
+
[g, ["rbac:module:delete"]]
|
|
265
|
+
])
|
|
266
|
+
]),
|
|
267
|
+
_: 1
|
|
268
|
+
}, 8, ["table-data", "list-loading", "table-label"]),
|
|
269
|
+
o(_) > 0 ? (r(), v(ne, {
|
|
270
|
+
key: 0,
|
|
271
|
+
total: o(_),
|
|
272
|
+
"onUpdate:total": a[3] || (a[3] = (l) => ve(_) ? _.value = l : null),
|
|
273
|
+
page: d.curPage,
|
|
274
|
+
"onUpdate:page": a[4] || (a[4] = (l) => d.curPage = l),
|
|
275
|
+
limit: d.pageSize,
|
|
276
|
+
"onUpdate:limit": a[5] || (a[5] = (l) => d.pageSize = l),
|
|
277
|
+
onPagination: o(h)
|
|
278
|
+
}, null, 8, ["total", "page", "limit", "onPagination"])) : S("", !0),
|
|
279
|
+
i.visible ? (r(), v(Ne, {
|
|
280
|
+
key: 1,
|
|
281
|
+
dialog: i,
|
|
282
|
+
"form-data": o(c),
|
|
283
|
+
onDialogEvent: W,
|
|
284
|
+
onRefresh: X
|
|
285
|
+
}, null, 8, ["dialog", "form-data"])) : S("", !0)
|
|
286
|
+
]);
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
export {
|
|
291
|
+
je as default
|
|
292
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ap as r, c as a } from "./index-CrNYgyNm.mjs";
|
|
2
|
+
function u(e) {
|
|
3
|
+
return r({
|
|
4
|
+
url: "/v1/rbac/perm/page",
|
|
5
|
+
method: "get",
|
|
6
|
+
params: e
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
function m(e) {
|
|
10
|
+
const t = {
|
|
11
|
+
tenant: a().user.tenant,
|
|
12
|
+
permId: e
|
|
13
|
+
};
|
|
14
|
+
return r({
|
|
15
|
+
url: "/v1/rbac/perm/id",
|
|
16
|
+
method: "delete",
|
|
17
|
+
params: t
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function c(e) {
|
|
21
|
+
return r({
|
|
22
|
+
url: "/v1/rbac/perm",
|
|
23
|
+
method: "post",
|
|
24
|
+
data: e
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function s(e) {
|
|
28
|
+
return r({
|
|
29
|
+
url: "/v1/rbac/perm",
|
|
30
|
+
method: "patch",
|
|
31
|
+
data: e
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function p(e) {
|
|
35
|
+
const t = {
|
|
36
|
+
tenant: a().user.tenant,
|
|
37
|
+
permId: e
|
|
38
|
+
};
|
|
39
|
+
return r({
|
|
40
|
+
url: "/v1/rbac/perm/batch",
|
|
41
|
+
method: "put",
|
|
42
|
+
data: t
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function o(e) {
|
|
46
|
+
const t = {
|
|
47
|
+
tenant: a().user.tenant,
|
|
48
|
+
moduleId: e
|
|
49
|
+
};
|
|
50
|
+
return r({
|
|
51
|
+
url: "/v1/rbac/perm/permlist",
|
|
52
|
+
method: "get",
|
|
53
|
+
params: t
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function d(e) {
|
|
57
|
+
return r({
|
|
58
|
+
url: "/v1/rbac/perm/check",
|
|
59
|
+
method: "get",
|
|
60
|
+
params: {
|
|
61
|
+
tenant: a().user.tenant,
|
|
62
|
+
permCode: e
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
c as a,
|
|
68
|
+
p as b,
|
|
69
|
+
d as c,
|
|
70
|
+
m as d,
|
|
71
|
+
s as e,
|
|
72
|
+
u as g,
|
|
73
|
+
o as p
|
|
74
|
+
};
|