@soomo/react-text-annotator 3.2.0-staging.3 → 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.
Files changed (38) hide show
  1. package/dist/react-text-annotator.css +1 -1
  2. package/dist/react-text-annotator.es10.js +78 -497
  3. package/dist/react-text-annotator.es10.js.map +1 -1
  4. package/dist/react-text-annotator.es11.js +40 -77
  5. package/dist/react-text-annotator.es11.js.map +1 -1
  6. package/dist/react-text-annotator.es12.js +21 -41
  7. package/dist/react-text-annotator.es12.js.map +1 -1
  8. package/dist/react-text-annotator.es13.js +1637 -19
  9. package/dist/react-text-annotator.es13.js.map +1 -1
  10. package/dist/react-text-annotator.es14.js +9 -1642
  11. package/dist/react-text-annotator.es14.js.map +1 -1
  12. package/dist/react-text-annotator.es16.js +607 -0
  13. package/dist/react-text-annotator.es16.js.map +1 -0
  14. package/dist/react-text-annotator.es17.js +244 -566
  15. package/dist/react-text-annotator.es17.js.map +1 -1
  16. package/dist/react-text-annotator.es18.js +471 -252
  17. package/dist/react-text-annotator.es18.js.map +1 -1
  18. package/dist/react-text-annotator.es2.js +1 -1
  19. package/dist/react-text-annotator.es25.js +124 -111
  20. package/dist/react-text-annotator.es25.js.map +1 -1
  21. package/dist/react-text-annotator.es26.js +140 -285
  22. package/dist/react-text-annotator.es26.js.map +1 -1
  23. package/dist/react-text-annotator.es27.js +296 -43
  24. package/dist/react-text-annotator.es27.js.map +1 -1
  25. package/dist/react-text-annotator.es28.js +113 -19
  26. package/dist/react-text-annotator.es28.js.map +1 -1
  27. package/dist/react-text-annotator.es29.js +287 -105
  28. package/dist/react-text-annotator.es29.js.map +1 -1
  29. package/dist/react-text-annotator.es30.js +48 -154
  30. package/dist/react-text-annotator.es30.js.map +1 -1
  31. package/dist/react-text-annotator.es31.js +19 -310
  32. package/dist/react-text-annotator.es31.js.map +1 -1
  33. package/dist/react-text-annotator.es4.js +2 -2
  34. package/dist/react-text-annotator.es5.js +1 -1
  35. package/dist/react-text-annotator.es7.js +4 -4
  36. package/package.json +2 -2
  37. package/dist/react-text-annotator.es15.js +0 -13
  38. package/dist/react-text-annotator.es15.js.map +0 -1
@@ -1,312 +1,167 @@
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
+ function hasWindow() {
2
+ return typeof window !== "undefined";
3
+ }
4
+ function getNodeName(node) {
5
+ if (isNode(node)) {
6
+ return (node.nodeName || "").toLowerCase();
10
7
  }
11
- return pos;
8
+ return "#document";
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());
53
- }
54
- }
55
- return result;
56
- };
57
- return clone(node);
10
+ function getWindow(node) {
11
+ var _node$ownerDocument;
12
+ return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
58
13
  }
59
- function first(urls) {
60
- return urls.replace(/ .*$/, "");
14
+ function getDocumentElement(node) {
15
+ var _ref;
16
+ return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
61
17
  }
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
- }
18
+ function isNode(value) {
19
+ if (!hasWindow()) {
20
+ return false;
88
21
  }
22
+ return value instanceof Node || value instanceof getWindow(value).Node;
89
23
  }
