@code0-tech/pictor 0.10.4 → 0.10.6
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/assets/components/json-view/JsonView.style.css +1 -0
- package/dist/components/breadcrumb/Breadcrumb.js +2 -2
- package/dist/components/button/Button.js +11 -11
- package/dist/components/command/Command.js +19 -22
- package/dist/components/data-table/DataTable.js +15 -15
- package/dist/components/data-table/DataTableFilterSuggestionMenu.js +15 -15
- package/dist/components/editor/Editor.js +13 -13
- package/dist/components/form/CheckboxInput.js +4 -4
- package/dist/components/form/EditorInput.js +69 -64
- package/dist/components/form/EmailInput.js +9 -9
- package/dist/components/form/InputContentEditable.hook.js +11 -11
- package/dist/components/form/InputWrapper.js +15 -15
- package/dist/components/form/NumberInput.js +9 -9
- package/dist/components/form/PasswordInput.js +4 -4
- package/dist/components/form/SwitchInput.js +7 -7
- package/dist/components/form/TextAreaInput.js +6 -6
- package/dist/components/form/TextInput.js +6 -6
- package/dist/components/form/useForm.js +2 -2
- package/dist/components/fullscreen/FullScreen.js +2 -2
- package/dist/components/gantt/Gantt.js +67 -54
- package/dist/components/gantt/GanttGroup.js +117 -98
- package/dist/components/gantt/GanttHeader.js +45 -36
- package/dist/components/json-view/JsonView.d.ts +19 -0
- package/dist/components/json-view/JsonView.js +107 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +102 -100
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js +59 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js +34 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js +47 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js +12 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.js +28 -0
- package/dist/node_modules/react/cjs/react-compiler-runtime.development.js +2 -2
- package/dist/node_modules/react/cjs/react-compiler-runtime.production.js +8 -8
- package/dist/utils/reactiveArrayService.js +4 -4
- package/package.json +9 -7
- package/dist/components/gantt/GanttFooter.d.ts +0 -2
- package/dist/components/gantt/GanttFooter.js +0 -38
|
@@ -10,18 +10,18 @@ import { InputDescription as F } from "./InputDescription.js";
|
|
|
10
10
|
import '../../assets/components/form/InputWrapper.style.css';/* empty css */
|
|
11
11
|
const K = N.forwardRef((C, L) => {
|
|
12
12
|
const e = j.c(29), {
|
|
13
|
-
children:
|
|
14
|
-
wrapperComponent:
|
|
15
|
-
left:
|
|
16
|
-
right:
|
|
13
|
+
children: w,
|
|
14
|
+
wrapperComponent: f,
|
|
15
|
+
left: m,
|
|
16
|
+
right: d,
|
|
17
17
|
leftType: M,
|
|
18
18
|
rightType: T,
|
|
19
|
-
title:
|
|
19
|
+
title: c,
|
|
20
20
|
description: u,
|
|
21
21
|
formValidation: h
|
|
22
22
|
} = C;
|
|
23
23
|
let g;
|
|
24
|
-
e[0] !==
|
|
24
|
+
e[0] !== f ? (g = f === void 0 ? {} : f, e[0] = f, e[1] = g) : g = e[1];
|
|
25
25
|
const V = g, x = M === void 0 ? "icon" : M, y = T === void 0 ? "action" : T;
|
|
26
26
|
let v;
|
|
27
27
|
e[2] !== h ? (v = h === void 0 ? {
|
|
@@ -31,31 +31,31 @@ const K = N.forwardRef((C, L) => {
|
|
|
31
31
|
} : h, e[2] = h, e[3] = v) : v = e[3];
|
|
32
32
|
const t = v;
|
|
33
33
|
let i;
|
|
34
|
-
e[4] !==
|
|
34
|
+
e[4] !== c ? (i = c && /* @__PURE__ */ a(E, { children: c }), e[4] = c, e[5] = i) : i = e[5];
|
|
35
35
|
let r;
|
|
36
36
|
e[6] !== u ? (r = u && /* @__PURE__ */ a(F, { children: u }), e[6] = u, e[7] = r) : r = e[7];
|
|
37
37
|
const I = `input-wrapper ${t?.valid ? "" : "input-wrapper--not-valid"}`;
|
|
38
38
|
let l;
|
|
39
39
|
e[8] !== I || e[9] !== V ? (l = b(I, V), e[8] = I, e[9] = V, e[10] = l) : l = e[10];
|
|
40
40
|
let o;
|
|
41
|
-
e[11] !==
|
|
41
|
+
e[11] !== m || e[12] !== x ? (o = m && /* @__PURE__ */ a("div", { className: `input-wrapper__left input__left--${x}`, children: m }), e[11] = m, e[12] = x, e[13] = o) : o = e[13];
|
|
42
42
|
let p;
|
|
43
|
-
e[14] !==
|
|
43
|
+
e[14] !== d || e[15] !== y ? (p = d && /* @__PURE__ */ a("div", { className: `input-wrapper__right input-wrapper__right--${y}`, children: d }), e[14] = d, e[15] = y, e[16] = p) : p = e[16];
|
|
44
44
|
let n;
|
|
45
|
-
e[17] !==
|
|
45
|
+
e[17] !== w || e[18] !== o || e[19] !== p || e[20] !== l ? (n = /* @__PURE__ */ $("div", { ...l, children: [
|
|
46
46
|
o,
|
|
47
|
-
|
|
47
|
+
w,
|
|
48
48
|
p
|
|
49
|
-
] }), e[17] =
|
|
49
|
+
] }), e[17] = w, e[18] = o, e[19] = p, e[20] = l, e[21] = n) : n = e[21];
|
|
50
50
|
let s;
|
|
51
51
|
e[22] !== t ? (s = !t?.valid && t?.notValidMessage && /* @__PURE__ */ a(D, { children: t.notValidMessage }), e[22] = t, e[23] = s) : s = e[23];
|
|
52
|
-
let
|
|
53
|
-
return e[24] !== n || e[25] !== s || e[26] !== i || e[27] !== r ? (
|
|
52
|
+
let _;
|
|
53
|
+
return e[24] !== n || e[25] !== s || e[26] !== i || e[27] !== r ? (_ = /* @__PURE__ */ $(R, { children: [
|
|
54
54
|
i,
|
|
55
55
|
r,
|
|
56
56
|
n,
|
|
57
57
|
s
|
|
58
|
-
] }), e[24] = n, e[25] = s, e[26] = i, e[27] = r, e[28] =
|
|
58
|
+
] }), e[24] = n, e[25] = s, e[26] = i, e[27] = r, e[28] = _) : _ = e[28], _;
|
|
59
59
|
});
|
|
60
60
|
export {
|
|
61
61
|
K as InputWrapper
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import u from "react";
|
|
3
3
|
import { Input as i } from "./Input.js";
|
|
4
4
|
import { IconMinus as a, IconPlus as l } from "@tabler/icons-react";
|
|
5
5
|
import { Button as e } from "../button/Button.js";
|
|
6
|
-
const
|
|
7
|
-
|
|
6
|
+
const N = u.forwardRef((o, t) => {
|
|
7
|
+
t = t || u.useRef(null);
|
|
8
8
|
const {
|
|
9
9
|
step: r = 1,
|
|
10
10
|
...c
|
|
11
11
|
} = o;
|
|
12
|
-
return /* @__PURE__ */
|
|
13
|
-
|
|
14
|
-
}, children: /* @__PURE__ */
|
|
15
|
-
|
|
16
|
-
}, children: /* @__PURE__ */
|
|
12
|
+
return /* @__PURE__ */ n(i, { className: "number-input", right: /* @__PURE__ */ n(e, { variant: "none", onClick: () => {
|
|
13
|
+
t.current && (t.current.value || (t.current.value = "0"), t.current.value = (Number.parseInt(t.current.value) + r).toString());
|
|
14
|
+
}, children: /* @__PURE__ */ n(l, { size: 13 }) }), left: /* @__PURE__ */ n(e, { variant: "none", onClick: () => {
|
|
15
|
+
t.current && (t.current.value || (t.current.value = "0"), t.current.value = (Number.parseInt(t.current.value) - r).toString());
|
|
16
|
+
}, children: /* @__PURE__ */ n(a, { size: 13 }) }), leftType: "action", type: "number", ref: t, ...c });
|
|
17
17
|
});
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
N as NumberInput
|
|
20
20
|
};
|
|
@@ -6,7 +6,7 @@ import { Button as p } from "../button/Button.js";
|
|
|
6
6
|
import { clearInputElement as w } from "./Input.utils.js";
|
|
7
7
|
import { Flex as o } from "../flex/Flex.js";
|
|
8
8
|
import { Text as a } from "../text/Text.js";
|
|
9
|
-
const
|
|
9
|
+
const v = u.forwardRef((n, e) => {
|
|
10
10
|
e = e || u.useRef(null);
|
|
11
11
|
const {
|
|
12
12
|
clearable: m = !0,
|
|
@@ -57,12 +57,12 @@ const A = u.forwardRef((n, e) => {
|
|
|
57
57
|
] })
|
|
58
58
|
] })
|
|
59
59
|
] });
|
|
60
|
-
}),
|
|
60
|
+
}), A = (n) => {
|
|
61
61
|
if (!n) return "12345";
|
|
62
62
|
let e = null;
|
|
63
63
|
return n.length < 8 && (e = (e ?? "") + "1"), /[a-z]/.test(n) || (e = (e ?? "") + "2"), /[A-Z]/.test(n) || (e = (e ?? "") + "3"), /[0-9]/.test(n) || (e = (e ?? "") + "4"), /[^A-Za-z0-9]/.test(n) || (e = (e ?? "") + "5"), e;
|
|
64
64
|
};
|
|
65
65
|
export {
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
v as PasswordInput,
|
|
67
|
+
A as passwordValidation
|
|
68
68
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import e from "react";
|
|
3
3
|
import { Input as p } from "./Input.js";
|
|
4
4
|
const m = e.forwardRef((r, t) => {
|
|
5
5
|
t = t || e.useRef(null);
|
|
6
6
|
const {
|
|
7
|
-
value:
|
|
8
|
-
initialValue:
|
|
9
|
-
...
|
|
7
|
+
value: l,
|
|
8
|
+
initialValue: o,
|
|
9
|
+
...u
|
|
10
10
|
} = r;
|
|
11
|
-
return /* @__PURE__ */
|
|
11
|
+
return /* @__PURE__ */ n(p, { wrapperComponent: {
|
|
12
12
|
className: "switch-input"
|
|
13
|
-
}, type: "checkbox", right: null, left: null, ref: t, value:
|
|
13
|
+
}, type: "checkbox", right: null, left: null, ref: t, value: l, ...o ? {
|
|
14
14
|
defaultChecked: !0
|
|
15
|
-
} : {}, ...
|
|
15
|
+
} : {}, ...u });
|
|
16
16
|
});
|
|
17
17
|
export {
|
|
18
18
|
m as SwitchInput
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import a from "react";
|
|
3
3
|
import { Input as u } from "./Input.js";
|
|
4
4
|
import { IconX as f } from "@tabler/icons-react";
|
|
5
5
|
import { Button as p } from "../button/Button.js";
|
|
6
6
|
import { clearInputElement as s } from "./Input.utils.js";
|
|
7
|
-
const
|
|
7
|
+
const R = a.forwardRef((r, t) => {
|
|
8
8
|
t = t || a.useRef(null);
|
|
9
9
|
const {
|
|
10
10
|
clearable: i = !1,
|
|
11
11
|
right: l,
|
|
12
12
|
...m
|
|
13
|
-
} = r, c = (
|
|
14
|
-
s(t.current), r.onClear && r.onClear(
|
|
13
|
+
} = r, c = (e) => {
|
|
14
|
+
s(t.current), r.onClear && r.onClear(e);
|
|
15
15
|
}, n = [l];
|
|
16
|
-
return i && n.push(/* @__PURE__ */
|
|
16
|
+
return i && n.push(/* @__PURE__ */ o(p, { variant: "none", onClick: (e) => c(e), children: /* @__PURE__ */ o(f, { size: 13 }) })), /* @__PURE__ */ o(u, { right: n, type: "textarea", ref: t, ...m });
|
|
17
17
|
});
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
R as TextAreaInput
|
|
20
20
|
};
|
|
@@ -4,17 +4,17 @@ import { Input as u } from "./Input.js";
|
|
|
4
4
|
import { IconX as f } from "@tabler/icons-react";
|
|
5
5
|
import { Button as p } from "../button/Button.js";
|
|
6
6
|
import { clearInputElement as s } from "./Input.utils.js";
|
|
7
|
-
const
|
|
7
|
+
const R = i.forwardRef((r, t) => {
|
|
8
8
|
t = t || i.useRef(null);
|
|
9
9
|
const {
|
|
10
10
|
clearable: l = !1,
|
|
11
|
-
right:
|
|
12
|
-
...
|
|
11
|
+
right: a,
|
|
12
|
+
...m
|
|
13
13
|
} = r, c = (o) => {
|
|
14
14
|
s(t.current), r.onClear && r.onClear(o);
|
|
15
|
-
}, n = [
|
|
16
|
-
return l && n.push(/* @__PURE__ */ e(p, { variant: "none", onClick: (o) => c(o), children: /* @__PURE__ */ e(f, { size: 13 }) })), /* @__PURE__ */ e(u, { right: n, type: "text", ref: t, ...
|
|
15
|
+
}, n = [a];
|
|
16
|
+
return l && n.push(/* @__PURE__ */ e(p, { variant: "none", onClick: (o) => c(o), children: /* @__PURE__ */ e(f, { size: 13 }) })), /* @__PURE__ */ e(u, { right: n, type: "text", ref: t, ...m });
|
|
17
17
|
});
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
R as TextInput
|
|
20
20
|
};
|
|
@@ -5,7 +5,7 @@ import l from "react";
|
|
|
5
5
|
import { mergeComponentProps as f } from "../../utils/component.js";
|
|
6
6
|
import "js-md5";
|
|
7
7
|
import '../../assets/components/fullscreen/FullScreen.style.css';/* empty css */
|
|
8
|
-
const
|
|
8
|
+
const M = (i) => {
|
|
9
9
|
const e = m.c(7), t = l.useRef(null);
|
|
10
10
|
let r, o;
|
|
11
11
|
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = () => {
|
|
@@ -24,5 +24,5 @@ const R = (i) => {
|
|
|
24
24
|
return e[4] !== i.children || e[5] !== n ? (d = /* @__PURE__ */ u("div", { ...n, ref: t, children: i.children }), e[4] = i.children, e[5] = n, e[6] = d) : d = e[6], d;
|
|
25
25
|
};
|
|
26
26
|
export {
|
|
27
|
-
|
|
27
|
+
M as FullScreen
|
|
28
28
|
};
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { c as
|
|
1
|
+
import { jsx as f, jsxs as T } from "react/jsx-runtime";
|
|
2
|
+
import { c as W } from "../../_virtual/compiler-runtime.js";
|
|
3
3
|
import "../../utils/contextStore.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import "merge-props";
|
|
6
|
-
import { hashToColor as
|
|
6
|
+
import { hashToColor as k } from "../../utils/color.js";
|
|
7
7
|
import '../../assets/components/gantt/Gantt.style.css';/* empty css */
|
|
8
|
-
import { ScrollAreaViewport as
|
|
9
|
-
import { GanttGroup as
|
|
10
|
-
const
|
|
11
|
-
const t =
|
|
12
|
-
items:
|
|
13
|
-
stepWidth:
|
|
14
|
-
rowHeight:
|
|
15
|
-
step:
|
|
16
|
-
children:
|
|
17
|
-
} = s,
|
|
18
|
-
let e
|
|
19
|
-
t[0] !==
|
|
8
|
+
import { ScrollAreaViewport as z, ScrollAreaScrollbar as B, ScrollAreaThumb as H, ScrollArea as C } from "../scroll-area/ScrollArea.js";
|
|
9
|
+
import { GanttGroup as D } from "./GanttGroup.js";
|
|
10
|
+
const U = (s) => {
|
|
11
|
+
const t = W.c(18), {
|
|
12
|
+
items: h,
|
|
13
|
+
stepWidth: b,
|
|
14
|
+
rowHeight: E,
|
|
15
|
+
step: G,
|
|
16
|
+
children: w
|
|
17
|
+
} = s, I = b === void 0 ? "50px" : b, _ = E === void 0 ? "50px" : E, n = G === void 0 ? 1 : G;
|
|
18
|
+
let e;
|
|
19
|
+
t[0] !== h || t[1] !== n ? (e = [], h?.forEach((r) => {
|
|
20
20
|
const o = r.end - r.start;
|
|
21
|
-
let
|
|
21
|
+
let c = !1;
|
|
22
22
|
if (e.length <= 0) {
|
|
23
23
|
e.push({
|
|
24
24
|
step: o,
|
|
@@ -26,62 +26,75 @@ const P = (s) => {
|
|
|
26
26
|
});
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
e.
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
for (let p = 0; p < e.length; p++) {
|
|
30
|
+
const i = e[p], m = (i.step + o) / 1.75, M = i.step / 3 - 10, R = i.step * 3 + 10;
|
|
31
|
+
if (M < o && o < R) {
|
|
32
|
+
i.step = m, i.items.push(r), c = !0;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
c || e.push({
|
|
33
37
|
step: o,
|
|
34
38
|
items: [r]
|
|
35
39
|
});
|
|
36
|
-
}), e.sort(
|
|
40
|
+
}), e.sort(q).forEach((r, o) => {
|
|
37
41
|
if (o > 0) {
|
|
38
|
-
|
|
42
|
+
let c = 1 / 0, p = -1 / 0;
|
|
43
|
+
for (let i = 0; i < r.items.length; i++) {
|
|
44
|
+
const m = r.items[i];
|
|
45
|
+
m.start < c && (c = m.start), m.end > p && (p = m.end);
|
|
46
|
+
}
|
|
39
47
|
e[0].items.push({
|
|
40
|
-
start:
|
|
41
|
-
end:
|
|
48
|
+
start: c,
|
|
49
|
+
end: p + e[0].step * n / 6,
|
|
42
50
|
id: `group-source-${o}`,
|
|
43
51
|
type: "group",
|
|
44
52
|
data: {
|
|
45
53
|
items: r.items,
|
|
46
|
-
step:
|
|
54
|
+
step: n,
|
|
47
55
|
firstGroupStep: e[0].step,
|
|
48
56
|
groupStep: r.step,
|
|
49
57
|
displayMessage: `${o}`,
|
|
50
|
-
color:
|
|
58
|
+
color: k(`group-source-${o}`)
|
|
51
59
|
}
|
|
52
60
|
});
|
|
53
61
|
}
|
|
54
|
-
}),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
t[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ c(A, { orientation: "horizontal", children: /* @__PURE__ */ c(E, {}) }), t[11] = h) : h = t[11];
|
|
62
|
+
}), t[0] = h, t[1] = n, t[2] = e) : e = t[2];
|
|
63
|
+
let d = 1 / 0;
|
|
64
|
+
const l = e[0].items;
|
|
65
|
+
for (let r = 0; r < l.length; r++)
|
|
66
|
+
l[r].start < d && (d = l[r].start);
|
|
60
67
|
let u;
|
|
61
|
-
t[
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
t[3] !== l || t[4] !== e[0].step || t[5] !== d ? (u = {
|
|
69
|
+
targetItems: l,
|
|
70
|
+
targetStep: e[0].step,
|
|
71
|
+
minStart: d
|
|
72
|
+
}, t[3] = l, t[4] = e[0].step, t[5] = d, t[6] = u) : u = t[6];
|
|
73
|
+
const {
|
|
74
|
+
targetItems: $,
|
|
75
|
+
targetStep: A,
|
|
76
|
+
minStart: j
|
|
77
|
+
} = u, V = j - j / (A * n) * (A * n), x = A * n;
|
|
78
|
+
let a;
|
|
79
|
+
t[7] !== w || t[8] !== _ || t[9] !== I || t[10] !== V || t[11] !== x || t[12] !== $ ? (a = /* @__PURE__ */ f(z, { children: /* @__PURE__ */ f(D, { children: w, id: "group-target", hideScaling: !1, start: V, step: x, stepWidth: I, rowHeight: _, items: $ }, "group-target") }), t[7] = w, t[8] = _, t[9] = I, t[10] = V, t[11] = x, t[12] = $, t[13] = a) : a = t[13];
|
|
80
|
+
let g;
|
|
81
|
+
t[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ f(B, { orientation: "horizontal", children: /* @__PURE__ */ f(H, {}) }), t[14] = g) : g = t[14];
|
|
82
|
+
let S;
|
|
83
|
+
t[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ f(B, { orientation: "vertical", children: /* @__PURE__ */ f(H, {}) }), t[15] = S) : S = t[15];
|
|
84
|
+
let y;
|
|
85
|
+
return t[16] !== a ? (y = /* @__PURE__ */ T(C, { w: "100%", h: "100%", type: "hover", children: [
|
|
86
|
+
a,
|
|
87
|
+
g,
|
|
88
|
+
S
|
|
89
|
+
] }), t[16] = a, t[17] = y) : y = t[17], y;
|
|
90
|
+
}, X = (s) => {
|
|
91
|
+
const t = s > 5e5 ? s / 1e6 : s > 500 ? s / 1e3 : s, h = s > 5e5 ? "s" : s > 500 ? "ms" : "μs";
|
|
92
|
+
return `${Math.round(t * 10) / 10}${h}`;
|
|
71
93
|
};
|
|
72
|
-
function
|
|
94
|
+
function q(s, t) {
|
|
73
95
|
return t.step - s.step;
|
|
74
96
|
}
|
|
75
|
-
function C(s) {
|
|
76
|
-
return s.start;
|
|
77
|
-
}
|
|
78
|
-
function D(s) {
|
|
79
|
-
return s.end;
|
|
80
|
-
}
|
|
81
|
-
function k(s) {
|
|
82
|
-
return s.start;
|
|
83
|
-
}
|
|
84
97
|
export {
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
U as Gantt,
|
|
99
|
+
X as getRelativeValue
|
|
87
100
|
};
|