@soomo/react-text-annotator 3.1.0-staging.13 → 3.1.0-staging.15

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 (68) hide show
  1. package/dist/TextAnnotatorPopup/TextAnnotatorPopup.d.ts +1 -11
  2. package/dist/TextAnnotatorPopup/TextAnnotatorPopup.d.ts.map +1 -1
  3. package/dist/hooks/index.d.ts +2 -1
  4. package/dist/hooks/index.d.ts.map +1 -1
  5. package/dist/hooks/useAnnotationTargetIdling.d.ts +4 -0
  6. package/dist/hooks/useAnnotationTargetIdling.d.ts.map +1 -0
  7. package/dist/react-text-annotator.es.js +5 -4
  8. package/dist/react-text-annotator.es.js.map +1 -1
  9. package/dist/react-text-annotator.es11.js +483 -78
  10. package/dist/react-text-annotator.es11.js.map +1 -1
  11. package/dist/react-text-annotator.es12.js +77 -40
  12. package/dist/react-text-annotator.es12.js.map +1 -1
  13. package/dist/react-text-annotator.es13.js +45 -9
  14. package/dist/react-text-annotator.es13.js.map +1 -1
  15. package/dist/react-text-annotator.es14.js +45 -10
  16. package/dist/react-text-annotator.es14.js.map +1 -1
  17. package/dist/react-text-annotator.es15.js +12 -0
  18. package/dist/react-text-annotator.es15.js.map +1 -0
  19. package/dist/react-text-annotator.es17.js +215 -554
  20. package/dist/react-text-annotator.es17.js.map +1 -1
  21. package/dist/react-text-annotator.es18.js +585 -2
  22. package/dist/react-text-annotator.es18.js.map +1 -1
  23. package/dist/react-text-annotator.es19.js +2 -31
  24. package/dist/react-text-annotator.es19.js.map +1 -1
  25. package/dist/react-text-annotator.es2.js +2 -2
  26. package/dist/react-text-annotator.es20.js +20 -887
  27. package/dist/react-text-annotator.es20.js.map +1 -1
  28. package/dist/react-text-annotator.es21.js +893 -109
  29. package/dist/react-text-annotator.es21.js.map +1 -1
  30. package/dist/react-text-annotator.es22.js +2 -309
  31. package/dist/react-text-annotator.es22.js.map +1 -1
  32. package/dist/react-text-annotator.es23.js +2 -58
  33. package/dist/react-text-annotator.es23.js.map +1 -1
  34. package/dist/react-text-annotator.es24.js +113 -19
  35. package/dist/react-text-annotator.es24.js.map +1 -1
  36. package/dist/react-text-annotator.es25.js +309 -2
  37. package/dist/react-text-annotator.es25.js.map +1 -1
  38. package/dist/react-text-annotator.es26.js +58 -2
  39. package/dist/react-text-annotator.es26.js.map +1 -1
  40. package/dist/react-text-annotator.es27.js +17 -124
  41. package/dist/react-text-annotator.es27.js.map +1 -1
  42. package/dist/react-text-annotator.es28.js +107 -144
  43. package/dist/react-text-annotator.es28.js.map +1 -1
  44. package/dist/react-text-annotator.es29.js +156 -303
  45. package/dist/react-text-annotator.es29.js.map +1 -1
  46. package/dist/react-text-annotator.es3.js +2 -2
  47. package/dist/react-text-annotator.es30.js +308 -146
  48. package/dist/react-text-annotator.es30.js.map +1 -1
  49. package/dist/react-text-annotator.es31.js +130 -544
  50. package/dist/react-text-annotator.es31.js.map +1 -1
  51. package/dist/react-text-annotator.es32.js +566 -0
  52. package/dist/react-text-annotator.es32.js.map +1 -0
  53. package/dist/react-text-annotator.es4.js +2 -2
  54. package/dist/react-text-annotator.es5.js +28 -24
  55. package/dist/react-text-annotator.es5.js.map +1 -1
  56. package/dist/react-text-annotator.es6.js +23 -124
  57. package/dist/react-text-annotator.es6.js.map +1 -1
  58. package/dist/react-text-annotator.es7.js +121 -538
  59. package/dist/react-text-annotator.es7.js.map +1 -1
  60. package/dist/react-text-annotator.es8.js +545 -10
  61. package/dist/react-text-annotator.es8.js.map +1 -1
  62. package/dist/react-text-annotator.es9.js +13 -0
  63. package/dist/react-text-annotator.es9.js.map +1 -0
  64. package/package.json +11 -11
  65. package/dist/react-text-annotator.es10.js +0 -490
  66. package/dist/react-text-annotator.es10.js.map +0 -1
  67. package/dist/react-text-annotator.es16.js +0 -249
  68. package/dist/react-text-annotator.es16.js.map +0 -1
