@annotorious/react 3.0.4 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
- import { offset as H, shift as I, flip as J, inline as K, computePosition as N, arrow as j } from "./annotorious-react.es16.js";
2
- import { autoUpdate as ue, platform as le } from "./annotorious-react.es16.js";
1
+ import { offset as I, shift as J, flip as K, inline as N, computePosition as Q, arrow as v } from "./annotorious-react.es16.js";
2
+ import { autoUpdate as le, platform as ce } from "./annotorious-react.es16.js";
3
3
  import * as f from "react";
4
- import { useLayoutEffect as Q, useEffect as T } from "react";
5
- import * as X from "react-dom";
6
- var R = typeof document < "u" ? Q : T;
4
+ import { useLayoutEffect as T, useEffect as X } from "react";
5
+ import * as Y from "react-dom";
6
+ var R = typeof document < "u" ? T : X;
7
7
  function h(e, t) {
8
8
  if (e === t)
9
9
  return !0;
@@ -34,20 +34,20 @@ function h(e, t) {
34
34
  }
35
35
  return e !== e && t !== t;
36
36
  }
37
- function A(e) {
37
+ function q(e) {
38
38
  return typeof window > "u" ? 1 : (e.ownerDocument.defaultView || window).devicePixelRatio || 1;
39
39
  }
40
- function L(e, t) {
41
- const n = A(e);
40
+ function A(e, t) {
41
+ const n = q(e);
42
42
  return Math.round(t * n) / n;
43
43
  }
44
- function v(e) {
44
+ function $(e) {
45
45
  const t = f.useRef(e);
46
46
  return R(() => {
47
47
  t.current = e;
48
48
  }), t;
49
49
  }
50
- function ee(e) {
50
+ function te(e) {
51
51
  e === void 0 && (e = {});
52
52
  const {
53
53
  placement: t = "bottom",
@@ -56,67 +56,71 @@ function ee(e) {
56
56
  platform: s,
57
57
  elements: {
58
58
  reference: p,
59
- floating: q
59
+ floating: B
60
60
  } = {},
61
- transform: E = !0,
62
- whileElementsMounted: $,
63
- open: k
64
- } = e, [i, D] = f.useState({
61
+ transform: k = !0,
62
+ whileElementsMounted: D,
63
+ open: x
64
+ } = e, [i, O] = f.useState({
65
65
  x: 0,
66
66
  y: 0,
67
67
  strategy: n,
68
68
  placement: t,
69
69
  middlewareData: {},
70
70
  isPositioned: !1
71
- }), [x, B] = f.useState(r);
72
- h(x, r) || B(r);
73
- const [U, V] = f.useState(null), [W, z] = f.useState(null), O = f.useCallback((o) => {
74
- o !== a.current && (a.current = o, V(o));
75
- }, []), _ = f.useCallback((o) => {
76
- o !== d.current && (d.current = o, z(o));
77
- }, []), u = p || U, l = q || W, a = f.useRef(null), d = f.useRef(null), y = f.useRef(i), G = $ != null, M = v($), P = v(s), g = f.useCallback(() => {
71
+ }), [M, U] = f.useState(r);
72
+ h(M, r) || U(r);
73
+ const [V, W] = f.useState(null), [z, G] = f.useState(null), _ = f.useCallback((o) => {
74
+ o !== a.current && (a.current = o, W(o));
75
+ }, []), C = f.useCallback((o) => {
76
+ o !== d.current && (d.current = o, G(o));
77
+ }, []), u = p || V, l = B || z, a = f.useRef(null), d = f.useRef(null), y = f.useRef(i), H = D != null, P = $(D), S = $(s), F = $(x), g = f.useCallback(() => {
78
78
  if (!a.current || !d.current)
79
79
  return;
80
80
  const o = {
81
81
  placement: t,
82
82
  strategy: n,
83
- middleware: x
83
+ middleware: M
84
84
  };
85
- P.current && (o.platform = P.current), N(a.current, d.current, o).then((w) => {
85
+ S.current && (o.platform = S.current), Q(a.current, d.current, o).then((w) => {
86
86
  const m = {
87
87
  ...w,
88
- isPositioned: !0
88
+ // The floating element's position may be recomputed while it's closed
89
+ // but still mounted (such as when transitioning out). To ensure
90
+ // `isPositioned` will be `false` initially on the next open, avoid
91
+ // setting it to `true` when `open === false` (must be specified).
92
+ isPositioned: F.current !== !1
89
93
  };
90
- S.current && !h(y.current, m) && (y.current = m, X.flushSync(() => {
91
- D(m);
94
+ E.current && !h(y.current, m) && (y.current = m, Y.flushSync(() => {
95
+ O(m);
92
96
  }));
93
97
  });
94
- }, [x, t, n, P]);
98
+ }, [M, t, n, S, F]);
95
99
  R(() => {
96
- k === !1 && y.current.isPositioned && (y.current.isPositioned = !1, D((o) => ({
100
+ x === !1 && y.current.isPositioned && (y.current.isPositioned = !1, O((o) => ({
97
101
  ...o,
98
102
  isPositioned: !1
99
103
  })));
100
- }, [k]);
101
- const S = f.useRef(!1);
102
- R(() => (S.current = !0, () => {
103
- S.current = !1;
104
+ }, [x]);
105
+ const E = f.useRef(!1);
106
+ R(() => (E.current = !0, () => {
107
+ E.current = !1;
104
108
  }), []), R(() => {
105
109
  if (u && (a.current = u), l && (d.current = l), u && l) {
106
- if (M.current)
107
- return M.current(u, l, g);
110
+ if (P.current)
111
+ return P.current(u, l, g);
108
112
  g();
109
113
  }
110
- }, [u, l, g, M, G]);
111
- const C = f.useMemo(() => ({
114
+ }, [u, l, g, P, H]);
115
+ const j = f.useMemo(() => ({
112
116
  reference: a,
113
117
  floating: d,
114
- setReference: O,
115
- setFloating: _
116
- }), [O, _]), c = f.useMemo(() => ({
118
+ setReference: _,
119
+ setFloating: C
120
+ }), [_, C]), c = f.useMemo(() => ({
117
121
  reference: u,
118
122
  floating: l
119
- }), [u, l]), F = f.useMemo(() => {
123
+ }), [u, l]), L = f.useMemo(() => {
120
124
  const o = {
121
125
  position: n,
122
126
  left: 0,
@@ -124,11 +128,11 @@ function ee(e) {
124
128
  };
125
129
  if (!c.floating)
126
130
  return o;
127
- const w = L(c.floating, i.x), m = L(c.floating, i.y);
128
- return E ? {
131
+ const w = A(c.floating, i.x), m = A(c.floating, i.y);
132
+ return k ? {
129
133
  ...o,
130
134
  transform: "translate(" + w + "px, " + m + "px)",
131
- ...A(c.floating) >= 1.5 && {
135
+ ...q(c.floating) >= 1.5 && {
132
136
  willChange: "transform"
133
137
  }
134
138
  } : {
@@ -136,16 +140,16 @@ function ee(e) {
136
140
  left: w,
137
141
  top: m
138
142
  };
139
- }, [n, E, c.floating, i.x, i.y]);
143
+ }, [n, k, c.floating, i.x, i.y]);
140
144
  return f.useMemo(() => ({
141
145
  ...i,
142
146
  update: g,
143
- refs: C,
147
+ refs: j,
144
148
  elements: c,
145
- floatingStyles: F
146
- }), [i, g, C, c, F]);
149
+ floatingStyles: L
150
+ }), [i, g, j, c, L]);
147
151
  }
148
- const Y = (e) => {
152
+ const Z = (e) => {
149
153
  function t(n) {
150
154
  return {}.hasOwnProperty.call(n, "current");
151
155
  }
@@ -157,19 +161,16 @@ const Y = (e) => {
157
161
  element: r,
158
162
  padding: s
159
163
  } = typeof e == "function" ? e(n) : e;
160
- return r && t(r) ? r.current != null ? j({
164
+ return r && t(r) ? r.current != null ? v({
161
165
  element: r.current,
162
166
  padding: s
163
- }).fn(n) : {} : r ? j({
167
+ }).fn(n) : {} : r ? v({
164
168
  element: r,
165
169
  padding: s
166
170
  }).fn(n) : {};
167
171
  }
168
172
  };
169
- }, te = (e, t) => ({
170
- ...H(e),
171
- options: [e, t]
172
- }), ne = (e, t) => ({
173
+ }, ne = (e, t) => ({
173
174
  ...I(e),
174
175
  options: [e, t]
175
176
  }), re = (e, t) => ({
@@ -179,18 +180,21 @@ const Y = (e) => {
179
180
  ...K(e),
180
181
  options: [e, t]
181
182
  }), oe = (e, t) => ({
182
- ...Y(e),
183
+ ...N(e),
184
+ options: [e, t]
185
+ }), se = (e, t) => ({
186
+ ...Z(e),
183
187
  options: [e, t]
184
188
  });
185
189
  export {
186
- oe as arrow,
187
- ue as autoUpdate,
188
- N as computePosition,
189
- re as flip,
190
- fe as inline,
191
- te as offset,
192
- le as platform,
193
- ne as shift,
194
- ee as useFloating
190
+ se as arrow,
191
+ le as autoUpdate,
192
+ Q as computePosition,
193
+ fe as flip,
194
+ oe as inline,
195
+ ne as offset,
196
+ ce as platform,
197
+ re as shift,
198
+ te as useFloating
195
199
  };
196
200
  //# sourceMappingURL=annotorious-react.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es15.js","sources":["../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs"],"sourcesContent":["import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\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 = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n"],"names":["index","useLayoutEffect","useEffect","deepEqual","a","b","length","i","keys","key","getDPR","element","roundByDPR","value","dpr","useLatestRef","ref","React","useFloating","options","placement","strategy","middleware","platform","externalReference","externalFloating","transform","whileElementsMounted","open","data","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","node","referenceRef","setFloating","floatingRef","referenceEl","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","update","config","computePosition","fullData","isMountedRef","ReactDOM","refs","elements","floatingStyles","initialStyles","x","y","arrow$1","isRef","state","padding","arrow$2","offset","deps","offset$1","shift","shift$1","flip","flip$1","inline","inline$1","arrow"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"annotorious-react.es15.js","sources":["../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs"],"sourcesContent":["import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\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 = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n"],"names":["index","useLayoutEffect","useEffect","deepEqual","a","b","length","i","keys","key","getDPR","element","roundByDPR","value","dpr","useLatestRef","ref","React","useFloating","options","placement","strategy","middleware","platform","externalReference","externalFloating","transform","whileElementsMounted","open","data","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","node","referenceRef","setFloating","floatingRef","referenceEl","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","update","config","computePosition","fullData","isMountedRef","ReactDOM","refs","elements","floatingStyles","initialStyles","x","y","arrow$1","isRef","state","padding","arrow$2","offset","deps","offset$1","shift","shift$1","flip","flip$1","inline","inline$1","arrow"],"mappings":";;;;;AAMA,IAAIA,IAAQ,OAAO,WAAa,MAAcC,IAAkBC;AAIhE,SAASC,EAAUC,GAAGC,GAAG;AACvB,MAAID,MAAMC;AACR,WAAO;AAET,MAAI,OAAOD,KAAM,OAAOC;AACtB,WAAO;AAET,MAAI,OAAOD,KAAM,cAAcA,EAAE,eAAeC,EAAE;AAChD,WAAO;AAET,MAAIC,GACAC,GACAC;AACJ,MAAIJ,KAAKC,KAAK,OAAOD,KAAM,UAAU;AACnC,QAAI,MAAM,QAAQA,CAAC,GAAG;AAEpB,UADAE,IAASF,EAAE,QACPE,MAAWD,EAAE,OAAQ,QAAO;AAChC,WAAKE,IAAID,GAAQC,QAAQ;AACvB,YAAI,CAACJ,EAAUC,EAAEG,CAAC,GAAGF,EAAEE,CAAC,CAAC;AACvB,iBAAO;AAGX,aAAO;AAAA,IACR;AAGD,QAFAC,IAAO,OAAO,KAAKJ,CAAC,GACpBE,IAASE,EAAK,QACVF,MAAW,OAAO,KAAKD,CAAC,EAAE;AAC5B,aAAO;AAET,SAAKE,IAAID,GAAQC,QAAQ;AACvB,UAAI,CAAC,CAAE,EAAC,eAAe,KAAKF,GAAGG,EAAKD,CAAC,CAAC;AACpC,eAAO;AAGX,SAAKA,IAAID,GAAQC,QAAQ,KAAI;AAC3B,YAAME,IAAMD,EAAKD,CAAC;AAClB,UAAI,EAAAE,MAAQ,YAAYL,EAAE,aAGtB,CAACD,EAAUC,EAAEK,CAAG,GAAGJ,EAAEI,CAAG,CAAC;AAC3B,eAAO;AAAA,IAEV;AACD,WAAO;AAAA,EACR;AACD,SAAOL,MAAMA,KAAKC,MAAMA;AAC1B;AAEA,SAASK,EAAOC,GAAS;AACvB,SAAI,OAAO,SAAW,MACb,KAEGA,EAAQ,cAAc,eAAe,QACtC,oBAAoB;AACjC;AAEA,SAASC,EAAWD,GAASE,GAAO;AAClC,QAAMC,IAAMJ,EAAOC,CAAO;AAC1B,SAAO,KAAK,MAAME,IAAQC,CAAG,IAAIA;AACnC;AAEA,SAASC,EAAaF,GAAO;AAC3B,QAAMG,IAAMC,EAAM,OAAOJ,CAAK;AAC9B,SAAAb,EAAM,MAAM;AACV,IAAAgB,EAAI,UAAUH;AAAA,EAClB,CAAG,GACMG;AACT;AAMA,SAASE,GAAYC,GAAS;AAC5B,EAAIA,MAAY,WACdA,IAAU,CAAA;AAEZ,QAAM;AAAA,IACJ,WAAAC,IAAY;AAAA,IACZ,UAAAC,IAAW;AAAA,IACX,YAAAC,IAAa,CAAE;AAAA,IACf,UAAAC;AAAA,IACA,UAAU;AAAA,MACR,WAAWC;AAAA,MACX,UAAUC;AAAA,IAChB,IAAQ,CAAE;AAAA,IACN,WAAAC,IAAY;AAAA,IACZ,sBAAAC;AAAA,IACA,MAAAC;AAAA,EACD,IAAGT,GACE,CAACU,GAAMC,CAAO,IAAIb,EAAM,SAAS;AAAA,IACrC,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAAI;AAAA,IACA,WAAAD;AAAA,IACA,gBAAgB,CAAE;AAAA,IAClB,cAAc;AAAA,EAClB,CAAG,GACK,CAACW,GAAkBC,CAAmB,IAAIf,EAAM,SAASK,CAAU;AACzE,EAAKnB,EAAU4B,GAAkBT,CAAU,KACzCU,EAAoBV,CAAU;AAEhC,QAAM,CAACW,GAAYC,CAAa,IAAIjB,EAAM,SAAS,IAAI,GACjD,CAACkB,GAAWC,CAAY,IAAInB,EAAM,SAAS,IAAI,GAC/CoB,IAAepB,EAAM,YAAY,CAAAqB,MAAQ;AAC7C,IAAIA,MAASC,EAAa,YACxBA,EAAa,UAAUD,GACvBJ,EAAcI,CAAI;AAAA,EAErB,GAAE,CAAE,CAAA,GACCE,IAAcvB,EAAM,YAAY,CAAAqB,MAAQ;AAC5C,IAAIA,MAASG,EAAY,YACvBA,EAAY,UAAUH,GACtBF,EAAaE,CAAI;AAAA,EAEpB,GAAE,CAAE,CAAA,GACCI,IAAclB,KAAqBS,GACnCU,IAAalB,KAAoBU,GACjCI,IAAetB,EAAM,OAAO,IAAI,GAChCwB,IAAcxB,EAAM,OAAO,IAAI,GAC/B2B,IAAU3B,EAAM,OAAOY,CAAI,GAC3BgB,IAA0BlB,KAAwB,MAClDmB,IAA0B/B,EAAaY,CAAoB,GAC3DoB,IAAchC,EAAaQ,CAAQ,GACnCyB,IAAUjC,EAAaa,CAAI,GAC3BqB,IAAShC,EAAM,YAAY,MAAM;AACrC,QAAI,CAACsB,EAAa,WAAW,CAACE,EAAY;AACxC;AAEF,UAAMS,IAAS;AAAA,MACb,WAAA9B;AAAA,MACA,UAAAC;AAAA,MACA,YAAYU;AAAA,IAClB;AACI,IAAIgB,EAAY,YACdG,EAAO,WAAWH,EAAY,UAEhCI,EAAgBZ,EAAa,SAASE,EAAY,SAASS,CAAM,EAAE,KAAK,CAAArB,MAAQ;AAC9E,YAAMuB,IAAW;AAAA,QACf,GAAGvB;AAAA;AAAA;AAAA;AAAA;AAAA,QAKH,cAAcmB,EAAQ,YAAY;AAAA,MAC1C;AACM,MAAIK,EAAa,WAAW,CAAClD,EAAUyC,EAAQ,SAASQ,CAAQ,MAC9DR,EAAQ,UAAUQ,GAClBE,EAAS,UAAU,MAAM;AACvB,QAAAxB,EAAQsB,CAAQ;AAAA,MAC1B,CAAS;AAAA,IAET,CAAK;AAAA,EACL,GAAK,CAACrB,GAAkBX,GAAWC,GAAU0B,GAAaC,CAAO,CAAC;AAChE,EAAAhD,EAAM,MAAM;AACV,IAAI4B,MAAS,MAASgB,EAAQ,QAAQ,iBACpCA,EAAQ,QAAQ,eAAe,IAC/Bd,EAAQ,CAAAD,OAAS;AAAA,MACf,GAAGA;AAAA,MACH,cAAc;AAAA,IACf,EAAC;AAAA,EAER,GAAK,CAACD,CAAI,CAAC;AACT,QAAMyB,IAAepC,EAAM,OAAO,EAAK;AACvC,EAAAjB,EAAM,OACJqD,EAAa,UAAU,IAChB,MAAM;AACX,IAAAA,EAAa,UAAU;AAAA,EAC7B,IACK,CAAE,CAAA,GACLrD,EAAM,MAAM;AAGV,QAFI0C,MAAaH,EAAa,UAAUG,IACpCC,MAAYF,EAAY,UAAUE,IAClCD,KAAeC,GAAY;AAC7B,UAAIG,EAAwB;AAC1B,eAAOA,EAAwB,QAAQJ,GAAaC,GAAYM,CAAM;AAExE,MAAAA;IACD;AAAA,EACL,GAAK,CAACP,GAAaC,GAAYM,GAAQH,GAAyBD,CAAuB,CAAC;AACtF,QAAMU,IAAOtC,EAAM,QAAQ,OAAO;AAAA,IAChC,WAAWsB;AAAA,IACX,UAAUE;AAAA,IACV,cAAAJ;AAAA,IACA,aAAAG;AAAA,EACD,IAAG,CAACH,GAAcG,CAAW,CAAC,GACzBgB,IAAWvC,EAAM,QAAQ,OAAO;AAAA,IACpC,WAAWyB;AAAA,IACX,UAAUC;AAAA,EACX,IAAG,CAACD,GAAaC,CAAU,CAAC,GACvBc,IAAiBxC,EAAM,QAAQ,MAAM;AACzC,UAAMyC,IAAgB;AAAA,MACpB,UAAUrC;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,IACX;AACI,QAAI,CAACmC,EAAS;AACZ,aAAOE;AAET,UAAMC,IAAI/C,EAAW4C,EAAS,UAAU3B,EAAK,CAAC,GACxC+B,IAAIhD,EAAW4C,EAAS,UAAU3B,EAAK,CAAC;AAC9C,WAAIH,IACK;AAAA,MACL,GAAGgC;AAAA,MACH,WAAW,eAAeC,IAAI,SAASC,IAAI;AAAA,MAC3C,GAAIlD,EAAO8C,EAAS,QAAQ,KAAK,OAAO;AAAA,QACtC,YAAY;AAAA,MACtB;AAAA,IACA,IAEW;AAAA,MACL,UAAUnC;AAAA,MACV,MAAMsC;AAAA,MACN,KAAKC;AAAA,IACX;AAAA,EACA,GAAK,CAACvC,GAAUK,GAAW8B,EAAS,UAAU3B,EAAK,GAAGA,EAAK,CAAC,CAAC;AAC3D,SAAOZ,EAAM,QAAQ,OAAO;AAAA,IAC1B,GAAGY;AAAA,IACH,QAAAoB;AAAA,IACA,MAAAM;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,EACJ,IAAM,CAAC5B,GAAMoB,GAAQM,GAAMC,GAAUC,CAAc,CAAC;AACpD;AAQA,MAAMI,IAAU,CAAA1C,MAAW;AACzB,WAAS2C,EAAMjD,GAAO;AACpB,WAAO,CAAE,EAAC,eAAe,KAAKA,GAAO,SAAS;AAAA,EAC/C;AACD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAAM;AAAA,IACA,GAAG4C,GAAO;AACR,YAAM;AAAA,QACJ,SAAApD;AAAA,QACA,SAAAqD;AAAA,MACR,IAAU,OAAO7C,KAAY,aAAaA,EAAQ4C,CAAK,IAAI5C;AACrD,aAAIR,KAAWmD,EAAMnD,CAAO,IACtBA,EAAQ,WAAW,OACdsD,EAAQ;AAAA,QACb,SAAStD,EAAQ;AAAA,QACjB,SAAAqD;AAAA,MACZ,CAAW,EAAE,GAAGD,CAAK,IAEN,KAELpD,IACKsD,EAAQ;AAAA,QACb,SAAAtD;AAAA,QACA,SAAAqD;AAAA,MACV,CAAS,EAAE,GAAGD,CAAK,IAEN;IACR;AAAA,EACL;AACA,GASMG,KAAS,CAAC/C,GAASgD,OAAU;AAAA,EACjC,GAAGC,EAASjD,CAAO;AAAA,EACnB,SAAS,CAACA,GAASgD,CAAI;AACzB,IAOME,KAAQ,CAAClD,GAASgD,OAAU;AAAA,EAChC,GAAGG,EAAQnD,CAAO;AAAA,EAClB,SAAS,CAACA,GAASgD,CAAI;AACzB,IAgBMI,KAAO,CAACpD,GAASgD,OAAU;AAAA,EAC/B,GAAGK,EAAOrD,CAAO;AAAA,EACjB,SAAS,CAACA,GAASgD,CAAI;AACzB,IAuCMM,KAAS,CAACtD,GAASgD,OAAU;AAAA,EACjC,GAAGO,EAASvD,CAAO;AAAA,EACnB,SAAS,CAACA,GAASgD,CAAI;AACzB,IAQMQ,KAAQ,CAACxD,GAASgD,OAAU;AAAA,EAChC,GAAGN,EAAQ1C,CAAO;AAAA,EAClB,SAAS,CAACA,GAASgD,CAAI;AACzB;","x_google_ignoreList":[0]}