@annotorious/react 3.5.0 → 3.5.1

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.
@@ -49,10 +49,10 @@ function T(t, e, n, i) {
49
49
  let l = (o.left + c.x) / s.x, f = (o.top + c.y) / s.y, u = o.width / s.x, h = o.height / s.y;
50
50
  if (r) {
51
51
  const p = L(r), a = i && v(i) ? L(i) : i;
52
- let y = p, g = K(y);
53
- for (; g && i && a !== y; ) {
54
- const w = F(g), d = g.getBoundingClientRect(), x = R(g), C = d.left + (g.clientLeft + parseFloat(x.paddingLeft)) * w.x, B = d.top + (g.clientTop + parseFloat(x.paddingTop)) * w.y;
55
- l *= w.x, f *= w.y, u *= w.x, h *= w.y, l += C, f += B, y = L(g), g = K(y);
52
+ let x = p, g = K(x);
53
+ for (; g && i && a !== x; ) {
54
+ const w = F(g), d = g.getBoundingClientRect(), y = R(g), C = d.left + (g.clientLeft + parseFloat(y.paddingLeft)) * w.x, B = d.top + (g.clientTop + parseFloat(y.paddingTop)) * w.y;
55
+ l *= w.x, f *= w.y, u *= w.x, h *= w.y, l += C, f += B, x = L(g), g = K(x);
56
56
  }
57
57
  }
58
58
  return J({
@@ -133,6 +133,7 @@ function mt(t, e) {
133
133
  y: l
134
134
  };
135
135
  }
136
+ const xt = /* @__PURE__ */ new Set(["absolute", "fixed"]);
136
137
  function yt(t, e) {
137
138
  const n = T(t, !0, e === "fixed"), i = n.top + t.clientTop, o = n.left + t.clientLeft, r = b(t) ? F(t) : m(1), s = t.clientWidth * r.x, c = t.clientHeight * r.y, l = o * r.x, f = i * r.y;
138
139
  return {
@@ -165,7 +166,7 @@ function et(t, e) {
165
166
  const n = W(t);
166
167
  return n === e || !v(n) || N(n) ? !1 : R(n).position === "fixed" || et(n, e);
167
168
  }
168
- function xt(t, e) {
169
+ function vt(t, e) {
169
170
  const n = e.get(t);
170
171
  if (n)
171
172
  return n;
@@ -174,18 +175,18 @@ function xt(t, e) {
174
175
  let s = r ? W(t) : t;
175
176
  for (; v(s) && !N(s); ) {
176
177
  const c = R(s), l = Q(s);
177
- !l && c.position === "fixed" && (o = null), (r ? !l && !o : !l && c.position === "static" && !!o && ["absolute", "fixed"].includes(o.position) || _(s) && !l && et(t, s)) ? i = i.filter((u) => u !== s) : o = c, s = W(s);
178
+ !l && c.position === "fixed" && (o = null), (r ? !l && !o : !l && c.position === "static" && !!o && xt.has(o.position) || _(s) && !l && et(t, s)) ? i = i.filter((u) => u !== s) : o = c, s = W(s);
178
179
  }
179
180
  return e.set(t, i), i;
180
181
  }
181
- function vt(t) {
182
+ function Rt(t) {
182
183
  let {
183
184
  element: e,
184
185
  boundary: n,
185
186
  rootBoundary: i,
186
187
  strategy: o
187
188
  } = t;
188
- const s = [...n === "clippingAncestors" ? M(e) ? [] : xt(e, this._c) : [].concat(n), i], c = s[0], l = s.reduce((f, u) => {
189
+ const s = [...n === "clippingAncestors" ? M(e) ? [] : vt(e, this._c) : [].concat(n), i], c = s[0], l = s.reduce((f, u) => {
189
190
  const h = j(e, u, o);
190
191
  return f.top = E(h.top, f.top), f.right = z(h.right, f.right), f.bottom = z(h.bottom, f.bottom), f.left = E(h.left, f.left), f;
191
192
  }, j(e, c, o));
@@ -196,7 +197,7 @@ function vt(t) {
196
197
  y: l.top
197
198
  };
198
199
  }
199
- function Rt(t) {
200
+ function Ot(t) {
200
201
  const {
201
202
  width: e,
202
203
  height: n
@@ -206,7 +207,7 @@ function Rt(t) {
206
207
  height: n
207
208
  };
208
209
  }
209
- function Ot(t, e, n) {
210
+ function bt(t, e, n) {
210
211
  const i = b(e), o = O(e), r = n === "fixed", s = T(t, !0, r, e);
211
212
  let c = {
212
213
  scrollLeft: 0,
@@ -259,10 +260,10 @@ function nt(t, e) {
259
260
  i = G(i, e);
260
261
  return i && N(i) && V(i) && !Q(i) ? n : i || ht(t) || n;
261
262
  }
262
- const bt = async function(t) {
263
+ const Ct = async function(t) {
263
264
  const e = this.getOffsetParent || nt, n = this.getDimensions, i = await n(t.floating);
264
265
  return {
265
- reference: Ot(t.reference, await e(t.floating), t.strategy),
266
+ reference: bt(t.reference, await e(t.floating), t.strategy),
266
267
  floating: {
267
268
  x: 0,
268
269
  y: 0,
@@ -271,25 +272,25 @@ const bt = async function(t) {
271
272
  }
272
273
  };
273
274
  };
274
- function Ct(t) {
275
+ function Lt(t) {
275
276
  return R(t).direction === "rtl";
276
277
  }
277
- const Lt = {
278
+ const Tt = {
278
279
  convertOffsetParentRelativeRectToViewportRelativeRect: gt,
279
280
  getDocumentElement: O,
280
- getClippingRect: vt,
281
+ getClippingRect: Rt,
281
282
  getOffsetParent: nt,
282
- getElementRects: bt,
283
+ getElementRects: Ct,
283
284
  getClientRects: pt,
284
- getDimensions: Rt,
285
+ getDimensions: Ot,
285
286
  getScale: F,
286
287
  isElement: v,
287
- isRTL: Ct
288
+ isRTL: Lt
288
289
  };
289
290
  function it(t, e) {
290
291
  return t.x === e.x && t.y === e.y && t.width === e.width && t.height === e.height;
291
292
  }
292
- function Tt(t, e) {
293
+ function Et(t, e) {
293
294
  let n = null, i;
294
295
  const o = O(t);
295
296
  function r() {
@@ -306,8 +307,8 @@ function Tt(t, e) {
306
307
  } = f;
307
308
  if (c || e(), !p || !a)
308
309
  return;
309
- const y = A(h), g = A(o.clientWidth - (u + p)), w = A(o.clientHeight - (h + a)), d = A(u), C = {
310
- rootMargin: -y + "px " + -g + "px " + -w + "px " + -d + "px",
310
+ const x = A(h), g = A(o.clientWidth - (u + p)), w = A(o.clientHeight - (h + a)), d = A(u), C = {
311
+ rootMargin: -x + "px " + -g + "px " + -w + "px " + -d + "px",
311
312
  threshold: E(0, z(1, l)) || 1
312
313
  };
313
314
  let B = !0;
@@ -335,7 +336,7 @@ function Tt(t, e) {
335
336
  }
336
337
  return s(!0), r;
337
338
  }
338
- function Bt(t, e, n, i) {
339
+ function Dt(t, e, n, i) {
339
340
  i === void 0 && (i = {});
340
341
  const {
341
342
  ancestorScroll: o = !0,
@@ -349,31 +350,31 @@ function Bt(t, e, n, i) {
349
350
  passive: !0
350
351
  }), r && d.addEventListener("resize", n);
351
352
  });
352
- const h = f && c ? Tt(f, n) : null;
353
+ const h = f && c ? Et(f, n) : null;
353
354
  let p = -1, a = null;
354
355
  s && (a = new ResizeObserver((d) => {
355
- let [x] = d;
356
- x && x.target === f && a && (a.unobserve(e), cancelAnimationFrame(p), p = requestAnimationFrame(() => {
356
+ let [y] = d;
357
+ y && y.target === f && a && (a.unobserve(e), cancelAnimationFrame(p), p = requestAnimationFrame(() => {
357
358
  var C;
358
359
  (C = a) == null || C.observe(e);
359
360
  })), n();
360
361
  }), f && !l && a.observe(f), a.observe(e));
361
- let y, g = l ? T(t) : null;
362
+ let x, g = l ? T(t) : null;
362
363
  l && w();
363
364
  function w() {
364
365
  const d = T(t);
365
- g && !it(g, d) && n(), g = d, y = requestAnimationFrame(w);
366
+ g && !it(g, d) && n(), g = d, x = requestAnimationFrame(w);
366
367
  }
367
368
  return n(), () => {
368
369
  var d;
369
- u.forEach((x) => {
370
- o && x.removeEventListener("scroll", n), r && x.removeEventListener("resize", n);
371
- }), h == null || h(), (d = a) == null || d.disconnect(), a = null, l && cancelAnimationFrame(y);
370
+ u.forEach((y) => {
371
+ o && y.removeEventListener("scroll", n), r && y.removeEventListener("resize", n);
372
+ }), h == null || h(), (d = a) == null || d.disconnect(), a = null, l && cancelAnimationFrame(x);
372
373
  };
373
374
  }
374
- const Dt = st, At = ct, Ht = rt, Nt = lt, It = ot, Vt = (t, e, n) => {
375
+ const At = st, Ht = ct, Nt = rt, It = lt, Vt = ot, zt = (t, e, n) => {
375
376
  const i = /* @__PURE__ */ new Map(), o = {
376
- platform: Lt,
377
+ platform: Tt,
377
378
  ...n
378
379
  }, r = {
379
380
  ...o.platform,
@@ -385,14 +386,14 @@ const Dt = st, At = ct, Ht = rt, Nt = lt, It = ot, Vt = (t, e, n) => {
385
386
  });
386
387
  };
387
388
  export {
388
- Nt as arrow,
389
- Bt as autoUpdate,
390
- Vt as computePosition,
391
- Ht as flip,
389
+ It as arrow,
390
+ Dt as autoUpdate,
391
+ zt as computePosition,
392
+ Nt as flip,
392
393
  $ as getOverflowAncestors,
393
- It as inline,
394
- Dt as offset,
395
- Lt as platform,
396
- At as shift
394
+ Vt as inline,
395
+ At as offset,
396
+ Tt as platform,
397
+ Ht as shift
397
398
  };
398
399
  //# sourceMappingURL=annotorious-react.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es15.js","sources":["../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"],"sourcesContent":["import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n"],"names":["getCssDimensions","element","css","getComputedStyle","width","height","hasOffset","isHTMLElement","offsetWidth","offsetHeight","shouldFallback","round","unwrapElement","isElement","getScale","domElement","createCoords","rect","$","x","y","noOffsets","getVisualOffsets","win","getWindow","isWebKit","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","getFrameElement","iframeScale","iframeRect","left","top","rectToClientRect","getWindowScrollBarX","leftScroll","getNodeScroll","getDocumentElement","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","_ref","elements","strategy","topLayer","isTopLayer","offsets","isOffsetParentAnElement","getNodeName","isOverflowElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","max","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","parentNode","getParentNode","isLastTraversableNode","getClippingElementAncestors","cache","cachedResult","result","getOverflowAncestors","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","isContainingBlock","ancestor","getClippingRect","boundary","rootBoundary","clippingAncestors","firstClippingAncestor","clippingRect","accRect","min","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","isTableElement","getContainingBlock","getElementRects","data","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","platform","rectsAreEqual","a","b","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","floor","insetRight","insetBottom","insetLeft","options","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","reference","floating","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","offset$1","shift","shift$1","flip","flip$1","arrow","arrow$1","inline","inline$1","computePosition","mergedOptions","platformWithCache","computePosition$1"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"annotorious-react.es15.js","sources":["../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"],"sourcesContent":["import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n"],"names":["getCssDimensions","element","css","getComputedStyle","width","height","hasOffset","isHTMLElement","offsetWidth","offsetHeight","shouldFallback","round","unwrapElement","isElement","getScale","domElement","createCoords","rect","$","x","y","noOffsets","getVisualOffsets","win","getWindow","isWebKit","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","getFrameElement","iframeScale","iframeRect","left","top","rectToClientRect","getWindowScrollBarX","leftScroll","getNodeScroll","getDocumentElement","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","_ref","elements","strategy","topLayer","isTopLayer","offsets","isOffsetParentAnElement","getNodeName","isOverflowElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","max","getViewportRect","visualViewport","visualViewportBased","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","parentNode","getParentNode","isLastTraversableNode","getClippingElementAncestors","cache","cachedResult","result","getOverflowAncestors","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","isContainingBlock","ancestor","getClippingRect","boundary","rootBoundary","clippingAncestors","firstClippingAncestor","clippingRect","accRect","min","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","isTableElement","getContainingBlock","getElementRects","data","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","platform","rectsAreEqual","a","b","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","floor","insetRight","insetBottom","insetLeft","options","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","reference","floating","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","offset$1","shift","shift$1","flip","flip$1","arrow","arrow$1","inline","inline$1","computePosition","mergedOptions","platformWithCache","computePosition$1"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es18.js","sources":["../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"],"sourcesContent":["import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { floor } from '@floating-ui/utils';\nimport { tabbable } from 'tabbable';\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}\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}\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\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}\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}\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 isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\nfunction matchesFocusVisible(element) {\n // We don't want to block focus from working with `visibleOnly`\n // (JSDOM doesn't match `:focus-visible` when the element has `:focus`)\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(':focus-visible');\n } catch (_e) {\n return true;\n }\n}\nfunction getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nfunction getNodeChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getNodeChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\nfunction getNodeAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\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 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}\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction isDifferentGridRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledListIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getGridNavigatedIndex(listRef, _ref) {\n let {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction createGridCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach((_ref2, index) => {\n let {\n width,\n height\n } = _ref2;\n if (width > cols) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i++) {\n for (let j = 0; j < height; j++) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex++;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getGridCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) return -1;\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getGridCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === 'function') {\n return disabledIndices(index);\n } else if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = listRef.current[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, dir) {\n const list = tabbable(container, getTabbableOptions());\n const len = list.length;\n if (len === 0) return;\n const active = activeElement(getDocument(container));\n const index = list.indexOf(active);\n const nextIndex = index === -1 ? dir === 1 ? 0 : len - 1 : index + dir;\n return list[nextIndex];\n}\nfunction getNextTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, 1) || referenceElement;\n}\nfunction getPreviousTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, -1) || referenceElement;\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\nexport { activeElement, contains, createGridCellMap, disableFocusInside, enableFocusInside, findNonDisabledListIndex, getDeepestNode, getDocument, getFloatingFocusElement, getGridCellIndexOfCorner, getGridCellIndices, getGridNavigatedIndex, getMaxListIndex, getMinListIndex, getNextTabbable, getNodeAncestors, getNodeChildren, getPlatform, getPreviousTabbable, getTabbableOptions, getTarget, getUserAgent, isAndroid, isDifferentGridRow, isEventTargetWithin, isIndexOutOfListBounds, isJSDOM, isListIndexDisabled, isMac, isMouseLikePointerType, isOutsideEvent, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, matchesFocusVisible, stopEvent, useEffectEvent, useLatestRef, index as useModernLayoutEffect };\n"],"names":["isClient","noop","index","useLayoutEffect","SafeReact","React","useInsertionEffect","useSafeInsertionEffect","fn","useEffectEvent","callback","ref","_len","args","_key"],"mappings":";;AA8NA,IAAIA,IAAW,OAAO,WAAa,KAE/BC,IAAO,WAAgB;AAAA,GACvBC,IAAQF,IAAWG,IAAkBF;AAGzC,MAAMG,IAAY;AAAA,EAChB,GAAGC;AACL,GASMC,IAAqBF,EAAU,oBAC/BG,IAAyBD,MAAuB,CAAAE,MAAMA;AAC5D,SAASC,EAAeC,GAAU;AAChC,QAAMC,IAAMN,EAAM,OAAO,MAAM;AAC7B,QAAI,QAAQ,IAAI,aAAa;AAC3B,YAAM,IAAI,MAAM,+CAA+C;AAAA,EAErE,CAAG;AACD,SAAAE,EAAuB,MAAM;AAC3B,IAAAI,EAAI,UAAUD;AAAA,EAClB,CAAG,GACML,EAAM,YAAY,WAAY;AACnC,aAASO,IAAO,UAAU,QAAQC,IAAO,IAAI,MAAMD,CAAI,GAAGE,IAAO,GAAGA,IAAOF,GAAME;AAC/E,MAAAD,EAAKC,CAAI,IAAI,UAAUA,CAAI;AAE7B,WAAOH,EAAI,WAAW,OAAO,SAASA,EAAI,QAAQ,GAAGE,CAAI;AAAA,EAC7D,GAAK,EAAE;AACP;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"annotorious-react.es18.js","sources":["../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"],"sourcesContent":["import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { floor } from '@floating-ui/utils';\nimport { tabbable } from 'tabbable';\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}\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}\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\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}\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}\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 isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\nfunction matchesFocusVisible(element) {\n // We don't want to block focus from working with `visibleOnly`\n // (JSDOM doesn't match `:focus-visible` when the element has `:focus`)\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(':focus-visible');\n } catch (_e) {\n return true;\n }\n}\nfunction getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nfunction getNodeChildren(nodes, id, onlyOpenChildren) {\n if (onlyOpenChildren === void 0) {\n onlyOpenChildren = true;\n }\n const directChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && (!onlyOpenChildren || ((_node$context = node.context) == null ? void 0 : _node$context.open));\n });\n return directChildren.flatMap(child => [child, ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getNodeChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\nfunction getNodeAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\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 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}\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction isDifferentGridRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledListIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getGridNavigatedIndex(listRef, _ref) {\n let {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction createGridCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach((_ref2, index) => {\n let {\n width,\n height\n } = _ref2;\n if (width > cols) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i++) {\n for (let j = 0; j < height; j++) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex++;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getGridCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) return -1;\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getGridCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === 'function') {\n return disabledIndices(index);\n } else if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = listRef.current[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, dir) {\n const list = tabbable(container, getTabbableOptions());\n const len = list.length;\n if (len === 0) return;\n const active = activeElement(getDocument(container));\n const index = list.indexOf(active);\n const nextIndex = index === -1 ? dir === 1 ? 0 : len - 1 : index + dir;\n return list[nextIndex];\n}\nfunction getNextTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, 1) || referenceElement;\n}\nfunction getPreviousTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, -1) || referenceElement;\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\nexport { activeElement, contains, createGridCellMap, disableFocusInside, enableFocusInside, findNonDisabledListIndex, getDeepestNode, getDocument, getFloatingFocusElement, getGridCellIndexOfCorner, getGridCellIndices, getGridNavigatedIndex, getMaxListIndex, getMinListIndex, getNextTabbable, getNodeAncestors, getNodeChildren, getPlatform, getPreviousTabbable, getTabbableOptions, getTarget, getUserAgent, isAndroid, isDifferentGridRow, isEventTargetWithin, isIndexOutOfListBounds, isJSDOM, isListIndexDisabled, isMac, isMouseLikePointerType, isOutsideEvent, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, matchesFocusVisible, stopEvent, useEffectEvent, useLatestRef, index as useModernLayoutEffect };\n"],"names":["isClient","noop","index","useLayoutEffect","SafeReact","React","useInsertionEffect","useSafeInsertionEffect","fn","useEffectEvent","callback","ref","_len","args","_key"],"mappings":";;AAsNA,IAAIA,IAAW,OAAO,WAAa,KAE/BC,IAAO,WAAgB;AAAA,GACvBC,IAAQF,IAAWG,IAAkBF;AAGzC,MAAMG,IAAY;AAAA,EAChB,GAAGC;AACL,GASMC,IAAqBF,EAAU,oBAC/BG,IAAyBD,MAAuB,CAAAE,MAAMA;AAC5D,SAASC,EAAeC,GAAU;AAChC,QAAMC,IAAMN,EAAM,OAAO,MAAM;AAC7B,QAAI,QAAQ,IAAI,aAAa;AAC3B,YAAM,IAAI,MAAM,+CAA+C;AAAA,EAErE,CAAG;AACD,SAAAE,EAAuB,MAAM;AAC3B,IAAAI,EAAI,UAAUD;AAAA,EAClB,CAAG,GACML,EAAM,YAAY,WAAY;AACnC,aAASO,IAAO,UAAU,QAAQC,IAAO,IAAI,MAAMD,CAAI,GAAGE,IAAO,GAAGA,IAAOF,GAAME;AAC/E,MAAAD,EAAKC,CAAI,IAAI,UAAUA,CAAI;AAE7B,WAAOH,EAAI,WAAW,OAAO,SAASA,EAAI,QAAQ,GAAGE,CAAI;AAAA,EAC7D,GAAK,EAAE;AACP;","x_google_ignoreList":[0]}