@@ -1,130 +1,23 @@
1
- import { isShadowRoot, isHTMLElement } from "./react-text-annotator.es28.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;
7
- }
8
- return activeElement2;
9
- }
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;
23
- }
24
- next = next.parentNode || next.host;
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++);
25
7
  }
26
- }
27
- return false;
28
- }
29
- function getPlatform() {
30
- const uaData = navigator.userAgentData;
31
- if (uaData != null && uaData.platform) {
32
- return uaData.platform;
33
- }
34
- return navigator.platform;
35
- }
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;
48
- }
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;
55
- }
56
- return event.detail === 0 && !event.pointerType;
57
- }
58
- function isVirtualPointerEvent(event) {
59
- if (isJSDOM()) return false;
60
- return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || // iOS VoiceOver returns 0.333• for width/height.
61
- event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
62
- }
63
- function isSafari() {
64
- return /apple/i.test(navigator.vendor);
65
- }
66
- function isAndroid() {
67
- const re = /android/i;
68
- return re.test(getPlatform()) || re.test(getUserAgent());
69
- }
70
- function isJSDOM() {
71
- return getUserAgent().includes("jsdom/");
72
- }
73
- function isReactEvent(event) {
74
- return "nativeEvent" in event;
75
- }
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;
85
- }
86
- if ("composedPath" in event) {
87
- return event.composedPath().includes(node);
88
- }
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];
95
- }
96
- return event.target;
97
- }
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);
101
- }
102
- function stopEvent(event) {
103
- event.preventDefault();
104
- event.stopPropagation();
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;
105
15
  }
106
- function isTypeableCombobox(element) {
107
- if (!element) return false;
108
- return element.getAttribute("role") === "combobox" && isTypeableElement(element);
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")));
109
18
  }
110
19
  export {
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
20
+ learnCustomElementNames,
21
+ learnElementNames
129
22
  };
130
23
  //# sourceMappingURL=react-text-annotator.es27.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-text-annotator.es27.js","sources":["../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"],"sourcesContent":["import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n"],"names":["activeElement"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"react-text-annotator.es27.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,EAC1E;AACE,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,167 +1,130 @@
1
- function hasWindow() {
2
- return typeof window !== "undefined";
3
- }
4
- function getNodeName(node) {
5
- if (isNode(node)) {
6
- return (node.nodeName || "").toLowerCase();
1
+ import { isShadowRoot, isHTMLElement } from "./react-text-annotator.es29.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;
7
7
  }
8
- return "#document";
9
- }
10
- function getWindow(node) {
11
- var _node$ownerDocument;
12
- return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
13
- }
14
- function getDocumentElement(node) {
15
- var _ref;
16
- return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
8
+ return activeElement2;
17
9
  }
18
- function isNode(value) {
19
- if (!hasWindow()) {
10
+ function contains(parent, child) {
11
+ if (!parent || !child) {
20
12
  return false;
21
13
  }
22
- return value instanceof Node || value instanceof getWindow(value).Node;
23
- }
24
- function isElement(value) {
25
- if (!hasWindow()) {
26
- return false;
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;
23
+ }
24
+ next = next.parentNode || next.host;
25
+ }
27
26
  }
28
- return value instanceof Element || value instanceof getWindow(value).Element;
27
+ return false;
29
28
  }
