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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/TextAnnotationPopup/TextAnnotationPopup.d.ts.map +1 -1
  2. package/dist/TextAnnotationPopup/useAnnotationQuoteIdle.d.ts +4 -0
  3. package/dist/TextAnnotationPopup/useAnnotationQuoteIdle.d.ts.map +1 -0
  4. package/dist/TextAnnotationPopup/useAnnouncePopupNavigation.d.ts.map +1 -0
  5. package/dist/index.d.ts +0 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/react-text-annotator.css +1 -31
  8. package/dist/react-text-annotator.es.js +211 -25
  9. package/dist/react-text-annotator.es.js.map +1 -1
  10. package/package.json +14 -13
  11. package/dist/hooks/index.d.ts +0 -3
  12. package/dist/hooks/index.d.ts.map +0 -1
  13. package/dist/hooks/useAnnotationQuoteIdling.d.ts +0 -4
  14. package/dist/hooks/useAnnotationQuoteIdling.d.ts.map +0 -1
  15. package/dist/hooks/useAnnouncePopupNavigation.d.ts.map +0 -1
  16. package/dist/react-text-annotator.es10.js +0 -85
  17. package/dist/react-text-annotator.es10.js.map +0 -1
  18. package/dist/react-text-annotator.es11.js +0 -48
  19. package/dist/react-text-annotator.es11.js.map +0 -1
  20. package/dist/react-text-annotator.es12.js +0 -28
  21. package/dist/react-text-annotator.es12.js.map +0 -1
  22. package/dist/react-text-annotator.es13.js +0 -1646
  23. package/dist/react-text-annotator.es13.js.map +0 -1
  24. package/dist/react-text-annotator.es14.js +0 -13
  25. package/dist/react-text-annotator.es14.js.map +0 -1
  26. package/dist/react-text-annotator.es16.js +0 -607
  27. package/dist/react-text-annotator.es16.js.map +0 -1
  28. package/dist/react-text-annotator.es17.js +0 -285
  29. package/dist/react-text-annotator.es17.js.map +0 -1
  30. package/dist/react-text-annotator.es18.js +0 -504
  31. package/dist/react-text-annotator.es18.js.map +0 -1
  32. package/dist/react-text-annotator.es19.js +0 -18
  33. package/dist/react-text-annotator.es19.js.map +0 -1
  34. package/dist/react-text-annotator.es2.js +0 -67
  35. package/dist/react-text-annotator.es2.js.map +0 -1
  36. package/dist/react-text-annotator.es20.js +0 -5
  37. package/dist/react-text-annotator.es20.js.map +0 -1
  38. package/dist/react-text-annotator.es21.js +0 -34
  39. package/dist/react-text-annotator.es21.js.map +0 -1
  40. package/dist/react-text-annotator.es22.js +0 -891
  41. package/dist/react-text-annotator.es22.js.map +0 -1
  42. package/dist/react-text-annotator.es23.js +0 -5
  43. package/dist/react-text-annotator.es23.js.map +0 -1
  44. package/dist/react-text-annotator.es24.js +0 -5
  45. package/dist/react-text-annotator.es24.js.map +0 -1
  46. package/dist/react-text-annotator.es25.js +0 -130
  47. package/dist/react-text-annotator.es25.js.map +0 -1
  48. package/dist/react-text-annotator.es26.js +0 -167
  49. package/dist/react-text-annotator.es26.js.map +0 -1
  50. package/dist/react-text-annotator.es27.js +0 -314
  51. package/dist/react-text-annotator.es27.js.map +0 -1
  52. package/dist/react-text-annotator.es28.js +0 -117
  53. package/dist/react-text-annotator.es28.js.map +0 -1
  54. package/dist/react-text-annotator.es29.js +0 -312
  55. package/dist/react-text-annotator.es29.js.map +0 -1
  56. package/dist/react-text-annotator.es3.js +0 -29
  57. package/dist/react-text-annotator.es3.js.map +0 -1
  58. package/dist/react-text-annotator.es30.js +0 -61
  59. package/dist/react-text-annotator.es30.js.map +0 -1
  60. package/dist/react-text-annotator.es31.js +0 -23
  61. package/dist/react-text-annotator.es31.js.map +0 -1
  62. package/dist/react-text-annotator.es32.js +0 -152
  63. package/dist/react-text-annotator.es32.js.map +0 -1
  64. package/dist/react-text-annotator.es33.js +0 -629
  65. package/dist/react-text-annotator.es33.js.map +0 -1
  66. package/dist/react-text-annotator.es4.js +0 -43
  67. package/dist/react-text-annotator.es4.js.map +0 -1
  68. package/dist/react-text-annotator.es5.js +0 -48
  69. package/dist/react-text-annotator.es5.js.map +0 -1
  70. package/dist/react-text-annotator.es6.js +0 -29
  71. package/dist/react-text-annotator.es6.js.map +0 -1
  72. package/dist/react-text-annotator.es7.js +0 -143
  73. package/dist/react-text-annotator.es7.js.map +0 -1
  74. package/dist/react-text-annotator.es8.js +0 -6
  75. package/dist/react-text-annotator.es8.js.map +0 -1
  76. /package/dist/{hooks → TextAnnotationPopup}/useAnnouncePopupNavigation.d.ts +0 -0
