@code0-tech/pictor 0.0.0-mvp.31 → 0.0.0-mvp.32
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/components/avatar/Avatar.js +7 -7
- package/dist/components/breadcrumb/Breadcrumb.js +4 -4
- package/dist/components/button/Button.js +8 -8
- package/dist/components/context-menu/ContextMenu.js +131 -131
- package/dist/components/d-flow/DFlow.edges.hook.js +22 -22
- package/dist/components/d-flow/DFlow.js +32 -32
- package/dist/components/d-flow/DFlow.nodes.hook.js +8 -8
- package/dist/components/d-flow-file/DFlowTabDefault.js +16 -16
- package/dist/components/d-flow-folder/DFlowFolder.js +13 -13
- package/dist/components/d-flow-folder/DFlowFolderContextMenu.js +5 -5
- package/dist/components/d-flow-folder/DFlowFolderCreateDialog.js +13 -13
- package/dist/components/d-flow-folder/DFlowFolderDeleteDialog.js +5 -5
- package/dist/components/d-flow-folder/DFlowFolderRenameDialog.js +11 -11
- package/dist/components/d-flow-function/DFlowFunctionDefaultCard.js +7 -7
- package/dist/components/d-flow-function/DFlowFunctionSuggestionCard.js +9 -9
- package/dist/components/d-flow-function/DFlowFunctionTriggerCard.js +12 -12
- package/dist/components/d-flow-input/DFlowInputDataType.js +16 -16
- package/dist/components/d-flow-input/DFlowInputNodeBadge.js +8 -8
- package/dist/components/d-flow-input/DFlowInputReferenceBadge.js +4 -4
- package/dist/components/d-flow-panel/DFlowExport.js +5 -5
- package/dist/components/d-flow-panel/DFlowPanelControl.js +4 -4
- package/dist/components/d-flow-suggestion/DFlowFunctionSuggestions.hook.js +4 -4
- package/dist/components/d-flow-suggestion/DFlowSuggestion.hook.js +7 -7
- package/dist/components/d-flow-suggestion/DFlowSuggestionMenu.js +12 -12
- package/dist/components/d-flow-suggestion/DFlowSuggestionSearchInput.js +5 -5
- package/dist/components/d-flow-suggestion/DFlowValueSuggestions.hook.js +4 -4
- package/dist/components/d-flow-validation/DNodeValidation.hook.js +3 -3
- package/dist/components/d-fullscreen/DFullScreen.js +2 -2
- package/dist/components/d-member/DNamespaceMemberList.js +5 -5
- package/dist/components/d-organization/DOrganizationList.js +7 -7
- package/dist/components/d-organization/DOrganizationMenu.js +5 -5
- package/dist/components/d-organization/DOrganizatonContent.js +22 -22
- package/dist/components/d-project/DNamespaceProjectContent.js +6 -6
- package/dist/components/d-project/DNamespaceProjectList.js +5 -5
- package/dist/components/d-project/DNamespaceProjectMenu.js +2 -2
- package/dist/components/d-role/DNamespaceRolePermissions.js +5 -5
- package/dist/components/d-runtime/DRuntimeList.js +7 -7
- package/dist/components/d-user/DUser.session.hook.js +2 -2
- package/dist/components/d-user/DUserContent.js +13 -13
- package/dist/components/d-user/DUserList.js +9 -9
- package/dist/components/form/CheckboxInput.js +4 -4
- package/dist/components/form/EmailInput.js +9 -9
- package/dist/components/form/Input.js +311 -230
- package/dist/components/form/Input.utils.js +1 -1
- package/dist/components/form/InputContentEditable.hook.d.ts +14 -2
- package/dist/components/form/InputContentEditable.hook.js +296 -317
- package/dist/components/form/NumberInput.js +9 -9
- package/dist/components/form/PasswordInput.js +2 -2
- package/dist/components/form/SwitchInput.js +7 -7
- package/dist/components/form/TextInput.js +6 -6
- 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/objectStore.js +15 -15
- package/dist/utils/reactiveArrayService.js +10 -10
- package/package.json +18 -18
- package/dist/_virtual/_commonjsHelpers.js +0 -6
- package/dist/_virtual/index.js +0 -4
- package/dist/_virtual/index2.js +0 -4
- package/dist/_virtual/react-contenteditable.js +0 -7
- package/dist/_virtual/react-contenteditable2.js +0 -4
- package/dist/_virtual/react-dom-server-legacy.browser.development.js +0 -4
- package/dist/_virtual/react-dom-server-legacy.browser.production.js +0 -4
- package/dist/_virtual/react-dom-server.browser.development.js +0 -4
- package/dist/_virtual/react-dom-server.browser.production.js +0 -4
- package/dist/_virtual/react-is.development.js +0 -4
- package/dist/_virtual/react-is.production.min.js +0 -4
- package/dist/_virtual/server.browser.js +0 -5
- package/dist/_virtual/server.browser2.js +0 -4
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +0 -527
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +0 -402
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +0 -208
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -136
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +0 -130
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +0 -9
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +0 -24
- package/dist/node_modules/@radix-ui/react-collection/dist/index.js +0 -48
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -29
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +0 -53
- package/dist/node_modules/@radix-ui/react-context-menu/dist/index.js +0 -222
- package/dist/node_modules/@radix-ui/react-direction/dist/index.js +0 -10
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -127
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +0 -17
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -136
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +0 -13
- package/dist/node_modules/@radix-ui/react-menu/dist/index.js +0 -636
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js +0 -219
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +0 -15
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +0 -70
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +0 -36
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -183
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +0 -49
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -10
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -52
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -14
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -6
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +0 -27
- package/dist/node_modules/aria-hidden/dist/es2015/index.js +0 -52
- package/dist/node_modules/fast-deep-equal/index.js +0 -31
- package/dist/node_modules/get-nonce/dist/es2015/index.js +0 -7
- package/dist/node_modules/object-assign/index.js +0 -49
- package/dist/node_modules/prop-types/checkPropTypes.js +0 -54
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -52
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -329
- package/dist/node_modules/prop-types/index.js +0 -17
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -10
- package/dist/node_modules/prop-types/lib/has.js +0 -7
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -87
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -70
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -10
- package/dist/node_modules/react-contenteditable/lib/react-contenteditable.js +0 -132
- package/dist/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js +0 -6235
- package/dist/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +0 -4096
- package/dist/node_modules/react-dom/cjs/react-dom-server.browser.development.js +0 -6753
- package/dist/node_modules/react-dom/cjs/react-dom-server.browser.production.js +0 -4645
- package/dist/node_modules/react-dom/server.browser.js +0 -15
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +0 -11
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +0 -112
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +0 -31
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +0 -16
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +0 -68
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +0 -5
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +0 -7
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +0 -71
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +0 -7
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +0 -25
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js +0 -11
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +0 -15
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +0 -30
- package/dist/node_modules/tslib/tslib.es6.js +0 -27
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +0 -6
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +0 -26
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +0 -25
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js +0 -18
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js +0 -67
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { s as oe } from "../../_virtual/server.browser.js";
|
|
5
|
-
import { buildDefaultSyntax as se } from "./Input.syntax.hook.js";
|
|
6
|
-
const I = "input__token", j = "input__token--selected", Q = "title", k = "", O = (t) => (t ?? "").split(k).join(""), L = (t) => !!t && t.nodeType === Node.TEXT_NODE && (t.textContent ?? "") === k, U = (t) => {
|
|
1
|
+
import { c as Y } from "../../_virtual/compiler-runtime.js";
|
|
2
|
+
import Z from "react";
|
|
3
|
+
const F = "input__token", K = "input__token--selected", q = "aria-data", O = "", k = (t) => (t ?? "").split(O).join(""), D = (t) => !!t && t.nodeType === Node.TEXT_NODE && (t.textContent ?? "") === O, U = (t) => {
|
|
7
4
|
try {
|
|
8
5
|
return JSON.stringify(t);
|
|
9
6
|
} catch {
|
|
@@ -11,461 +8,443 @@ const I = "input__token", j = "input__token--selected", Q = "title", k = "",
|
|
|
11
8
|
value: String(t ?? "")
|
|
12
9
|
});
|
|
13
10
|
}
|
|
14
|
-
},
|
|
11
|
+
}, ee = (t) => {
|
|
15
12
|
if (!t) return null;
|
|
16
13
|
try {
|
|
17
14
|
return JSON.parse(t);
|
|
18
15
|
} catch {
|
|
19
16
|
return null;
|
|
20
17
|
}
|
|
21
|
-
},
|
|
18
|
+
}, te = (t) => t == null ? "" : typeof t == "string" ? t : U(t), j = (t) => {
|
|
22
19
|
const e = (t.innerHTML ?? "").trim().toLowerCase();
|
|
23
20
|
(e === "<br>" || e === "<br/>" || e === "<br />") && (t.innerHTML = ""), t.childNodes.length === 1 && t.childNodes[0]?.tagName === "BR" && (t.innerHTML = "");
|
|
24
|
-
},
|
|
21
|
+
}, C = (t) => t instanceof HTMLElement && t.classList.contains(F), ne = (t) => {
|
|
25
22
|
let e = t;
|
|
26
23
|
for (; e; ) {
|
|
27
|
-
if (
|
|
24
|
+
if (C(e)) return !0;
|
|
28
25
|
e = e.parentNode;
|
|
29
26
|
}
|
|
30
27
|
return !1;
|
|
31
|
-
},
|
|
28
|
+
}, re = (t) => {
|
|
32
29
|
if (t && typeof t == "object") {
|
|
33
30
|
const {
|
|
34
31
|
children: e,
|
|
35
|
-
__contentHtml:
|
|
36
|
-
...
|
|
32
|
+
__contentHtml: r,
|
|
33
|
+
...n
|
|
37
34
|
} = t;
|
|
38
|
-
return
|
|
35
|
+
return n;
|
|
39
36
|
}
|
|
40
37
|
return {
|
|
41
38
|
value: t
|
|
42
39
|
};
|
|
43
|
-
}, P = (t) =>
|
|
40
|
+
}, P = (t) => ee(t.getAttribute(q)) ?? {
|
|
44
41
|
value: t.textContent ?? ""
|
|
45
|
-
},
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
const r =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
n.textContent = String(i ?? "");
|
|
54
|
-
}
|
|
55
|
-
return n.style.display = "inline-flex", n.style.alignItems = "center", n.style.verticalAlign = "middle", n.style.userSelect = "text", n.style.webkitUserSelect = "text", n;
|
|
56
|
-
}, K = (t) => {
|
|
42
|
+
}, oe = (t) => {
|
|
43
|
+
const e = document.createElement("span");
|
|
44
|
+
e.setAttribute("contenteditable", "false"), e.className = F;
|
|
45
|
+
const r = re(t);
|
|
46
|
+
e.setAttribute(q, U(r));
|
|
47
|
+
const n = r?.label ?? r?.value ?? "";
|
|
48
|
+
return e.textContent = String(n ?? ""), e.style.display = "inline-flex", e.style.alignItems = "center", e.style.verticalAlign = "middle", e.style.userSelect = "text", e.style.webkitUserSelect = "text", e;
|
|
49
|
+
}, se = (t) => {
|
|
57
50
|
const e = window.getSelection();
|
|
58
51
|
if (e && e.rangeCount > 0) {
|
|
59
|
-
const
|
|
60
|
-
if (t.contains(
|
|
52
|
+
const o = e.getRangeAt(0);
|
|
53
|
+
if (t.contains(o.startContainer)) return o;
|
|
61
54
|
}
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
const r = window.getSelection();
|
|
65
|
-
return r?.removeAllRanges(), r?.addRange(n), n;
|
|
66
|
-
}, le = (t, e) => {
|
|
67
|
-
if (!t) return;
|
|
55
|
+
const r = document.createRange();
|
|
56
|
+
r.selectNodeContents(t), r.collapse(!1);
|
|
68
57
|
const n = window.getSelection();
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (!t
|
|
72
|
-
r.
|
|
73
|
-
|
|
74
|
-
r.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
58
|
+
return n?.removeAllRanges(), n?.addRange(r), r;
|
|
59
|
+
}, ae = (t, e) => {
|
|
60
|
+
if (!t) return;
|
|
61
|
+
const r = window.getSelection();
|
|
62
|
+
if (!r || r.rangeCount === 0) return;
|
|
63
|
+
const n = r.getRangeAt(0);
|
|
64
|
+
if (!t.contains(n.startContainer)) return;
|
|
65
|
+
n.deleteContents();
|
|
66
|
+
const o = document.createTextNode(e);
|
|
67
|
+
n.insertNode(o);
|
|
68
|
+
const l = document.createRange();
|
|
69
|
+
l.setStartAfter(o), l.collapse(!0), r.removeAllRanges(), r.addRange(l);
|
|
70
|
+
}, ce = (t) => {
|
|
78
71
|
if (!t) return [""];
|
|
79
|
-
const e = [],
|
|
80
|
-
if (
|
|
81
|
-
const
|
|
82
|
-
|
|
72
|
+
const e = [], r = (n) => {
|
|
73
|
+
if (n.nodeType === Node.TEXT_NODE) {
|
|
74
|
+
const l = k(n.textContent ?? "");
|
|
75
|
+
l.length && e.push(l);
|
|
83
76
|
return;
|
|
84
77
|
}
|
|
85
|
-
if (
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
88
|
-
e.push(P(
|
|
78
|
+
if (n.nodeType !== Node.ELEMENT_NODE) return;
|
|
79
|
+
const o = n;
|
|
80
|
+
if (C(o)) {
|
|
81
|
+
e.push(P(o));
|
|
89
82
|
return;
|
|
90
83
|
}
|
|
91
|
-
Array.from(
|
|
84
|
+
Array.from(n.childNodes).forEach(r);
|
|
92
85
|
};
|
|
93
|
-
return Array.from(t.childNodes).forEach(
|
|
94
|
-
},
|
|
86
|
+
return Array.from(t.childNodes).forEach(r), e.length ? e.reduce((n, o) => (typeof o == "string" && typeof n[n.length - 1] == "string" ? n[n.length - 1] = `${n[n.length - 1]}${o}` : n.push(o), n), []) : [""];
|
|
87
|
+
}, ie = (t) => t.map((e) => {
|
|
95
88
|
if (typeof e == "string") return e;
|
|
96
|
-
const
|
|
97
|
-
return
|
|
98
|
-
}).join(""),
|
|
89
|
+
const r = e?.value ?? e;
|
|
90
|
+
return te(r);
|
|
91
|
+
}).join(""), le = (t) => {
|
|
99
92
|
const {
|
|
100
93
|
children: e,
|
|
101
|
-
__contentHtml:
|
|
102
|
-
...
|
|
94
|
+
__contentHtml: r,
|
|
95
|
+
...n
|
|
103
96
|
} = t;
|
|
104
|
-
return
|
|
97
|
+
return n;
|
|
105
98
|
}, z = (t) => {
|
|
106
99
|
if (!t) return null;
|
|
107
100
|
const e = window.getSelection();
|
|
108
101
|
if (!e || e.rangeCount === 0) return null;
|
|
109
|
-
const
|
|
110
|
-
if (!t.contains(
|
|
111
|
-
const
|
|
112
|
-
let
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
acceptNode: (
|
|
102
|
+
const r = e.getRangeAt(0);
|
|
103
|
+
if (!t.contains(r.startContainer)) return null;
|
|
104
|
+
const n = r.startContainer, o = r.startOffset;
|
|
105
|
+
let l = null;
|
|
106
|
+
n.nodeType === Node.ELEMENT_NODE && (l = n.childNodes[o] ?? null);
|
|
107
|
+
const m = document.createTreeWalker(t, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, {
|
|
108
|
+
acceptNode: (c) => c.nodeType === Node.TEXT_NODE ? ne(c) || (c.textContent ?? "") === O ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT : c.nodeType === Node.ELEMENT_NODE && C(c) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
|
|
116
109
|
});
|
|
117
|
-
let f = null, d =
|
|
118
|
-
for (; d && !(
|
|
119
|
-
if (d ===
|
|
120
|
-
const
|
|
121
|
-
if (
|
|
122
|
-
const
|
|
123
|
-
h.setStart(d, Math.min(
|
|
124
|
-
token:
|
|
110
|
+
let f = null, d = m.nextNode();
|
|
111
|
+
for (; d && !(l && d === l); ) {
|
|
112
|
+
if (d === n && d.nodeType === Node.TEXT_NODE) {
|
|
113
|
+
const c = d.textContent?.slice(0, o) ?? "", a = [...k(c).matchAll(/\S+/g)], s = a[a.length - 1];
|
|
114
|
+
if (s && s.index !== void 0) {
|
|
115
|
+
const N = s.index, p = N + s[0].length, h = document.createRange();
|
|
116
|
+
h.setStart(d, Math.min(N, c.length)), h.setEnd(d, Math.min(p, c.length)), f = {
|
|
117
|
+
token: s[0],
|
|
125
118
|
range: h
|
|
126
119
|
};
|
|
127
120
|
}
|
|
128
121
|
break;
|
|
129
122
|
}
|
|
130
|
-
if (
|
|
131
|
-
f = null, d =
|
|
123
|
+
if (C(d)) {
|
|
124
|
+
f = null, d = m.nextNode();
|
|
132
125
|
continue;
|
|
133
126
|
}
|
|
134
127
|
if (d.nodeType === Node.TEXT_NODE) {
|
|
135
|
-
const
|
|
136
|
-
if (
|
|
137
|
-
const
|
|
138
|
-
h.setStart(d, Math.min(
|
|
139
|
-
token:
|
|
128
|
+
const c = d.textContent ?? "", a = [...k(c).matchAll(/\S+/g)], s = a[a.length - 1];
|
|
129
|
+
if (s && s.index !== void 0) {
|
|
130
|
+
const N = s.index, p = N + s[0].length, h = document.createRange();
|
|
131
|
+
h.setStart(d, Math.min(N, c.length)), h.setEnd(d, Math.min(p, c.length)), f = {
|
|
132
|
+
token: s[0],
|
|
140
133
|
range: h
|
|
141
134
|
};
|
|
142
135
|
}
|
|
143
136
|
}
|
|
144
|
-
d =
|
|
137
|
+
d = m.nextNode();
|
|
145
138
|
}
|
|
146
139
|
return f;
|
|
147
|
-
},
|
|
140
|
+
}, de = (t) => {
|
|
148
141
|
const e = window.getSelection();
|
|
149
142
|
if (!e || e.rangeCount === 0) return null;
|
|
150
|
-
const
|
|
151
|
-
if (!t.contains(
|
|
152
|
-
const
|
|
153
|
-
if (f.nodeType === Node.TEXT_NODE) return
|
|
143
|
+
const r = e.getRangeAt(0);
|
|
144
|
+
if (!t.contains(r.startContainer) || !t.contains(r.endContainer)) return null;
|
|
145
|
+
const n = (f) => {
|
|
146
|
+
if (f.nodeType === Node.TEXT_NODE) return k(f.textContent ?? "").length;
|
|
154
147
|
if (f.nodeType === Node.ELEMENT_NODE) {
|
|
155
148
|
const d = f;
|
|
156
|
-
if (
|
|
157
|
-
const
|
|
158
|
-
return String(
|
|
149
|
+
if (C(d)) {
|
|
150
|
+
const u = P(d);
|
|
151
|
+
return String(u?.value ?? "").length;
|
|
159
152
|
}
|
|
160
|
-
let
|
|
161
|
-
return Array.from(f.childNodes).forEach((
|
|
153
|
+
let c = 0;
|
|
154
|
+
return Array.from(f.childNodes).forEach((u) => c += n(u)), c;
|
|
162
155
|
}
|
|
163
156
|
return 0;
|
|
164
|
-
},
|
|
165
|
-
let
|
|
166
|
-
const
|
|
167
|
-
if (
|
|
168
|
-
if (
|
|
169
|
-
return
|
|
170
|
-
if (
|
|
171
|
-
const
|
|
172
|
-
for (let
|
|
157
|
+
}, o = (f, d) => {
|
|
158
|
+
let c = 0;
|
|
159
|
+
const u = (a) => {
|
|
160
|
+
if (a === f) {
|
|
161
|
+
if (a.nodeType === Node.TEXT_NODE)
|
|
162
|
+
return c += k(a.textContent ?? "").slice(0, d).length, !0;
|
|
163
|
+
if (a.nodeType === Node.ELEMENT_NODE) {
|
|
164
|
+
const s = Array.from(a.childNodes), N = Math.max(0, Math.min(d, s.length));
|
|
165
|
+
for (let p = 0; p < N; p++) c += n(s[p]);
|
|
173
166
|
return !0;
|
|
174
167
|
}
|
|
175
168
|
return !0;
|
|
176
169
|
}
|
|
177
|
-
if (
|
|
178
|
-
return
|
|
179
|
-
if (
|
|
180
|
-
const
|
|
181
|
-
if (
|
|
182
|
-
const
|
|
183
|
-
return
|
|
170
|
+
if (a.nodeType === Node.TEXT_NODE)
|
|
171
|
+
return c += k(a.textContent ?? "").length, !1;
|
|
172
|
+
if (a.nodeType === Node.ELEMENT_NODE) {
|
|
173
|
+
const s = a;
|
|
174
|
+
if (C(s)) {
|
|
175
|
+
const N = P(s);
|
|
176
|
+
return c += String(N?.value ?? "").length, !1;
|
|
184
177
|
}
|
|
185
|
-
for (const
|
|
186
|
-
if (
|
|
178
|
+
for (const N of Array.from(a.childNodes))
|
|
179
|
+
if (u(N)) return !0;
|
|
187
180
|
}
|
|
188
181
|
return !1;
|
|
189
182
|
};
|
|
190
|
-
return
|
|
191
|
-
},
|
|
183
|
+
return u(t), c;
|
|
184
|
+
}, l = o(r.startContainer, r.startOffset), m = o(r.endContainer, r.endOffset);
|
|
192
185
|
return {
|
|
193
|
-
start: Math.min(
|
|
194
|
-
end: Math.max(
|
|
186
|
+
start: Math.min(l, m),
|
|
187
|
+
end: Math.max(l, m)
|
|
195
188
|
};
|
|
196
|
-
},
|
|
197
|
-
const
|
|
198
|
-
let
|
|
199
|
-
const
|
|
200
|
-
if (
|
|
201
|
-
const h =
|
|
202
|
-
return
|
|
203
|
-
node:
|
|
204
|
-
offset: Math.min(
|
|
205
|
-
} : (
|
|
189
|
+
}, ye = (t, e, r) => {
|
|
190
|
+
const n = (a) => Math.max(0, a), o = n(e), l = n(r), m = (a) => {
|
|
191
|
+
let s = a;
|
|
192
|
+
const N = (p) => {
|
|
193
|
+
if (p.nodeType === Node.TEXT_NODE) {
|
|
194
|
+
const h = p.textContent ?? "", y = k(h).length;
|
|
195
|
+
return s <= y ? {
|
|
196
|
+
node: p,
|
|
197
|
+
offset: Math.min(s, h.length)
|
|
198
|
+
} : (s -= y, null);
|
|
206
199
|
}
|
|
207
|
-
if (
|
|
208
|
-
const h =
|
|
209
|
-
if (
|
|
210
|
-
const y = P(h), x = String(y?.value ?? "").length,
|
|
211
|
-
return
|
|
212
|
-
node:
|
|
213
|
-
offset:
|
|
214
|
-
} :
|
|
215
|
-
node:
|
|
216
|
-
offset:
|
|
217
|
-
} : (
|
|
200
|
+
if (p.nodeType === Node.ELEMENT_NODE) {
|
|
201
|
+
const h = p;
|
|
202
|
+
if (C(h)) {
|
|
203
|
+
const y = P(h), x = String(y?.value ?? "").length, S = h.parentNode ?? t, w = Array.from(S.childNodes).indexOf(h);
|
|
204
|
+
return s <= 0 ? {
|
|
205
|
+
node: S,
|
|
206
|
+
offset: w
|
|
207
|
+
} : s < x ? {
|
|
208
|
+
node: S,
|
|
209
|
+
offset: w + 1
|
|
210
|
+
} : (s -= x, null);
|
|
218
211
|
}
|
|
219
|
-
for (const y of Array.from(
|
|
220
|
-
const x =
|
|
212
|
+
for (const y of Array.from(p.childNodes)) {
|
|
213
|
+
const x = N(y);
|
|
221
214
|
if (x) return x;
|
|
222
215
|
}
|
|
223
216
|
}
|
|
224
217
|
return null;
|
|
225
218
|
};
|
|
226
|
-
return
|
|
219
|
+
return N(t) ?? {
|
|
227
220
|
node: t,
|
|
228
221
|
offset: t.childNodes.length
|
|
229
222
|
};
|
|
230
|
-
}, f =
|
|
231
|
-
if (!
|
|
232
|
-
const
|
|
223
|
+
}, f = m(o), d = m(l), c = window.getSelection();
|
|
224
|
+
if (!c) return;
|
|
225
|
+
const u = document.createRange();
|
|
233
226
|
try {
|
|
234
|
-
|
|
227
|
+
u.setStart(f.node, f.offset), u.setEnd(d.node, d.offset);
|
|
235
228
|
} catch {
|
|
236
|
-
|
|
229
|
+
u.selectNodeContents(t), u.collapse(!1);
|
|
237
230
|
}
|
|
238
|
-
|
|
239
|
-
},
|
|
240
|
-
const
|
|
241
|
-
if (!
|
|
242
|
-
const
|
|
231
|
+
c.removeAllRanges(), c.addRange(u);
|
|
232
|
+
}, ue = (t, e, r) => {
|
|
233
|
+
const n = window.getSelection();
|
|
234
|
+
if (!n || typeof n.modify != "function" || !t.contains(n.focusNode) || !t.contains(n.anchorNode)) return !1;
|
|
235
|
+
const o = r === "right" ? "forward" : "backward";
|
|
243
236
|
try {
|
|
244
|
-
return
|
|
237
|
+
return n.modify(e, o, "character"), D(n.focusNode) && n.modify(e, o, "character"), !0;
|
|
245
238
|
} catch {
|
|
246
239
|
return !1;
|
|
247
240
|
}
|
|
248
|
-
},
|
|
241
|
+
}, fe = (t) => {
|
|
249
242
|
const e = window.getSelection();
|
|
250
243
|
if (!e || e.rangeCount === 0) return null;
|
|
251
|
-
const
|
|
252
|
-
return !t.contains(
|
|
253
|
-
},
|
|
244
|
+
const r = e.getRangeAt(0);
|
|
245
|
+
return !t.contains(r.startContainer) || !t.contains(r.endContainer) ? null : r;
|
|
246
|
+
}, ge = (t) => {
|
|
254
247
|
const e = t.parentNode;
|
|
255
248
|
return e ? Array.from(e.childNodes).indexOf(t) : -1;
|
|
256
|
-
},
|
|
257
|
-
const e = t.startContainer,
|
|
249
|
+
}, he = (t) => {
|
|
250
|
+
const e = t.startContainer, r = t.startOffset;
|
|
258
251
|
if (e.nodeType === Node.ELEMENT_NODE) return {
|
|
259
252
|
parent: e,
|
|
260
|
-
index:
|
|
253
|
+
index: r
|
|
261
254
|
};
|
|
262
255
|
if (e.nodeType === Node.TEXT_NODE) {
|
|
263
|
-
const
|
|
264
|
-
return
|
|
265
|
-
parent:
|
|
266
|
-
index:
|
|
267
|
-
} :
|
|
268
|
-
parent:
|
|
269
|
-
index:
|
|
270
|
-
} :
|
|
271
|
-
parent:
|
|
272
|
-
index:
|
|
256
|
+
const n = e, o = n.textContent ?? "", l = ge(n);
|
|
257
|
+
return l < 0 || !n.parentNode ? null : o === O ? {
|
|
258
|
+
parent: n.parentNode,
|
|
259
|
+
index: l + (r > 0 ? 1 : 0)
|
|
260
|
+
} : r === 0 ? {
|
|
261
|
+
parent: n.parentNode,
|
|
262
|
+
index: l
|
|
263
|
+
} : r === o.length ? {
|
|
264
|
+
parent: n.parentNode,
|
|
265
|
+
index: l + 1
|
|
273
266
|
} : null;
|
|
274
267
|
}
|
|
275
268
|
return null;
|
|
276
269
|
}, J = (t, e) => {
|
|
277
|
-
const
|
|
278
|
-
if (!
|
|
279
|
-
const
|
|
280
|
-
|
|
270
|
+
const r = window.getSelection();
|
|
271
|
+
if (!r) return;
|
|
272
|
+
const n = document.createRange();
|
|
273
|
+
n.setStart(t, e), n.collapse(!0), r.removeAllRanges(), r.addRange(n);
|
|
281
274
|
}, W = (t, e) => {
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
},
|
|
287
|
-
const
|
|
288
|
-
if (!
|
|
289
|
-
const
|
|
290
|
-
if (!
|
|
291
|
-
const
|
|
292
|
-
let
|
|
293
|
-
for (;
|
|
294
|
-
return
|
|
295
|
-
}, f = (
|
|
296
|
-
let
|
|
297
|
-
for (;
|
|
298
|
-
return
|
|
275
|
+
const r = t.childNodes[e - 1];
|
|
276
|
+
r && D(r) && r.parentNode === t && t.removeChild(r);
|
|
277
|
+
const n = Math.max(0, Math.min(e, t.childNodes.length - 1)), o = t.childNodes[n + 1];
|
|
278
|
+
o && D(o) && o.parentNode === t && t.removeChild(o);
|
|
279
|
+
}, Ne = (t, e) => {
|
|
280
|
+
const r = fe(t);
|
|
281
|
+
if (!r || !r.collapsed) return !1;
|
|
282
|
+
const n = he(r);
|
|
283
|
+
if (!n) return !1;
|
|
284
|
+
const o = n.parent, l = o.childNodes, m = (u) => {
|
|
285
|
+
let a = u;
|
|
286
|
+
for (; a > 0 && D(l[a - 1]); ) a--;
|
|
287
|
+
return a;
|
|
288
|
+
}, f = (u) => {
|
|
289
|
+
let a = u;
|
|
290
|
+
for (; a < l.length && D(l[a]); ) a++;
|
|
291
|
+
return a;
|
|
299
292
|
};
|
|
300
293
|
if (e === "backspace") {
|
|
301
|
-
const
|
|
302
|
-
if (
|
|
303
|
-
|
|
304
|
-
|
|
294
|
+
const u = m(n.index), a = u > 0 ? l[u - 1] : null;
|
|
295
|
+
if (a && C(a)) {
|
|
296
|
+
if (a.parentNode !== o) return !1;
|
|
297
|
+
const s = u - 1;
|
|
298
|
+
return o.removeChild(a), W(o, s), J(o, Math.max(0, Math.min(s, o.childNodes.length))), !0;
|
|
305
299
|
}
|
|
306
300
|
return !1;
|
|
307
301
|
}
|
|
308
|
-
const d = f(
|
|
309
|
-
if (
|
|
310
|
-
|
|
311
|
-
|
|
302
|
+
const d = f(n.index), c = l[d] ?? null;
|
|
303
|
+
if (c && C(c)) {
|
|
304
|
+
if (c.parentNode !== o) return !1;
|
|
305
|
+
const u = d;
|
|
306
|
+
return o.removeChild(c), W(o, u), J(o, Math.max(0, Math.min(u, o.childNodes.length))), !0;
|
|
312
307
|
}
|
|
313
308
|
return !1;
|
|
314
309
|
}, $ = (t) => {
|
|
315
|
-
t.querySelectorAll(`.${
|
|
310
|
+
t.querySelectorAll(`.${F}`).forEach((n) => n.classList.remove(K));
|
|
316
311
|
const e = window.getSelection();
|
|
317
312
|
if (!e || e.rangeCount === 0) return;
|
|
318
|
-
const
|
|
319
|
-
!t.contains(
|
|
313
|
+
const r = e.getRangeAt(0);
|
|
314
|
+
!t.contains(r.startContainer) || !t.contains(r.endContainer) || t.querySelectorAll(`.${F}`).forEach((n) => {
|
|
320
315
|
try {
|
|
321
|
-
|
|
316
|
+
r.intersectsNode(n) && n.classList.add(K);
|
|
322
317
|
} catch {
|
|
323
318
|
}
|
|
324
319
|
});
|
|
325
|
-
},
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
g?.length && f.appendChild(document.createTextNode(g));
|
|
337
|
-
return;
|
|
338
|
-
}
|
|
339
|
-
const s = X(c);
|
|
340
|
-
let a;
|
|
341
|
-
if (N.length) {
|
|
342
|
-
const g = N[0], h = X(g?.value ?? g);
|
|
343
|
-
(s === "" || h === s) && (a = g, N.shift());
|
|
344
|
-
}
|
|
345
|
-
a || (a = {
|
|
346
|
-
value: c
|
|
347
|
-
});
|
|
348
|
-
const m = o.content && typeof o.content != "string" ? oe.renderToStaticMarkup(/* @__PURE__ */ ee(te, { children: o.content })) : void 0;
|
|
349
|
-
d(), f.appendChild(G(a, m)), d();
|
|
350
|
-
}), t.innerHTML = "", t.appendChild(f), H(t);
|
|
351
|
-
}, Ae = (t) => {
|
|
352
|
-
const e = ne.c(28), {
|
|
353
|
-
editorRef: n,
|
|
354
|
-
transformSyntax: r,
|
|
355
|
-
filterSuggestionsByLastToken: i,
|
|
356
|
-
onLastTokenChange: u,
|
|
357
|
-
onStateChange: N
|
|
358
|
-
} = t, f = i === void 0 ? !1 : i, [d, o] = re.useState("");
|
|
359
|
-
let c;
|
|
360
|
-
e[0] !== f || e[1] !== u || e[2] !== N || e[3] !== r ? (c = (l) => {
|
|
361
|
-
if (!l)
|
|
320
|
+
}, xe = (t) => {
|
|
321
|
+
const e = Y.c(30), {
|
|
322
|
+
editorRef: r,
|
|
323
|
+
transformSyntax: n,
|
|
324
|
+
filterSuggestionsByLastToken: o,
|
|
325
|
+
onLastTokenChange: l,
|
|
326
|
+
onStateChange: m
|
|
327
|
+
} = t, f = o === void 0 ? !1 : o, [d, c] = Z.useState(""), u = Z.useRef(null);
|
|
328
|
+
let a;
|
|
329
|
+
e[0] !== f || e[1] !== l || e[2] !== m || e[3] !== n ? (a = (i) => {
|
|
330
|
+
if (!i)
|
|
362
331
|
return;
|
|
363
|
-
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
332
|
+
j(i);
|
|
333
|
+
const g = de(i);
|
|
334
|
+
u.current = g;
|
|
335
|
+
const T = ce(i), R = ie(T), A = T.filter(pe);
|
|
336
|
+
f && l?.(z(i)?.token ?? null);
|
|
337
|
+
let b = null;
|
|
338
|
+
n && (b = n(R, T)), $(i), m?.({
|
|
370
339
|
value: R,
|
|
371
|
-
tokens:
|
|
372
|
-
segments:
|
|
340
|
+
tokens: A,
|
|
341
|
+
segments: b
|
|
373
342
|
});
|
|
374
|
-
}, e[0] = f, e[1] =
|
|
375
|
-
const s =
|
|
376
|
-
let
|
|
377
|
-
e[5] !==
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
343
|
+
}, e[0] = f, e[1] = l, e[2] = m, e[3] = n, e[4] = a) : a = e[4];
|
|
344
|
+
const s = a;
|
|
345
|
+
let N;
|
|
346
|
+
e[5] !== m || e[6] !== n ? (N = (i) => {
|
|
347
|
+
const g = [], T = i ?? "", R = n ? n(T, g) : null;
|
|
348
|
+
return m?.({
|
|
349
|
+
value: T,
|
|
350
|
+
tokens: [],
|
|
351
|
+
segments: R
|
|
352
|
+
}), c(""), T;
|
|
353
|
+
}, e[5] = m, e[6] = n, e[7] = N) : N = e[7];
|
|
354
|
+
const p = N;
|
|
355
|
+
let h;
|
|
356
|
+
e[8] !== r || e[9] !== f || e[10] !== s ? (h = (i) => {
|
|
357
|
+
const g = r.current;
|
|
358
|
+
if (!g)
|
|
388
359
|
return;
|
|
389
|
-
|
|
360
|
+
j(g), g.focus({
|
|
390
361
|
preventScroll: !0
|
|
391
362
|
});
|
|
392
|
-
const T =
|
|
363
|
+
const T = i.insertMode ?? "replace", A = (() => {
|
|
393
364
|
const E = document.createRange();
|
|
394
365
|
switch (T) {
|
|
395
366
|
case "append":
|
|
396
|
-
return E.selectNodeContents(
|
|
367
|
+
return E.selectNodeContents(g), E.collapse(!1), E;
|
|
397
368
|
case "prepend":
|
|
398
|
-
return E.selectNodeContents(
|
|
369
|
+
return E.selectNodeContents(g), E.collapse(!0), E;
|
|
399
370
|
case "replace":
|
|
400
|
-
return E.selectNodeContents(
|
|
371
|
+
return E.selectNodeContents(g), E;
|
|
401
372
|
case "insert":
|
|
402
373
|
default:
|
|
403
|
-
return
|
|
374
|
+
return se(g);
|
|
404
375
|
}
|
|
405
|
-
})(),
|
|
376
|
+
})(), b = le(i);
|
|
406
377
|
if (f && T !== "replace") {
|
|
407
|
-
const E = z(
|
|
408
|
-
E ? E.range.deleteContents() :
|
|
378
|
+
const E = z(g);
|
|
379
|
+
E ? E.range.deleteContents() : A.deleteContents();
|
|
409
380
|
} else
|
|
410
|
-
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
const
|
|
381
|
+
A.deleteContents();
|
|
382
|
+
const v = oe(b), Q = document.createTextNode(O), H = document.createTextNode(O);
|
|
383
|
+
A.insertNode(Q), A.insertNode(v), v.parentNode?.insertBefore(H, v.nextSibling ?? null);
|
|
384
|
+
const B = window.getSelection(), I = document.createRange();
|
|
414
385
|
try {
|
|
415
|
-
|
|
386
|
+
I.setStart(H, 1);
|
|
416
387
|
} catch {
|
|
417
|
-
|
|
388
|
+
I.setStartAfter(v);
|
|
418
389
|
}
|
|
419
|
-
|
|
420
|
-
}, e[
|
|
421
|
-
const
|
|
422
|
-
let
|
|
423
|
-
e[
|
|
424
|
-
|
|
425
|
-
const
|
|
426
|
-
|
|
427
|
-
}, e[
|
|
428
|
-
const
|
|
390
|
+
I.collapse(!0), B?.removeAllRanges(), B?.addRange(I), s(g);
|
|
391
|
+
}, e[8] = r, e[9] = f, e[10] = s, e[11] = h) : h = e[11];
|
|
392
|
+
const y = h;
|
|
393
|
+
let x;
|
|
394
|
+
e[12] !== r || e[13] !== s ? (x = (i) => {
|
|
395
|
+
i.preventDefault();
|
|
396
|
+
const g = i.clipboardData.getData("text/plain");
|
|
397
|
+
ae(r.current, g), s(r.current);
|
|
398
|
+
}, e[12] = r, e[13] = s, e[14] = x) : x = e[14];
|
|
399
|
+
const S = x;
|
|
429
400
|
let w;
|
|
430
|
-
e[
|
|
431
|
-
s(
|
|
432
|
-
}, e[
|
|
433
|
-
const
|
|
434
|
-
let
|
|
435
|
-
e[
|
|
436
|
-
const
|
|
437
|
-
if (!
|
|
401
|
+
e[15] !== r || e[16] !== s ? (w = (i) => {
|
|
402
|
+
s(r.current);
|
|
403
|
+
}, e[15] = r, e[16] = s, e[17] = w) : w = e[17];
|
|
404
|
+
const V = w, G = me;
|
|
405
|
+
let L;
|
|
406
|
+
e[18] !== r || e[19] !== s ? (L = (i) => {
|
|
407
|
+
const g = r.current;
|
|
408
|
+
if (!g || document.activeElement !== g)
|
|
438
409
|
return !1;
|
|
439
|
-
if ((
|
|
440
|
-
return
|
|
441
|
-
if (
|
|
442
|
-
const T =
|
|
443
|
-
if (
|
|
444
|
-
return
|
|
410
|
+
if ((i.key === "Backspace" || i.key === "Delete") && Ne(g, i.key === "Backspace" ? "backspace" : "delete"))
|
|
411
|
+
return i.preventDefault(), i.stopPropagation(), s(g), !0;
|
|
412
|
+
if (i.key === "ArrowLeft" || i.key === "ArrowRight") {
|
|
413
|
+
const T = i.key === "ArrowLeft" ? "left" : "right";
|
|
414
|
+
if (ue(g, i.shiftKey ? "extend" : "move", T))
|
|
415
|
+
return i.preventDefault(), i.stopPropagation(), $(g), !0;
|
|
445
416
|
}
|
|
446
|
-
return
|
|
447
|
-
}, e[
|
|
448
|
-
const
|
|
449
|
-
let
|
|
450
|
-
|
|
417
|
+
return i.key === "Enter" ? (i.preventDefault(), !0) : !1;
|
|
418
|
+
}, e[18] = r, e[19] = s, e[20] = L) : L = e[20];
|
|
419
|
+
const X = L;
|
|
420
|
+
let M;
|
|
421
|
+
e[21] === Symbol.for("react.memo_cache_sentinel") ? (M = () => {
|
|
422
|
+
const i = u.current;
|
|
423
|
+
return u.current = null, i;
|
|
424
|
+
}, e[21] = M) : M = e[21];
|
|
425
|
+
let _;
|
|
426
|
+
return e[22] !== y || e[23] !== d || e[24] !== V || e[25] !== X || e[26] !== S || e[27] !== p || e[28] !== s ? (_ = {
|
|
451
427
|
editorHtml: d,
|
|
452
|
-
setEditorHtml:
|
|
453
|
-
initializeFromExternalValue:
|
|
428
|
+
setEditorHtml: c,
|
|
429
|
+
initializeFromExternalValue: p,
|
|
454
430
|
updateEditorState: s,
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
431
|
+
takePendingSelection: M,
|
|
432
|
+
applySuggestionValueSyntax: y,
|
|
433
|
+
handlePaste: S,
|
|
434
|
+
handleChange: V,
|
|
435
|
+
handleKeyDownCapture: G,
|
|
436
|
+
handleKeyDown: X
|
|
437
|
+
}, e[22] = y, e[23] = d, e[24] = V, e[25] = X, e[26] = S, e[27] = p, e[28] = s, e[29] = _) : _ = e[29], _;
|
|
461
438
|
};
|
|
462
|
-
function
|
|
439
|
+
function pe(t) {
|
|
463
440
|
return typeof t != "string";
|
|
464
441
|
}
|
|
465
|
-
function
|
|
442
|
+
function me(t) {
|
|
466
443
|
(t.key === " " || t.code === "Space") && (t.stopPropagation(), t.nativeEvent?.stopImmediatePropagation?.());
|
|
467
444
|
}
|
|
468
445
|
export {
|
|
469
|
-
de as
|
|
470
|
-
|
|
446
|
+
de as getSelectionOffsetsInValue,
|
|
447
|
+
ce as serializeEditorParts,
|
|
448
|
+
ye as setSelectionOffsetsInValue,
|
|
449
|
+
xe as useContentEditableController
|
|
471
450
|
};
|