@soomo/react-text-annotator 3.2.0-staging.2 → 3.2.0-staging.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/react-text-annotator.css +1 -1
- package/dist/react-text-annotator.es13.js +1573 -431
- package/dist/react-text-annotator.es13.js.map +1 -1
- package/dist/react-text-annotator.es14.js +9 -1642
- package/dist/react-text-annotator.es14.js.map +1 -1
- package/dist/react-text-annotator.es16.js +607 -0
- package/dist/react-text-annotator.es16.js.map +1 -0
- package/dist/react-text-annotator.es17.js +244 -566
- package/dist/react-text-annotator.es17.js.map +1 -1
- package/dist/react-text-annotator.es18.js +471 -252
- package/dist/react-text-annotator.es18.js.map +1 -1
- package/dist/react-text-annotator.es2.js +1 -1
- package/dist/react-text-annotator.es25.js +124 -111
- package/dist/react-text-annotator.es25.js.map +1 -1
- package/dist/react-text-annotator.es26.js +140 -285
- package/dist/react-text-annotator.es26.js.map +1 -1
- package/dist/react-text-annotator.es27.js +296 -43
- package/dist/react-text-annotator.es27.js.map +1 -1
- package/dist/react-text-annotator.es28.js +113 -19
- package/dist/react-text-annotator.es28.js.map +1 -1
- package/dist/react-text-annotator.es29.js +287 -105
- package/dist/react-text-annotator.es29.js.map +1 -1
- package/dist/react-text-annotator.es30.js +48 -154
- package/dist/react-text-annotator.es30.js.map +1 -1
- package/dist/react-text-annotator.es31.js +19 -310
- package/dist/react-text-annotator.es31.js.map +1 -1
- package/dist/react-text-annotator.es7.js +4 -4
- package/package.json +2 -2
- package/dist/react-text-annotator.es15.js +0 -13
- package/dist/react-text-annotator.es15.js.map +0 -1
|
@@ -1,130 +1,312 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
let
|
|
4
|
-
while (
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
function getOrdinality(elt, name) {
|
|
2
|
+
let pos = 1;
|
|
3
|
+
let e = elt;
|
|
4
|
+
while (e && e.previousElementSibling !== null && (name ? e.previousElementSibling.localName == name : true)) {
|
|
5
|
+
pos++;
|
|
6
|
+
e = e.previousElementSibling;
|
|
7
|
+
if (!e.previousElementSibling) {
|
|
8
|
+
break;
|
|
9
|
+
}
|
|
7
10
|
}
|
|
8
|
-
return
|
|
11
|
+
return pos;
|
|
9
12
|
}
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
function copyAndReset(node) {
|
|
14
|
+
const doc = node.ownerDocument;
|
|
15
|
+
let clone = (n) => {
|
|
16
|
+
let result;
|
|
17
|
+
switch (n.nodeType) {
|
|
18
|
+
case 1:
|
|
19
|
+
result = doc.createElement(n.nodeName);
|
|
20
|
+
break;
|
|
21
|
+
case 9:
|
|
22
|
+
result = doc.implementation.createDocument();
|
|
23
|
+
break;
|
|
24
|
+
case 11:
|
|
25
|
+
result = doc.createDocumentFragment();
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
result = n.cloneNode(true);
|
|
29
|
+
}
|
|
30
|
+
if (n.attributes) {
|
|
31
|
+
for (let att of Array.from(n.attributes)) {
|
|
32
|
+
if (att.name !== "data-processed") {
|
|
33
|
+
result.setAttribute(att.name, att.value);
|
|
34
|
+
}
|
|
23
35
|
}
|
|
24
|
-
next = next.parentNode || next.host;
|
|
25
36
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
for (let nd of Array.from(n.childNodes)) {
|
|
38
|
+
if (nd.nodeType == 1) {
|
|
39
|
+
if (nd.hasAttribute("data-original")) {
|
|
40
|
+
for (let childNode of Array.from(nd.childNodes)) {
|
|
41
|
+
let child = result.appendChild(clone(childNode));
|
|
42
|
+
if (child.nodeType === 1 && child.hasAttribute("data-origid")) {
|
|
43
|
+
child.setAttribute("id", child.getAttribute("data-origid"));
|
|
44
|
+
child.removeAttribute("data-origid");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
} else if (nd.hasAttribute("data-origname")) {
|
|
49
|
+
result.appendChild(clone(nd));
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
result.appendChild(nd.cloneNode());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
return clone(node);
|
|
35
58
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
if (uaData && Array.isArray(uaData.brands)) {
|
|
39
|
-
return uaData.brands.map((_ref) => {
|
|
40
|
-
let {
|
|
41
|
-
brand,
|
|
42
|
-
version
|
|
43
|
-
} = _ref;
|
|
44
|
-
return brand + "/" + version;
|
|
45
|
-
}).join(" ");
|
|
46
|
-
}
|
|
47
|
-
return navigator.userAgent;
|
|
59
|
+
function first(urls) {
|
|
60
|
+
return urls.replace(/ .*$/, "");
|
|
48
61
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
function hideContent(elt, rewriteIds = true) {
|
|
63
|
+
const doc = elt.ownerDocument;
|
|
64
|
+
if (elt.childNodes.length > 0) {
|
|
65
|
+
let hidden = doc.createElement("cetei-original");
|
|
66
|
+
elt.appendChild(hidden);
|
|
67
|
+
hidden.setAttribute("hidden", "");
|
|
68
|
+
hidden.setAttribute("data-original", "");
|
|
69
|
+
for (let node of Array.from(elt.childNodes)) {
|
|
70
|
+
if (node !== hidden) {
|
|
71
|
+
if (node.nodeType === 1) {
|
|
72
|
+
node.setAttribute("data-processed", "");
|
|
73
|
+
for (let e of node.querySelectorAll("*")) {
|
|
74
|
+
e.setAttribute("data-processed", "");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
hidden.appendChild(elt.removeChild(node));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (rewriteIds) {
|
|
81
|
+
for (let e of Array.from(hidden.querySelectorAll("*"))) {
|
|
82
|
+
if (e.hasAttribute("id")) {
|
|
83
|
+
e.setAttribute("data-origid", e.getAttribute("id"));
|
|
84
|
+
e.removeAttribute("id");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
55
88
|
}
|
|
56
|
-
return event.detail === 0 && !event.pointerType;
|
|
57
|
-
}
|
|
58
|
-
function isVirtualPointerEvent(event) {
|
|
59
|
-
if (isJSDOM()) return false;
|
|
60
|
-
return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || // iOS VoiceOver returns 0.333• for width/height.
|
|
61
|
-
event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
|
|
62
89
|
}
|
|
63
|
-
function
|
|
64
|
-
return
|
|
90
|
+
function normalizeURI(urls) {
|
|
91
|
+
return this.rw(this.first(urls));
|
|
65
92
|
}
|
|
66
|
-
function
|
|
67
|
-
|
|
68
|
-
|
|
93
|
+
function repeat(str, times) {
|
|
94
|
+
let result = "";
|
|
95
|
+
for (let i = 0; i < times; i++) {
|
|
96
|
+
result += str;
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
69
99
|
}
|
|
70
|
-
function
|
|
71
|
-
|
|
100
|
+
function resolveURI(uri) {
|
|
101
|
+
let prefixdef = this.prefixDefs[uri.substring(0, uri.indexOf(":"))];
|
|
102
|
+
return uri.replace(new RegExp(prefixdef["matchPattern"]), prefixdef["replacementPattern"]);
|
|
72
103
|
}
|
|
73
|
-
function
|
|
74
|
-
return
|
|
104
|
+
function getPrefixDef(prefix) {
|
|
105
|
+
return this.prefixDefs[prefix];
|
|
75
106
|
}
|
|
76
|
-
function
|
|
77
|
-
|
|
107
|
+
function rw(url) {
|
|
108
|
+
if (!url.trim().match(/^(?:http|mailto|file|\/|#).*$/)) {
|
|
109
|
+
return this.base + first(url.trim());
|
|
110
|
+
} else {
|
|
111
|
+
return url;
|
|
112
|
+
}
|
|
78
113
|
}
|
|
79
|
-
function
|
|
80
|
-
return (
|
|
114
|
+
function resetAndSerialize(el, stripElt, ws) {
|
|
115
|
+
return serialize(copyAndReset(el), stripElt, ws);
|
|
81
116
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
117
|
+
function serialize(el, stripElt, ws) {
|
|
118
|
+
let str = "";
|
|
119
|
+
const ignorable = (txt) => {
|
|
120
|
+
return !/[^\t\n\r ]/.test(txt);
|
|
121
|
+
};
|
|
122
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
123
|
+
str += '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
85
124
|
}
|
|
86
|
-
if (
|
|
87
|
-
|
|
125
|
+
if (!stripElt && el.nodeType == 1) {
|
|
126
|
+
if (typeof ws === "string" && ws !== "") {
|
|
127
|
+
str += "\n" + ws + "<";
|
|
128
|
+
} else {
|
|
129
|
+
str += "<";
|
|
130
|
+
}
|
|
131
|
+
str += el.getAttribute("data-origname");
|
|
132
|
+
let attrNames = el.hasAttribute("data-origatts") ? el.getAttribute("data-origatts").split(" ") : [];
|
|
133
|
+
for (let attr of Array.from(el.attributes)) {
|
|
134
|
+
if (!attr.name.startsWith("data-") && !["id", "lang", "class"].includes(attr.name)) {
|
|
135
|
+
str += " " + attrNames.find(function(e) {
|
|
136
|
+
return e.toLowerCase() == attr.name;
|
|
137
|
+
}) + '="' + attr.value + '"';
|
|
138
|
+
}
|
|
139
|
+
if (attr.name == "data-xmlns") {
|
|
140
|
+
str += ' xmlns="' + attr.value + '"';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (el.childNodes.length > 0) {
|
|
144
|
+
str += ">";
|
|
145
|
+
} else {
|
|
146
|
+
str += "/>";
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
for (let node of Array.from(el.childNodes)) {
|
|
150
|
+
switch (node.nodeType) {
|
|
151
|
+
case 1:
|
|
152
|
+
if (typeof ws === "string") {
|
|
153
|
+
str += serialize(node, false, ws + " ");
|
|
154
|
+
} else {
|
|
155
|
+
str += serialize(node, false, ws);
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
case 7:
|
|
159
|
+
str += `<?${node.nodeName} ${node.nodeValue}?>`;
|
|
160
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
161
|
+
str += "\n";
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
164
|
+
case 8:
|
|
165
|
+
str += `<!--${node.nodeValue}-->`;
|
|
166
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
167
|
+
str += "\n";
|
|
168
|
+
}
|
|
169
|
+
break;
|
|
170
|
+
default:
|
|
171
|
+
if (stripElt && ignorable(node.nodeValue)) {
|
|
172
|
+
str += node.nodeValue.replace(/^\s*\n/, "");
|
|
173
|
+
}
|
|
174
|
+
if (typeof ws === "string" && ignorable(node.nodeValue)) {
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
str += node.nodeValue;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (!stripElt && el.nodeType == 1 && el.childNodes.length > 0) {
|
|
181
|
+
if (typeof ws === "string") {
|
|
182
|
+
str += "\n" + ws + "</";
|
|
183
|
+
} else {
|
|
184
|
+
str += "</";
|
|
185
|
+
}
|
|
186
|
+
str += el.getAttribute("data-origname") + ">";
|
|
187
|
+
}
|
|
188
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
189
|
+
str += "\n";
|
|
88
190
|
}
|
|
89
|
-
|
|
90
|
-
return e.target != null && node.contains(e.target);
|
|
191
|
+
return str;
|
|
91
192
|
}
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
|
|
193
|
+
function serializeHTML(el, stripElt, ws) {
|
|
194
|
+
const EMPTY_ELEMENTS = ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
|
|
195
|
+
let str = "";
|
|
196
|
+
const ignorable = (txt) => {
|
|
197
|
+
return !/[^\t\n\r ]/.test(txt);
|
|
198
|
+
};
|
|
199
|
+
if (!stripElt && el.nodeType == 1) {
|
|
200
|
+
if (typeof ws === "string" && ws !== "") {
|
|
201
|
+
str += "\n" + ws + "<";
|
|
202
|
+
} else {
|
|
203
|
+
str += "<";
|
|
204
|
+
}
|
|
205
|
+
str += el.nodeName;
|
|
206
|
+
for (let attr of Array.from(el.attributes)) {
|
|
207
|
+
str += " " + attr.name + '="' + attr.value + '"';
|
|
208
|
+
}
|
|
209
|
+
str += ">";
|
|
210
|
+
}
|
|
211
|
+
for (let node of Array.from(el.childNodes)) {
|
|
212
|
+
switch (node.nodeType) {
|
|
213
|
+
case 1:
|
|
214
|
+
if (typeof ws === "string") {
|
|
215
|
+
str += serializeHTML(node, false, ws + " ");
|
|
216
|
+
} else {
|
|
217
|
+
str += serializeHTML(node, false, ws);
|
|
218
|
+
}
|
|
219
|
+
break;
|
|
220
|
+
case 7:
|
|
221
|
+
str += `<?${node.nodeName} ${node.nodeValue}?>`;
|
|
222
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
223
|
+
str += "\n";
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
case 8:
|
|
227
|
+
str += `<!--${node.nodeValue}-->`;
|
|
228
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
229
|
+
str += "\n";
|
|
230
|
+
}
|
|
231
|
+
break;
|
|
232
|
+
default:
|
|
233
|
+
if (stripElt && ignorable(node.nodeValue)) {
|
|
234
|
+
str += node.nodeValue.replace(/^\s*\n/, "");
|
|
235
|
+
}
|
|
236
|
+
if (typeof ws === "string" && ignorable(node.nodeValue)) {
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
str += node.nodeValue.replace(/</g, "<");
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (!EMPTY_ELEMENTS.includes(el.nodeName)) {
|
|
243
|
+
if (!stripElt && el.nodeType == 1) {
|
|
244
|
+
if (typeof ws === "string") {
|
|
245
|
+
str += `
|
|
246
|
+
${ws}</`;
|
|
247
|
+
} else {
|
|
248
|
+
str += "</";
|
|
249
|
+
}
|
|
250
|
+
str += `${el.nodeName}>`;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (el.nodeType === 9 || el.nodeType === 11) {
|
|
254
|
+
str += "\n";
|
|
95
255
|
}
|
|
96
|
-
return
|
|
256
|
+
return str;
|
|
97
257
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
258
|
+
function unEscapeEntities(str) {
|
|
259
|
+
return str.replace(/>/, ">").replace(/"/, '"').replace(/'/, "'").replace(/&/, "&");
|
|
101
260
|
}
|
|
102
|
-
function
|
|
103
|
-
|
|
104
|
-
|
|
261
|
+
function tagName(name) {
|
|
262
|
+
if (name.includes(":"), 1) {
|
|
263
|
+
return name.replace(/:/, "-").toLowerCase();
|
|
264
|
+
}
|
|
105
265
|
}
|
|
106
|
-
function
|
|
107
|
-
|
|
108
|
-
|
|
266
|
+
function defineCustomElement(name, behavior = null, debug = false) {
|
|
267
|
+
try {
|
|
268
|
+
window.customElements.define(tagName(name), class extends HTMLElement {
|
|
269
|
+
constructor() {
|
|
270
|
+
super();
|
|
271
|
+
if (!this.matches(":defined")) {
|
|
272
|
+
if (behavior) {
|
|
273
|
+
behavior.call(this);
|
|
274
|
+
this.setAttribute("data-processed", "");
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Process new elements when they are connected to the browser DOM
|
|
279
|
+
connectedCallback() {
|
|
280
|
+
if (!this.hasAttribute("data-processed")) {
|
|
281
|
+
if (behavior) {
|
|
282
|
+
behavior.call(this);
|
|
283
|
+
this.setAttribute("data-processed", "");
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
} catch (error) {
|
|
289
|
+
if (debug) {
|
|
290
|
+
console.log(tagName(name) + " couldn't be registered or is already registered.");
|
|
291
|
+
console.log(error);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
109
294
|
}
|
|
110
295
|
export {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
isVirtualClick,
|
|
127
|
-
isVirtualPointerEvent,
|
|
128
|
-
stopEvent
|
|
296
|
+
copyAndReset,
|
|
297
|
+
defineCustomElement,
|
|
298
|
+
first,
|
|
299
|
+
getOrdinality,
|
|
300
|
+
getPrefixDef,
|
|
301
|
+
hideContent,
|
|
302
|
+
normalizeURI,
|
|
303
|
+
repeat,
|
|
304
|
+
resetAndSerialize,
|
|
305
|
+
resolveURI,
|
|
306
|
+
rw,
|
|
307
|
+
serialize,
|
|
308
|
+
serializeHTML,
|
|
309
|
+
tagName,
|
|
310
|
+
unEscapeEntities
|
|
129
311
|
};
|
|
130
312
|
//# sourceMappingURL=react-text-annotator.es29.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-text-annotator.es29.js","sources":["../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"],"sourcesContent":["import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n"],"names":["activeElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"react-text-annotator.es29.js","sources":["../../../node_modules/CETEIcean/src/utilities.js"],"sourcesContent":["export function getOrdinality(elt, name) {\n let pos = 1;\n let e = elt;\n while (e && e.previousElementSibling !== null && (name ? e.previousElementSibling.localName == name : true)) {\n pos++;\n e = e.previousElementSibling;\n if (!e.previousElementSibling) {\n break;\n }\n }\n return pos;\n}\n\n/* \n Performs a deep copy operation of the input node while stripping\n out child elements introduced by CETEIcean.\n*/ \nexport function copyAndReset(node) {\n const doc = node.ownerDocument;\n let clone = (n) => { \n let result;\n switch (n.nodeType) {\n case 1: // nodeType 1 is Node.ELEMENT_NODE\n result = doc.createElement(n.nodeName);\n break;\n case 9: // nodeType 9 is Node.DOCUMENT_NODE\n result = doc.implementation.createDocument();\n break;\n case 11: // nodeType 11 is Node.DOCUMENT_FRAGMENT_NODE\n result = doc.createDocumentFragment();\n break;\n default:\n result = n.cloneNode(true);\n }\n if (n.attributes) {\n for (let att of Array.from(n.attributes)) {\n if (att.name !== \"data-processed\") {\n result.setAttribute(att.name,att.value);\n }\n }\n }\n for (let nd of Array.from(n.childNodes)){\n // nodeType 1 is Node.ELEMENT_NODE\n if (nd.nodeType == 1) {\n if (nd.hasAttribute(\"data-original\")) {\n for (let childNode of Array.from(nd.childNodes)) {\n let child = result.appendChild(clone(childNode));\n // nodeType 1 is Node.ELEMENT_NODE\n if (child.nodeType === 1 && child.hasAttribute(\"data-origid\")) {\n child.setAttribute(\"id\", child.getAttribute(\"data-origid\"));\n child.removeAttribute(\"data-origid\");\n }\n }\n return result;\n } else if (nd.hasAttribute(\"data-origname\")) {\n result.appendChild(clone(nd));\n }\n } else {\n result.appendChild(nd.cloneNode());\n }\n }\n return result;\n }\n return clone(node);\n}\n\n/* \n Given a space-separated list of URLs (e.g. in a ref with multiple\n targets), returns just the first one.\n*/\nexport function first(urls) {\n return urls.replace(/ .*$/, \"\");\n}\n\n/* \n Wraps the content of the element parameter in a hidden <cetei-original data-original>\n*/\nexport function hideContent(elt, rewriteIds = true) {\n const doc = elt.ownerDocument;\n if (elt.childNodes.length > 0) {\n let hidden = doc.createElement(\"cetei-original\");\n elt.appendChild(hidden);\n hidden.setAttribute(\"hidden\", \"\");\n hidden.setAttribute(\"data-original\", \"\");\n for (let node of Array.from(elt.childNodes)) {\n if (node !== hidden) {\n // nodeType 1 is Node.ELEMENT_NODE\n if (node.nodeType === 1) {\n node.setAttribute(\"data-processed\", \"\");\n for (let e of node.querySelectorAll(\"*\")) {\n e.setAttribute(\"data-processed\", \"\");\n }\n }\n hidden.appendChild(elt.removeChild(node));\n }\n }\n if (rewriteIds) {\n for (let e of Array.from(hidden.querySelectorAll(\"*\"))) {\n if (e.hasAttribute(\"id\")) {\n e.setAttribute(\"data-origid\", e.getAttribute(\"id\"));\n e.removeAttribute(\"id\");\n }\n }\n }\n }\n}\n\nexport function normalizeURI(urls) {\n return this.rw(this.first(urls))\n}\n\n/* \n Takes a string and a number and returns the original string\n printed that number of times.\n*/\nexport function repeat(str, times) {\n let result = \"\";\n for (let i = 0; i < times; i++) {\n result += str;\n }\n return result;\n}\n\n/* \n Resolves URIs that use TEI prefixDefs into full URIs.\n See https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-prefixDef.html\n*/\nexport function resolveURI(uri) {\n let prefixdef = this.prefixDefs[uri.substring(0,uri.indexOf(\":\"))];\n return uri.replace(new RegExp(prefixdef[\"matchPattern\"]), prefixdef[\"replacementPattern\"]);\n}\n\n/*\n Convenience function for getting prefix definitions, Takes a prefix\n and returns an object with \"matchPattern\" and \"replacementPattern\"\n keys.\n*/\nexport function getPrefixDef(prefix) {\n return this.prefixDefs[prefix];\n}\n\n/* \n Takes a relative URL and rewrites it based on the base URL of the\n HTML document\n*/\nexport function rw(url) {\n if (!url.trim().match(/^(?:http|mailto|file|\\/|#).*$/)) {\n return this.base + first(url.trim());\n } else {\n return url;\n }\n}\n\n/*\n Combines the functionality of copyAndReset() and serialize() to return\n a \"clean\" version of the XML markup.\n */\nexport function resetAndSerialize(el, stripElt, ws) {\n return serialize(copyAndReset(el), stripElt, ws);\n}\n\n/* \n Takes an element and serializes it to an XML string or, if the stripElt\n parameter is set, serializes the element's content. The ws parameter, if\n set, will switch on minimal \"pretty-printing\" and indenting of the serialized\n result.\n*/\nexport function serialize(el, stripElt, ws) {\n let str = \"\";\n const ignorable = (txt) => {\n return !(/[^\\t\\n\\r ]/.test(txt));\n }\n if (el.nodeType === 9 || el.nodeType === 11) { // nodeType 9 is Node.DOCUMENT_NODE; nodeType 11 is Node.DOCUMENT_FRAGMENT_NODE\n str += \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n\";\n }\n // nodeType 1 is Node.ELEMENT_NODE\n if (!stripElt && el.nodeType == 1) {\n if ((typeof ws === \"string\") && ws !== \"\") {\n str += \"\\n\" + ws + \"<\";\n } else {\n str += \"<\";\n }\n str += el.getAttribute(\"data-origname\");\n // HTML5 lowercases all attribute names; @data-origatts contains the original names\n let attrNames = el.hasAttribute(\"data-origatts\") ? el.getAttribute(\"data-origatts\").split(\" \") : [];\n for (let attr of Array.from(el.attributes)) {\n if (!attr.name.startsWith(\"data-\") && !([\"id\", \"lang\", \"class\"].includes(attr.name))) {\n str += \" \" + attrNames.find(function(e) {return e.toLowerCase() == attr.name}) + \"=\\\"\" + attr.value + \"\\\"\";\n }\n if (attr.name == \"data-xmlns\") {\n str += \" xmlns=\\\"\" + attr.value +\"\\\"\";\n }\n }\n if (el.childNodes.length > 0) {\n str += \">\";\n } else {\n str += \"/>\";\n }\n }\n for (let node of Array.from(el.childNodes)) {\n // nodeType 1 is Node.ELEMENT_NODE\n // nodeType 7 is Node.PROCESSING_INSTRUCTION_NODE\n // nodeType 8 is Node.COMMENT_NODE\n switch (node.nodeType) {\n case 1:\n if (typeof ws === \"string\") {\n str += serialize(node, false, ws + \" \");\n } else {\n str += serialize(node, false, ws);\n }\n break;\n case 7:\n str += `<?${node.nodeName} ${node.nodeValue}?>`;\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n break;\n case 8:\n str += `<!--${node.nodeValue}-->`;\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n break;\n default:\n if (stripElt && ignorable(node.nodeValue)) {\n str += node.nodeValue.replace(/^\\s*\\n/, \"\");\n }\n if ((typeof ws === \"string\") && ignorable(node.nodeValue)) {\n break;\n }\n str += node.nodeValue;\n }\n }\n if (!stripElt && el.nodeType == 1 && el.childNodes.length > 0) {\n if (typeof ws === \"string\") {\n str += \"\\n\" + ws + \"</\";\n } else {\n str += \"</\";\n }\n str += el.getAttribute(\"data-origname\") + \">\";\n }\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n return str;\n}\n\n/* \n Write out the HTML markup to a string, using HTML conventions.\n */\nexport function serializeHTML(el, stripElt, ws) {\n const EMPTY_ELEMENTS = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\n let str = \"\";\n const ignorable = (txt) => {\n return !(/[^\\t\\n\\r ]/.test(txt));\n }\n // nodeType 1 is Node.ELEMENT_NODE\n if (!stripElt && el.nodeType == 1) {\n if ((typeof ws === \"string\") && ws !== \"\") {\n str += \"\\n\" + ws + \"<\";\n } else {\n str += \"<\";\n }\n str += el.nodeName;\n for (let attr of Array.from(el.attributes)) {\n str += \" \" + attr.name + \"=\\\"\" + attr.value + \"\\\"\";\n }\n str += \">\";\n }\n for (let node of Array.from(el.childNodes)) {\n // nodeType 1 is Node.ELEMENT_NODE\n // nodeType 7 is Node.PROCESSING_INSTRUCTION_NODE\n // nodeType 8 is Node.COMMENT_NODE\n switch (node.nodeType) {\n case 1:\n if (typeof ws === \"string\") {\n str += serializeHTML(node, false, ws + \" \");\n } else {\n str += serializeHTML(node, false, ws);\n }\n break;\n case 7:\n str += `<?${node.nodeName} ${node.nodeValue}?>`;\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n break;\n case 8:\n str += `<!--${node.nodeValue}-->`;\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n break;\n default:\n if (stripElt && ignorable(node.nodeValue)) {\n str += node.nodeValue.replace(/^\\s*\\n/, \"\");\n }\n if ((typeof ws === \"string\") && ignorable(node.nodeValue)) {\n break;\n }\n str += node.nodeValue.replace(/</g, \"<\");\n }\n }\n if (!EMPTY_ELEMENTS.includes(el.nodeName)) {\n if (!stripElt && el.nodeType == 1) {\n if (typeof ws === \"string\") {\n str += `\\n${ws}</`;\n } else {\n str += \"</\";\n }\n str += `${el.nodeName}>`;\n }\n }\n if (el.nodeType === 9 || el.nodeType === 11) {\n str += \"\\n\";\n }\n return str;\n}\n\nexport function unEscapeEntities(str) {\n return str.replace(/>/, \">\")\n .replace(/"/, \"\\\"\")\n .replace(/'/, \"'\")\n .replace(/&/, \"&\");\n}\n\n// Given a qualified name (e.g. tei:text), return the element name\nexport function tagName(name) {\n if (name.includes(\":\"), 1) {\n return name.replace(/:/,\"-\").toLowerCase();\n } else {\n return \"ceteicean-\" + name.toLowerCase();\n }\n}\n\nexport function defineCustomElement(name, behavior = null, debug = false) {\n /* \n Registers the list of elements provided with the browser.\n Called by makeHTML5(), but can be called independently if, for example,\n you've created Custom Elements via an XSLT transformation instead.\n */\n try {\n window.customElements.define(tagName(name), class extends HTMLElement {\n constructor() {\n super(); \n if (!this.matches(\":defined\")) { // \"Upgraded\" undefined elements can have attributes & children; new elements can't\n if (behavior) {\n behavior.call(this);\n // We don't want to double-process elements, so add a flag\n this.setAttribute(\"data-processed\", \"\");\n }\n }\n }\n // Process new elements when they are connected to the browser DOM\n connectedCallback() {\n if (!this.hasAttribute(\"data-processed\")) {\n if (behavior) {\n behavior.call(this);\n this.setAttribute(\"data-processed\", \"\");\n }\n }\n };\n });\n } catch (error) {\n // When using the same CETEIcean instance for multiple TEI files, this error becomes very common. \n // It's muted by default unless the debug option is set.\n if (debug) {\n console.log(tagName(name) + \" couldn't be registered or is already registered.\");\n console.log(error);\n }\n }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|