90
- function normalizeURI(urls) {
91
- return this.rw(this.first(urls));
24
+ function isElement(value) {
25
+ if (!hasWindow()) {
26
+ return false;
27
+ }
28
+ return value instanceof Element || value instanceof getWindow(value).Element;
92
29
  }
93
- function repeat(str, times) {
94
- let result = "";
95
- for (let i = 0; i < times; i++) {
96
- result += str;
30
+ function isHTMLElement(value) {
31
+ if (!hasWindow()) {
32
+ return false;
97
33
  }
98
- return result;
34
+ return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
99
35
  }
100
- function resolveURI(uri) {
101
- let prefixdef = this.prefixDefs[uri.substring(0, uri.indexOf(":"))];
102
- return uri.replace(new RegExp(prefixdef["matchPattern"]), prefixdef["replacementPattern"]);
36
+ function isShadowRoot(value) {
37
+ if (!hasWindow() || typeof ShadowRoot === "undefined") {
38
+ return false;
39
+ }
40
+ return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
103
41
  }
104
- function getPrefixDef(prefix) {
105
- return this.prefixDefs[prefix];
42
+ function isOverflowElement(element) {
43
+ const {
44
+ overflow,
45
+ overflowX,
46
+ overflowY,
47
+ display
48
+ } = getComputedStyle(element);
49
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !["inline", "contents"].includes(display);
106
50
  }
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
- }
51
+ function isTableElement(element) {
52
+ return ["table", "td", "th"].includes(getNodeName(element));
113
53
  }
114
- function resetAndSerialize(el, stripElt, ws) {
115
- return serialize(copyAndReset(el), stripElt, ws);
54
+ function isTopLayer(element) {
55
+ return [":popover-open", ":modal"].some((selector) => {
56
+ try {
57
+ return element.matches(selector);
58
+ } catch (e) {
59
+ return false;
60
+ }
61
+ });
116
62
  }
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
- }
63
+ function isContainingBlock(elementOrCss) {
64
+ const webkit = isWebKit();
65
+ const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
66
+ return ["transform", "translate", "scale", "rotate", "perspective"].some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "translate", "scale", "rotate", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value));
67
+ }
68
+ function getContainingBlock(element) {
69
+ let currentNode = getParentNode(element);
70
+ while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
71
+ if (isContainingBlock(currentNode)) {
72
+ return currentNode;
73
+ } else if (isTopLayer(currentNode)) {
74
+ return null;
75
+ }
76
+ currentNode = getParentNode(currentNode);
179
77
  }
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") + ">";
78
+ return null;
79
+ }
80
+ function isWebKit() {
81
+ if (typeof CSS === "undefined" || !CSS.supports) return false;
82
+ return CSS.supports("-webkit-backdrop-filter", "none");
83
+ }
84
+ function isLastTraversableNode(node) {
85
+ return ["html", "body", "#document"].includes(getNodeName(node));
86
+ }
87
+ function getComputedStyle(element) {
88
+ return getWindow(element).getComputedStyle(element);
89
+ }
90
+ function getNodeScroll(element) {
91
+ if (isElement(element)) {
92
+ return {
93
+ scrollLeft: element.scrollLeft,
94
+ scrollTop: element.scrollTop
95
+ };
187
96
  }
188
- if (el.nodeType === 9 || el.nodeType === 11) {
189
- str += "\n";
97
+ return {
98
+ scrollLeft: element.scrollX,
99
+ scrollTop: element.scrollY
100
+ };
101
+ }
102
+ function getParentNode(node) {
103
+ if (getNodeName(node) === "html") {
104
+ return node;
190
105
  }
191
- return str;
106
+ const result = (
107
+ // Step into the shadow DOM of the parent of a slotted node.
108
+ node.assignedSlot || // DOM Element detected.
109
+ node.parentNode || // ShadowRoot detected.
110
+ isShadowRoot(node) && node.host || // Fallback.
111
+ getDocumentElement(node)
112
+ );
113
+ return isShadowRoot(result) ? result.host : result;
192
114
  }
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 += ">";
115
+ function getNearestOverflowAncestor(node) {
116
+ const parentNode = getParentNode(node);
117
+ if (isLastTraversableNode(parentNode)) {
118
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
210
119
  }
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
- }
120
+ if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
121
+ return parentNode;
241
122
  }
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
- }
123
+ return getNearestOverflowAncestor(parentNode);
124
+ }
125
+ function getOverflowAncestors(node, list, traverseIframes) {
126
+ var _node$ownerDocument2;
127
+ if (list === void 0) {
128
+ list = [];
252
129
  }
253
- if (el.nodeType === 9 || el.nodeType === 11) {
254
- str += "\n";
130
+ if (traverseIframes === void 0) {
131
+ traverseIframes = true;
255
132
  }
256
- return str;
257
- }
258
- function unEscapeEntities(str) {
259
- return str.replace(/&gt;/, ">").replace(/&quot;/, '"').replace(/&apos;/, "'").replace(/&amp;/, "&");
260
- }
261
- function tagName(name) {
262
- if (name.includes(":"), 1) {
263
- return name.replace(/:/, "-").toLowerCase();
133
+ const scrollableAncestor = getNearestOverflowAncestor(node);
134
+ const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
135
+ const win = getWindow(scrollableAncestor);
136
+ if (isBody) {
137
+ const frameElement = getFrameElement(win);
138
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
264
139
  }
140
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
265
141
  }
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
- }
142
+ function getFrameElement(win) {
143
+ return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
294
144
  }
295
145
  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
146
+ getComputedStyle,
147
+ getContainingBlock,
148
+ getDocumentElement,
149
+ getFrameElement,
150
+ getNearestOverflowAncestor,
151
+ getNodeName,
152
+ getNodeScroll,
153
+ getOverflowAncestors,
154
+ getParentNode,
155
+ getWindow,
156
+ isContainingBlock,
157
+ isElement,
158
+ isHTMLElement,
159
+ isLastTraversableNode,
160
+ isNode,
161
+ isOverflowElement,
162
+ isShadowRoot,
163
+ isTableElement,
164
+ isTopLayer,
165
+ isWebKit
311
166
  };
