@soomo/react-text-annotator 3.2.0-staging.4 → 3.2.0-staging.5

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.
Files changed (37) hide show
  1. package/dist/react-text-annotator.es10.js +497 -78
  2. package/dist/react-text-annotator.es10.js.map +1 -1
  3. package/dist/react-text-annotator.es11.js +77 -40
  4. package/dist/react-text-annotator.es11.js.map +1 -1
  5. package/dist/react-text-annotator.es12.js +41 -21
  6. package/dist/react-text-annotator.es12.js.map +1 -1
  7. package/dist/react-text-annotator.es13.js +19 -1637
  8. package/dist/react-text-annotator.es13.js.map +1 -1
  9. package/dist/react-text-annotator.es14.js +1642 -9
  10. package/dist/react-text-annotator.es14.js.map +1 -1
  11. package/dist/react-text-annotator.es15.js +13 -0
  12. package/dist/react-text-annotator.es15.js.map +1 -0
  13. package/dist/react-text-annotator.es17.js +566 -244
  14. package/dist/react-text-annotator.es17.js.map +1 -1
  15. package/dist/react-text-annotator.es18.js +252 -471
  16. package/dist/react-text-annotator.es18.js.map +1 -1
  17. package/dist/react-text-annotator.es2.js +1 -1
  18. package/dist/react-text-annotator.es25.js +111 -124
  19. package/dist/react-text-annotator.es25.js.map +1 -1
  20. package/dist/react-text-annotator.es26.js +285 -140
  21. package/dist/react-text-annotator.es26.js.map +1 -1
  22. package/dist/react-text-annotator.es27.js +43 -296
  23. package/dist/react-text-annotator.es27.js.map +1 -1
  24. package/dist/react-text-annotator.es28.js +19 -113
  25. package/dist/react-text-annotator.es28.js.map +1 -1
  26. package/dist/react-text-annotator.es29.js +105 -287
  27. package/dist/react-text-annotator.es29.js.map +1 -1
  28. package/dist/react-text-annotator.es30.js +154 -48
  29. package/dist/react-text-annotator.es30.js.map +1 -1
  30. package/dist/react-text-annotator.es31.js +310 -19
  31. package/dist/react-text-annotator.es31.js.map +1 -1
  32. package/dist/react-text-annotator.es4.js +2 -2
  33. package/dist/react-text-annotator.es5.js +1 -1
  34. package/dist/react-text-annotator.es7.js +4 -4
  35. package/package.json +2 -2
  36. package/dist/react-text-annotator.es16.js +0 -607
  37. package/dist/react-text-annotator.es16.js.map +0 -1
@@ -1,312 +1,130 @@
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
- }
1
+ import { isShadowRoot, isHTMLElement } from "./react-text-annotator.es30.js";
2
+ function activeElement(doc) {
3
+ let activeElement2 = doc.activeElement;
4
+ while (((_activeElement = activeElement2) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {
5
+ var _activeElement;
6
+ activeElement2 = activeElement2.shadowRoot.activeElement;
10
7
  }
11
- return pos;
8
+ return activeElement2;
12
9
  }
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
- }
35
- }
36
- }
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());
10
+ function contains(parent, child) {
11
+ if (!parent || !child) {
12
+ return false;
13
+ }
14
+ const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();
15
+ if (parent.contains(child)) {
16
+ return true;
17
+ }
18
+ if (rootNode && isShadowRoot(rootNode)) {
19
+ let next = child;
20
+ while (next) {
21
+ if (parent === next) {
22
+ return true;
53
23
  }
24
+ next = next.parentNode || next.host;
54
25
  }
55
- return result;
56
- };
57
- return clone(node);
58
- }
59
- function first(urls) {
60
- return urls.replace(/ .*$/, "");
26
+ }
27
+ return false;
61
28
  }
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
- }
29
+ function getPlatform() {
30
+ const uaData = navigator.userAgentData;
31
+ if (uaData != null && uaData.platform) {
32
+ return uaData.platform;
88
33
  }
34
+ return navigator.platform;
89
35
  }