30
- function isHTMLElement(value) {
31
- if (!hasWindow()) {
32
- return false;
29
+ function getPlatform() {
30
+ const uaData = navigator.userAgentData;
31
+ if (uaData != null && uaData.platform) {
32
+ return uaData.platform;
33
+ }
34
+ return navigator.platform;
35
+ }
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(" ");
33
46
  }
34
- return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
47
+ return navigator.userAgent;
35
48
  }
36
- function isShadowRoot(value) {
37
- if (!hasWindow() || typeof ShadowRoot === "undefined") {
38
- return false;
49
+ function isVirtualClick(event) {
50
+ if (event.mozInputSource === 0 && event.isTrusted) {
51
+ return true;
39
52
  }
40
- return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
41
- }
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);
50
- }
51
- function isTableElement(element) {
52
- return ["table", "td", "th"].includes(getNodeName(element));
53
- }
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
- });
62
- }
63
- function isContainingBlock(elementOrCss) {
64
- const webkit = isWebKit();
65
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
66
- return css.transform !== "none" || css.perspective !== "none" || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "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);
53
+ if (isAndroid() && event.pointerType) {
54
+ return event.type === "click" && event.buttons === 1;
77
55
  }
78
- return null;
56
+ return event.detail === 0 && !event.pointerType;
79
57
  }
80
- function isWebKit() {
81
- if (typeof CSS === "undefined" || !CSS.supports) return false;
82
- return CSS.supports("-webkit-backdrop-filter", "none");
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";
83
62
  }
84
- function isLastTraversableNode(node) {
85
- return ["html", "body", "#document"].includes(getNodeName(node));
63
+ function isSafari() {
64
+ return /apple/i.test(navigator.vendor);
86
65
  }
87
- function getComputedStyle(element) {
88
- return getWindow(element).getComputedStyle(element);
66
+ function isAndroid() {
67
+ const re = /android/i;
68
+ return re.test(getPlatform()) || re.test(getUserAgent());
89
69
  }
90
- function getNodeScroll(element) {
91
- if (isElement(element)) {
92
- return {
93
- scrollLeft: element.scrollLeft,
94
- scrollTop: element.scrollTop
95
- };
96
- }
97
- return {
98
- scrollLeft: element.scrollX,
99
- scrollTop: element.scrollY
100
- };
101
- }
102
- function getParentNode(node) {
103
- if (getNodeName(node) === "html") {
104
- return node;
105
- }
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;
114
- }
115
- function getNearestOverflowAncestor(node) {
116
- const parentNode = getParentNode(node);
117
- if (isLastTraversableNode(parentNode)) {
118
- return node.ownerDocument ? node.ownerDocument.body : node.body;
119
- }
120
- if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
121
- return parentNode;
122
- }
123
- return getNearestOverflowAncestor(parentNode);
70
+ function isJSDOM() {
71
+ return getUserAgent().includes("jsdom/");
72
+ }
73
+ function isReactEvent(event) {
74
+ return "nativeEvent" in event;
75
+ }
76
+ function isRootElement(element) {
77
+ return element.matches("html,body");
124
78
  }
125
- function getOverflowAncestors(node, list, traverseIframes) {
126
- var _node$ownerDocument2;
127
- if (list === void 0) {
128
- list = [];
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;
129
85
  }
130
- if (traverseIframes === void 0) {
131
- traverseIframes = true;
86
+ if ("composedPath" in event) {
87
+ return event.composedPath().includes(node);
132
88
  }
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) : []);
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];
139
95
  }
140
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
96
+ return event.target;
97
+ }
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);
101
+ }
102
+ function stopEvent(event) {
103
+ event.preventDefault();
104
+ event.stopPropagation();
141
105
  }
142
- function getFrameElement(win) {
143
- return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
106
+ function isTypeableCombobox(element) {
107
+ if (!element) return false;
108
+ return element.getAttribute("role") === "combobox" && isTypeableElement(element);
144
109
  }
145
110
  export {
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
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
166
129
  };
167
130
  //# sourceMappingURL=react-text-annotator.es28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-text-annotator.es28.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 return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', '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":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"react-text-annotator.es28.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]}