312
167
  //# sourceMappingURL=react-text-annotator.es26.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-text-annotator.es26.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.es26.js","sources":["../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs"],"sourcesContent":["function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n"],"names":[],"mappings":"AAAA,SAAS,YAAY;AACnB,SAAO,OAAO,WAAW;AAC3B;AACA,SAAS,YAAY,MAAM;AACzB,MAAI,OAAO,IAAI,GAAG;AAChB,YAAQ,KAAK,YAAY,IAAI,YAAa;AAAA,EAC9C;AAIE,SAAO;AACT;AACA,SAAS,UAAU,MAAM;AACvB,MAAI;AACJ,UAAQ,QAAQ,SAAS,sBAAsB,KAAK,kBAAkB,OAAO,SAAS,oBAAoB,gBAAgB;AAC5H;AACA,SAAS,mBAAmB,MAAM;AAChC,MAAI;AACJ,UAAQ,QAAQ,OAAO,IAAI,IAAI,KAAK,gBAAgB,KAAK,aAAa,OAAO,aAAa,OAAO,SAAS,KAAK;AACjH;AACA,SAAS,OAAO,OAAO;AACrB,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACX;AACE,SAAO,iBAAiB,QAAQ,iBAAiB,UAAU,KAAK,EAAE;AACpE;AACA,SAAS,UAAU,OAAO;AACxB,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACX;AACE,SAAO,iBAAiB,WAAW,iBAAiB,UAAU,KAAK,EAAE;AACvE;AACA,SAAS,cAAc,OAAO;AAC5B,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACX;AACE,SAAO,iBAAiB,eAAe,iBAAiB,UAAU,KAAK,EAAE;AAC3E;AACA,SAAS,aAAa,OAAO;AAC3B,MAAI,CAAC,UAAS,KAAM,OAAO,eAAe,aAAa;AACrD,WAAO;AAAA,EACX;AACE,SAAO,iBAAiB,cAAc,iBAAiB,UAAU,KAAK,EAAE;AAC1E;AACA,SAAS,kBAAkB,SAAS;AAClC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM,iBAAiB,OAAO;AAC5B,SAAO,kCAAkC,KAAK,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC,UAAU,UAAU,EAAE,SAAS,OAAO;AAC7H;AACA,SAAS,eAAe,SAAS;AAC/B,SAAO,CAAC,SAAS,MAAM,IAAI,EAAE,SAAS,YAAY,OAAO,CAAC;AAC5D;AACA,SAAS,WAAW,SAAS;AAC3B,SAAO,CAAC,iBAAiB,QAAQ,EAAE,KAAK,cAAY;AAClD,QAAI;AACF,aAAO,QAAQ,QAAQ,QAAQ;AAAA,IAChC,SAAQ,GAAG;AACV,aAAO;AAAA,IACb;AAAA,EACA,CAAG;AACH;AACA,SAAS,kBAAkB,cAAc;AACvC,QAAM,SAAS,SAAU;AACzB,QAAM,MAAM,UAAU,YAAY,IAAI,iBAAiB,YAAY,IAAI;AAIvE,SAAO,CAAC,aAAa,aAAa,SAAS,UAAU,aAAa,EAAE,KAAK,WAAS,IAAI,KAAK,IAAI,IAAI,KAAK,MAAM,SAAS,KAAK,MAAM,IAAI,gBAAgB,IAAI,kBAAkB,WAAW,UAAU,CAAC,WAAW,IAAI,iBAAiB,IAAI,mBAAmB,SAAS,UAAU,CAAC,WAAW,IAAI,SAAS,IAAI,WAAW,SAAS,UAAU,CAAC,aAAa,aAAa,SAAS,UAAU,eAAe,QAAQ,EAAE,KAAK,YAAU,IAAI,cAAc,IAAI,SAAS,KAAK,CAAC,KAAK,CAAC,SAAS,UAAU,UAAU,SAAS,EAAE,KAAK,YAAU,IAAI,WAAW,IAAI,SAAS,KAAK,CAAC;AACniB;AACA,SAAS,mBAAmB,SAAS;AACnC,MAAI,cAAc,cAAc,OAAO;AACvC,SAAO,cAAc,WAAW,KAAK,CAAC,sBAAsB,WAAW,GAAG;AACxE,QAAI,kBAAkB,WAAW,GAAG;AAClC,aAAO;AAAA,IACb,WAAe,WAAW,WAAW,GAAG;AAClC,aAAO;AAAA,IACb;AACI,kBAAc,cAAc,WAAW;AAAA,EAC3C;AACE,SAAO;AACT;AACA,SAAS,WAAW;AAClB,MAAI,OAAO,QAAQ,eAAe,CAAC,IAAI,SAAU,QAAO;AACxD,SAAO,IAAI,SAAS,2BAA2B,MAAM;AACvD;AACA,SAAS,sBAAsB,MAAM;AACnC,SAAO,CAAC,QAAQ,QAAQ,WAAW,EAAE,SAAS,YAAY,IAAI,CAAC;AACjE;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,UAAU,OAAO,EAAE,iBAAiB,OAAO;AACpD;AACA,SAAS,cAAc,SAAS;AAC9B,MAAI,UAAU,OAAO,GAAG;AACtB,WAAO;AAAA,MACL,YAAY,QAAQ;AAAA,MACpB,WAAW,QAAQ;AAAA,IACpB;AAAA,EACL;AACE,SAAO;AAAA,IACL,YAAY,QAAQ;AAAA,IACpB,WAAW,QAAQ;AAAA,EACpB;AACH;AACA,SAAS,cAAc,MAAM;AAC3B,MAAI,YAAY,IAAI,MAAM,QAAQ;AAChC,WAAO;AAAA,EACX;AACE,QAAM;AAAA;AAAA,IAEN,KAAK;AAAA,IAEL,KAAK;AAAA,IAEL,aAAa,IAAI,KAAK,KAAK;AAAA,IAE3B,mBAAmB,IAAI;AAAA;AACvB,SAAO,aAAa,MAAM,IAAI,OAAO,OAAO;AAC9C;AACA,SAAS,2BAA2B,MAAM;AACxC,QAAM,aAAa,cAAc,IAAI;AACrC,MAAI,sBAAsB,UAAU,GAAG;AACrC,WAAO,KAAK,gBAAgB,KAAK,cAAc,OAAO,KAAK;AAAA,EAC/D;AACE,MAAI,cAAc,UAAU,KAAK,kBAAkB,UAAU,GAAG;AAC9D,WAAO;AAAA,EACX;AACE,SAAO,2BAA2B,UAAU;AAC9C;AACA,SAAS,qBAAqB,MAAM,MAAM,iBAAiB;AACzD,MAAI;AACJ,MAAI,SAAS,QAAQ;AACnB,WAAO,CAAE;AAAA,EACb;AACE,MAAI,oBAAoB,QAAQ;AAC9B,sBAAkB;AAAA,EACtB;AACE,QAAM,qBAAqB,2BAA2B,IAAI;AAC1D,QAAM,SAAS,yBAAyB,uBAAuB,KAAK,kBAAkB,OAAO,SAAS,qBAAqB;AAC3H,QAAM,MAAM,UAAU,kBAAkB;AACxC,MAAI,QAAQ;AACV,UAAM,eAAe,gBAAgB,GAAG;AACxC,WAAO,KAAK,OAAO,KAAK,IAAI,kBAAkB,CAAE,GAAE,kBAAkB,kBAAkB,IAAI,qBAAqB,CAAE,GAAE,gBAAgB,kBAAkB,qBAAqB,YAAY,IAAI,EAAE;AAAA,EAChM;AACE,SAAO,KAAK,OAAO,oBAAoB,qBAAqB,oBAAoB,CAAA,GAAI,eAAe,CAAC;AACtG;AACA,SAAS,gBAAgB,KAAK;AAC5B,SAAO,IAAI,UAAU,OAAO,eAAe,IAAI,MAAM,IAAI,IAAI,eAAe;AAC9E;","x_google_ignoreList":[0]}