@@ -1,312 +0,0 @@
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
- }
10
- }
11
- return pos;
12
- }
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);
58
- }
59
- function first(urls) {
60
- return urls.replace(/ .*$/, "");
61
- }
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
- }
88
- }
89
- }
90
- function normalizeURI(urls) {
91
- return this.rw(this.first(urls));
92
- }
93
- function repeat(str, times) {
94
- let result = "";
95
- for (let i = 0; i < times; i++) {
96
- result += str;
97
- }
98
- return result;
99
- }
100
- function resolveURI(uri) {
101
- let prefixdef = this.prefixDefs[uri.substring(0, uri.indexOf(":"))];
102
- return uri.replace(new RegExp(prefixdef["matchPattern"]), prefixdef["replacementPattern"]);
103
- }
104
- function getPrefixDef(prefix) {
105
- return this.prefixDefs[prefix];
106
- }
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
- }
113
- }
114
- function resetAndSerialize(el, stripElt, ws) {
115
- return serialize(copyAndReset(el), stripElt, ws);
116
- }
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;
192
- }
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
- }
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";
255
- }
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();
264
- }
265
- }
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
- }
294
- }
295
- 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
311
- };
312
- //# sourceMappingURL=react-text-annotator.es29.js.map
@@ -1 +0,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, \"&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,29 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./react-text-annotator.es8.js";
2
- import { useContext, useCallback, useEffect, Children, cloneElement } from "react";
3
- import { AnnotoriousContext } from "@annotorious/react";
4
- import { TEIPlugin } from "@recogito/text-annotator-tei";
5
- import { createTextAnnotator } from "@soomo/text-annotator";
6
- /* empty css */
7
- const TEIAnnotator = (props) => {
8
- const { children, ...opts } = props;
9
- const { anno, setAnno } = useContext(AnnotoriousContext);
10
- const onLoad = useCallback((element) => {
11
- const anno2 = TEIPlugin(createTextAnnotator(element, opts));
12
- setAnno(anno2);
13
- }, []);
14
- useEffect(() => {
15
- if (!anno)
16
- return;
17
- anno.setStyle(props.style);
18
- }, [props.style]);
19
- useEffect(() => {
20
- if (!anno)
21
- return;
22
- anno.setFilter(props.filter);
23
- }, [props.filter]);
24
- return props.children ? /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: Children.toArray(props.children).map((child) => cloneElement(child, { onLoad })) }) : null;
25
- };
26
- export {
27
- TEIAnnotator
28
- };
29
- //# sourceMappingURL=react-text-annotator.es3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-text-annotator.es3.js","sources":["../src/tei/TEIAnnotator.tsx"],"sourcesContent":["import { Children, JSX, ReactElement, ReactNode, cloneElement, useCallback, useContext, useEffect } from 'react';\nimport { AnnotoriousContext, Filter } from '@annotorious/react';\nimport { TEIPlugin } from '@recogito/text-annotator-tei';\nimport { createTextAnnotator, HighlightStyleExpression } from '@soomo/text-annotator';\nimport type { TextAnnotatorOptions } from '@soomo/text-annotator';\n\nimport '@soomo/text-annotator/dist/text-annotator.css';\n\nexport type TEIAnnotatorProps = TextAnnotatorOptions & {\n\n children?: ReactNode | JSX.Element;\n\n filter?: Filter;\n\n style?: HighlightStyleExpression\n\n}\n\nexport const TEIAnnotator = (props: TEIAnnotatorProps) => {\n\n const { children, ...opts } = props;\n\n const { anno, setAnno } = useContext(AnnotoriousContext);\n\n const onLoad = useCallback((element: HTMLElement) => {\n const anno = TEIPlugin(createTextAnnotator(element, opts));\n setAnno(anno);\n }, []);\n\n useEffect(() => {\n if (!anno)\n return;\n \n anno.setStyle(props.style);\n }, [props.style]);\n\n useEffect(() => {\n if (!anno)\n return;\n \n anno.setFilter(props.filter);\n }, [props.filter]);\n\n return props.children ? (\n <>\n {Children.toArray(props.children).map(child => \n cloneElement(child as ReactElement, { onLoad } as any))}\n </>\n ) : null;\n\n}\n"],"names":["anno","jsx","Fragment"],"mappings":";;;;;;AAkBa,MAAA,eAAe,CAAC,UAA6B;AAExD,QAAM,EAAE,UAAU,GAAG,KAAA,IAAS;AAE9B,QAAM,EAAE,MAAM,YAAY,WAAW,kBAAkB;AAEjD,QAAA,SAAS,YAAY,CAAC,YAAyB;AACnD,UAAMA,QAAO,UAAU,oBAAoB,SAAS,IAAI,CAAC;AACzD,YAAQA,KAAI;AAAA,EACd,GAAG,EAAE;AAEL,YAAU,MAAM;AACd,QAAI,CAAC;AACH;AAEG,SAAA,SAAS,MAAM,KAAK;AAAA,EAAA,GACxB,CAAC,MAAM,KAAK,CAAC;AAEhB,YAAU,MAAM;AACd,QAAI,CAAC;AACH;AAEG,SAAA,UAAU,MAAM,MAAM;AAAA,EAAA,GAC1B,CAAC,MAAM,MAAM,CAAC;AAEjB,SAAO,MAAM,WACXC,sCAAAC,kBAAAA,UAAA,EACG,UAAS,SAAA,QAAQ,MAAM,QAAQ,EAAE,IAAI,CAAA,UACpC,aAAa,OAAuB,EAAE,OAAe,CAAA,CAAC,EAC1D,CAAA,IACE;AAEN;"}
@@ -1,61 +0,0 @@
1
- function addBehaviors(bhvs) {
2
- if (bhvs.namespaces) {
3
- for (let prefix of Object.keys(bhvs.namespaces)) {
4
- if (!this.namespaces.has(bhvs.namespaces[prefix]) && !Array.from(this.namespaces.values()).includes(prefix)) {
5
- this.namespaces.set(bhvs.namespaces[prefix], prefix);
6
- }
7
- }
8
- }
9
- for (let prefix of this.namespaces.values()) {
10
- if (bhvs[prefix]) {
11
- for (let b of Object.keys(bhvs[prefix])) {
12
- this.behaviors[`${prefix}:${b}`] = bhvs[prefix][b];
13
- }
14
- }
15
- }
16
- if (bhvs["functions"]) {
17
- for (let fn of Object.keys(bhvs["functions"])) {
18
- this.utilities[fn] = bhvs["functions"][fn].bind(this.utilities);
19
- }
20
- }
21
- if (bhvs["handlers"]) {
22
- console.log("Behavior handlers are no longer used.");
23
- }
24
- if (bhvs["fallbacks"]) {
25
- console.log("Fallback behaviors are no longer used.");
26
- }
27
- }
28
- function addBehavior(ns, element, b) {
29
- let p;
30
- if (ns === Object(ns)) {
31
- for (let prefix of Object.keys(ns)) {
32
- if (!this.namespaces.has(ns[prefix])) {
33
- this.namespaces.set(ns[prefix], prefix);
34
- p = prefix;
35
- }
36
- }
37
- } else {
38
- p = ns;
39
- }
40
- this.behaviors[`${p}:${element}`] = b;
41
- }
42
- function removeBehavior(ns, element) {
43
- let p;
44
- if (ns === Object(ns)) {
45
- for (let prefix of Object.keys(ns)) {
46
- if (!this.namespaces.has(ns[prefix])) {
47
- this.namespaces.set(ns[prefix], prefix);
48
- p = prefix;
49
- }
50
- }
51
- } else {
52
- p = ns;
53
- }
54
- delete this.behaviors[`${p}:${element}`];
55
- }
56
- export {
57
- addBehavior,
58
- addBehaviors,
59
- removeBehavior
60
- };
61
- //# sourceMappingURL=react-text-annotator.es30.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-text-annotator.es30.js","sources":["../../../node_modules/CETEIcean/src/behaviors.js"],"sourcesContent":["\n/* \n Add a user-defined set of behaviors to CETEIcean's processing\n workflow. Added behaviors will override predefined behaviors with the\n same name.\n*/\nexport function addBehaviors(bhvs) {\n if (bhvs.namespaces) {\n for (let prefix of Object.keys(bhvs.namespaces)) {\n if (!this.namespaces.has(bhvs.namespaces[prefix]) && !Array.from(this.namespaces.values()).includes(prefix)) {\n this.namespaces.set(bhvs.namespaces[prefix], prefix);\n }\n }\n }\n for (let prefix of this.namespaces.values()) {\n if (bhvs[prefix]) {\n for (let b of Object.keys(bhvs[prefix])) {\n this.behaviors[`${prefix}:${b}`] = bhvs[prefix][b];\n }\n }\n }\n if (bhvs[\"functions\"]) {\n for (let fn of Object.keys(bhvs[\"functions\"])) {\n this.utilities[fn] = bhvs[\"functions\"][fn].bind(this.utilities);\n }\n }\n if (bhvs[\"handlers\"]) {\n console.log(\"Behavior handlers are no longer used.\")\n }\n if (bhvs[\"fallbacks\"]) {\n console.log(\"Fallback behaviors are no longer used.\")\n }\n}\n\n/* \n Adds or replaces an individual behavior. Takes a namespace prefix or namespace definition,\n the element name, and the behavior. E.g.\n addBehavior(\"tei\", \"add\", [\"`\",\"`\"]) for an already-declared namespace or\n addBehavior({\"doc\": \"http://docbook.org/ns/docbook\"}, \"note\", [\"[\",\"]\"]) for a new one\n*/\nexport function addBehavior(ns, element, b) {\n let p;\n if (ns === Object(ns)) {\n for (let prefix of Object.keys(ns)) {\n if (!this.namespaces.has(ns[prefix])) {\n this.namespaces.set(ns[prefix], prefix);\n p = prefix;\n }\n }\n } else {\n p = ns;\n }\n this.behaviors[`${p}:${element}`] = b;\n}\n\n/*\n Removes a previously-defined or default behavior. Takes a namespace prefix or namespace definition\n and the element name.\n*/\nexport function removeBehavior(ns, element) {\n let p;\n if (ns === Object(ns)) {\n for (let prefix of Object.keys(ns)) {\n if (!this.namespaces.has(ns[prefix])) {\n this.namespaces.set(ns[prefix], prefix);\n p = prefix;\n }\n }\n } else {\n p = ns;\n }\n delete this.behaviors[`${p}:${element}`];\n}\n"],"names":[],"mappings":"AAMO,SAAS,aAAa,MAAM;AACjC,MAAI,KAAK,YAAY;AACnB,aAAS,UAAU,OAAO,KAAK,KAAK,UAAU,GAAG;AAC/C,UAAI,CAAC,KAAK,WAAW,IAAI,KAAK,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,WAAW,OAAM,CAAE,EAAE,SAAS,MAAM,GAAG;AAC3G,aAAK,WAAW,IAAI,KAAK,WAAW,MAAM,GAAG,MAAM;AAAA,MAC3D;AAAA,IACA;AAAA,EACA;AACE,WAAS,UAAU,KAAK,WAAW,OAAM,GAAI;AAC3C,QAAI,KAAK,MAAM,GAAG;AAChB,eAAS,KAAK,OAAO,KAAK,KAAK,MAAM,CAAC,GAAG;AACvC,aAAK,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;AAAA,MACzD;AAAA,IACA;AAAA,EACA;AACE,MAAI,KAAK,WAAW,GAAG;AACrB,aAAS,MAAM,OAAO,KAAK,KAAK,WAAW,CAAC,GAAG;AAC7C,WAAK,UAAU,EAAE,IAAI,KAAK,WAAW,EAAE,EAAE,EAAE,KAAK,KAAK,SAAS;AAAA,IACpE;AAAA,EACA;AACE,MAAI,KAAK,UAAU,GAAG;AACpB,YAAQ,IAAI,uCAAuC;AAAA,EACvD;AACE,MAAI,KAAK,WAAW,GAAG;AACrB,YAAQ,IAAI,wCAAwC;AAAA,EACxD;AACA;AAQO,SAAS,YAAY,IAAI,SAAS,GAAG;AAC1C,MAAI;AACJ,MAAI,OAAO,OAAO,EAAE,GAAG;AACrB,aAAS,UAAU,OAAO,KAAK,EAAE,GAAG;AAClC,UAAI,CAAC,KAAK,WAAW,IAAI,GAAG,MAAM,CAAC,GAAG;AACpC,aAAK,WAAW,IAAI,GAAG,MAAM,GAAG,MAAM;AACtC,YAAI;AAAA,MACZ;AAAA,IACA;AAAA,EACA,OAAS;AACL,QAAI;AAAA,EACR;AACE,OAAK,UAAU,GAAG,CAAC,IAAI,OAAO,EAAE,IAAI;AACtC;AAMO,SAAS,eAAe,IAAI,SAAS;AAC1C,MAAI;AACJ,MAAI,OAAO,OAAO,EAAE,GAAG;AACrB,aAAS,UAAU,OAAO,KAAK,EAAE,GAAG;AAClC,UAAI,CAAC,KAAK,WAAW,IAAI,GAAG,MAAM,CAAC,GAAG;AACpC,aAAK,WAAW,IAAI,GAAG,MAAM,GAAG,MAAM;AACtC,YAAI;AAAA,MACZ;AAAA,IACA;AAAA,EACA,OAAS;AACL,QAAI;AAAA,EACR;AACE,SAAO,KAAK,UAAU,GAAG,CAAC,IAAI,OAAO,EAAE;AACzC;","x_google_ignoreList":[0]}
@@ -1,23 +0,0 @@
1
- function learnElementNames(XML_dom, namespaces) {
2
- const root = XML_dom.documentElement;
3
- let i = 1;
4
- let qname = function(e) {
5
- if (!namespaces.has(e.namespaceURI ? e.namespaceURI : "")) {
6
- namespaces.set(e.namespaceURI, "ns" + i++);
7
- }
8
- return namespaces.get(e.namespaceURI ? e.namespaceURI : "") + ":" + e.localName;
9
- };
10
- const els = new Set(
11
- Array.from(root.querySelectorAll("*"), qname)
12
- );
13
- els.add(qname(root));
14
- return els;
15
- }
16
- function learnCustomElementNames(HTML_dom) {
17
- return new Set(Array.from(HTML_dom.querySelectorAll("*[data-origname]"), (e) => e.localName.replace(/(\w+)-.+/, "$1:") + e.getAttribute("data-origname")));
18
- }
19
- export {
20
- learnCustomElementNames,
21
- learnElementNames
22
- };
23
- //# sourceMappingURL=react-text-annotator.es31.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-text-annotator.es31.js","sources":["../../../node_modules/CETEIcean/src/dom.js"],"sourcesContent":["export function learnElementNames(XML_dom, namespaces) {\n const root = XML_dom.documentElement;\n let i = 1;\n let qname = function(e) { \n if (!namespaces.has(e.namespaceURI ? e.namespaceURI : \"\")) {\n namespaces.set(e.namespaceURI, \"ns\" + i++);\n } \n return namespaces.get(e.namespaceURI ? e.namespaceURI : \"\") + \":\" + e.localName;\n };\n const els = new Set(\n Array.from(root.querySelectorAll(\"*\"), qname));\n \n // Add the root element to the array\n els.add(qname(root));\n return els\n}\n\nexport function learnCustomElementNames(HTML_dom) {\n return new Set(Array.from(HTML_dom.querySelectorAll(\"*[data-origname]\"), e => e.localName.replace(/(\\w+)-.+/,\"$1:\") + e.getAttribute(\"data-origname\")));\n}"],"names":[],"mappings":"AAAO,SAAS,kBAAkB,SAAS,YAAY;AACrD,QAAM,OAAO,QAAQ;AACrB,MAAI,IAAI;AACR,MAAI,QAAQ,SAAS,GAAG;AACtB,QAAI,CAAC,WAAW,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG;AACzD,iBAAW,IAAI,EAAE,cAAc,OAAO,GAAG;AAAA,IAC1C;AACD,WAAO,WAAW,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,MAAM,EAAE;AAAA,EACvE;AACD,QAAM,MAAM,IAAI;AAAA,IACd,MAAM,KAAK,KAAK,iBAAiB,GAAG,GAAG,KAAK;AAAA,EAAC;AAG/C,MAAI,IAAI,MAAM,IAAI,CAAC;AACnB,SAAO;AACT;AAEO,SAAS,wBAAwB,UAAU;AAChD,SAAO,IAAI,IAAI,MAAM,KAAK,SAAS,iBAAiB,kBAAkB,GAAG,OAAK,EAAE,UAAU,QAAQ,YAAW,KAAK,IAAI,EAAE,aAAa,eAAe,CAAC,CAAC;AACxJ;","x_google_ignoreList":[0]}
@@ -1,152 +0,0 @@
1
- const min = Math.min;
2
- const max = Math.max;
3
- const round = Math.round;
4
- const floor = Math.floor;
5
- const createCoords = (v) => ({
6
- x: v,
7
- y: v
8
- });
9
- const oppositeSideMap = {
10
- left: "right",
11
- right: "left",
12
- bottom: "top",
13
- top: "bottom"
14
- };
15
- const oppositeAlignmentMap = {
16
- start: "end",
17
- end: "start"
18
- };
19
- function clamp(start, value, end) {
20
- return max(start, min(value, end));
21
- }
22
- function evaluate(value, param) {
23
- return typeof value === "function" ? value(param) : value;
24
- }
25
- function getSide(placement) {
26
- return placement.split("-")[0];
27
- }
28
- function getAlignment(placement) {
29
- return placement.split("-")[1];
30
- }
31
- function getOppositeAxis(axis) {
32
- return axis === "x" ? "y" : "x";
33
- }
34
- function getAxisLength(axis) {
35
- return axis === "y" ? "height" : "width";
36
- }
37
- function getSideAxis(placement) {
38
- return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
39
- }
40
- function getAlignmentAxis(placement) {
41
- return getOppositeAxis(getSideAxis(placement));
42
- }
43
- function getAlignmentSides(placement, rects, rtl) {
44
- if (rtl === void 0) {
45
- rtl = false;
46
- }
47
- const alignment = getAlignment(placement);
48
- const alignmentAxis = getAlignmentAxis(placement);
49
- const length = getAxisLength(alignmentAxis);
50
- let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
51
- if (rects.reference[length] > rects.floating[length]) {
52
- mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
53
- }
54
- return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
55
- }
56
- function getExpandedPlacements(placement) {
57
- const oppositePlacement = getOppositePlacement(placement);
58
- return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
59
- }
60
- function getOppositeAlignmentPlacement(placement) {
61
- return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
62
- }
63
- function getSideList(side, isStart, rtl) {
64
- const lr = ["left", "right"];
65
- const rl = ["right", "left"];
66
- const tb = ["top", "bottom"];
67
- const bt = ["bottom", "top"];
68
- switch (side) {
69
- case "top":
70
- case "bottom":
71
- if (rtl) return isStart ? rl : lr;
72
- return isStart ? lr : rl;
73
- case "left":
74
- case "right":
75
- return isStart ? tb : bt;
76
- default:
77
- return [];
78
- }
79
- }
80
- function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
81
- const alignment = getAlignment(placement);
82
- let list = getSideList(getSide(placement), direction === "start", rtl);
83
- if (alignment) {
84
- list = list.map((side) => side + "-" + alignment);
85
- if (flipAlignment) {
86
- list = list.concat(list.map(getOppositeAlignmentPlacement));
87
- }
88
- }
89
- return list;
90
- }
91
- function getOppositePlacement(placement) {
92
- return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
93
- }
94
- function expandPaddingObject(padding) {
95
- return {
96
- top: 0,
97
- right: 0,
98
- bottom: 0,
99
- left: 0,
100
- ...padding
101
- };
102
- }
103
- function getPaddingObject(padding) {
104
- return typeof padding !== "number" ? expandPaddingObject(padding) : {
105
- top: padding,
106
- right: padding,
107
- bottom: padding,
108
- left: padding
109
- };
110
- }
111
- function rectToClientRect(rect) {
112
- const {
113
- x,
114
- y,
115
- width,
116
- height
117
- } = rect;
118
- return {
119
- width,
120
- height,
121
- top: y,
122
- left: x,
123
- right: x + width,
124
- bottom: y + height,
125
- x,
126
- y
127
- };
128
- }
129
- export {
130
- clamp,
131
- createCoords,
132
- evaluate,
133
- expandPaddingObject,
134
- floor,
135
- getAlignment,
136
- getAlignmentAxis,
137
- getAlignmentSides,
138
- getAxisLength,
139
- getExpandedPlacements,
140
- getOppositeAlignmentPlacement,
141
- getOppositeAxis,
142
- getOppositeAxisPlacements,
143
- getOppositePlacement,
144
- getPaddingObject,
145
- getSide,
146
- getSideAxis,
147
- max,
148
- min,
149
- rectToClientRect,
150
- round
151
- };
152
- //# sourceMappingURL=react-text-annotator.es32.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-text-annotator.es32.js","sources":["../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}