90
- function normalizeURI(urls) {
91
- return this.rw(this.first(urls));
36
+ function getUserAgent() {
37
+ const uaData = navigator.userAgentData;
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;
92
48
  }
93
- function repeat(str, times) {
94
- let result = "";
95
- for (let i = 0; i < times; i++) {
96
- result += str;
49
+ function isVirtualClick(event) {
50
+ if (event.mozInputSource === 0 && event.isTrusted) {
51
+ return true;
52
+ }
53
+ if (isAndroid() && event.pointerType) {
54
+ return event.type === "click" && event.buttons === 1;
97
55
  }
98
- return result;
56
+ return event.detail === 0 && !event.pointerType;
99
57
  }
100
- function resolveURI(uri) {
101
- let prefixdef = this.prefixDefs[uri.substring(0, uri.indexOf(":"))];
102
- return uri.replace(new RegExp(prefixdef["matchPattern"]), prefixdef["replacementPattern"]);
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";
103
62
  }
104
- function getPrefixDef(prefix) {
105
- return this.prefixDefs[prefix];
63
+ function isSafari() {
64
+ return /apple/i.test(navigator.vendor);
106
65
  }
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
- }
66
+ function isAndroid() {
67
+ const re = /android/i;
68
+ return re.test(getPlatform()) || re.test(getUserAgent());
113
69
  }
114
- function resetAndSerialize(el, stripElt, ws) {
115
- return serialize(copyAndReset(el), stripElt, ws);
70
+ function isJSDOM() {
71
+ return getUserAgent().includes("jsdom/");
116
72
  }
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';
124
- }
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";
190
- }
191
- return str;
73
+ function isReactEvent(event) {
74
+ return "nativeEvent" in event;
192
75
  }
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, "&lt;");
240
- }
76
+ function isRootElement(element) {
77
+ return element.matches("html,body");
78
+ }
79
+ function getDocument(node) {
80
+ return (node == null ? void 0 : node.ownerDocument) || document;
81
+ }
82
+ function isEventTargetWithin(event, node) {
83
+ if (node == null) {
84
+ return false;
241
85
  }
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
- }
86
+ if ("composedPath" in event) {
87
+ return event.composedPath().includes(node);
252
88
  }
253
- if (el.nodeType === 9 || el.nodeType === 11) {
254
- str += "\n";
89
+ const e = event;
90
+ return e.target != null && node.contains(e.target);
91
+ }
92
+ function getTarget(event) {
93
+ if ("composedPath" in event) {
94
+ return event.composedPath()[0];
255
95
  }
256
- return str;
96
+ return event.target;
257
97
  }
258
- function unEscapeEntities(str) {
259
- return str.replace(/&gt;/, ">").replace(/&quot;/, '"').replace(/&apos;/, "'").replace(/&amp;/, "&");
98
+ const TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
99
+ function isTypeableElement(element) {
100
+ return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
260
101
  }
261
- function tagName(name) {
262
- if (name.includes(":"), 1) {
263
- return name.replace(/:/, "-").toLowerCase();
264
- }
102
+ function stopEvent(event) {
103
+ event.preventDefault();
104
+ event.stopPropagation();
265
105
  }
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
- }
106
+ function isTypeableCombobox(element) {
107
+ if (!element) return false;
108
+ return element.getAttribute("role") === "combobox" && isTypeableElement(element);
294
109
  }
295
110
  export {
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
111
+ TYPEABLE_SELECTOR,
112
+ activeElement,
113
+ contains,
114
+ getDocument,
115
+ getPlatform,
116
+ getTarget,
117
+ getUserAgent,
118
+ isAndroid,
119
+ isEventTargetWithin,
120
+ isJSDOM,
121
+ isReactEvent,
122
+ isRootElement,
123
+ isSafari,
124
+ isTypeableCombobox,
125
+ isTypeableElement,
126
+ isVirtualClick,
127
+ isVirtualPointerEvent,
128
+ stopEvent
311
129
  };
312
130
  //# sourceMappingURL=react-text-annotator.es29.js.map
@@ -1 +1 @@
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, \"&lt;\");\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(/&gt;/, \">\")\n .replace(/&quot;/, \"\\\"\")\n .replace(/&apos;/, \"'\")\n .replace(/&amp;/, \"&\");\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]}
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]}