@sankhyalabs/ezui 7.2.0-dev.1 → 7.2.0-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/dist/cjs/{ApplicationUtils-006ca96f.js → ApplicationUtils-88dfe345.js} +1 -1
  2. package/dist/cjs/{app-globals-5cb12916.js → app-globals-c1d07d68.js} +1 -1
  3. package/dist/cjs/classic-search-list_7.cjs.entry.js +9 -4
  4. package/dist/cjs/ez-actions-button.cjs.entry.js +2 -2
  5. package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-avatar.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-classic-combo-box.cjs.entry.js +2 -1
  9. package/dist/cjs/ez-classic-date-input.cjs.entry.js +2 -2
  10. package/dist/cjs/ez-classic-date-time-input.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-classic-number-input.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-classic-search-plus.cjs.entry.js +26 -13
  13. package/dist/cjs/ez-classic-search.cjs.entry.js +2 -2
  14. package/dist/cjs/ez-classic-time-input.cjs.entry.js +4 -3
  15. package/dist/cjs/ez-collapsible-box.cjs.entry.js +2 -2
  16. package/dist/cjs/ez-combo-box.cjs.entry.js +2 -2
  17. package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
  18. package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
  19. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  20. package/dist/cjs/ez-double-list.cjs.entry.js +1 -1
  21. package/dist/cjs/ez-dropdown.cjs.entry.js +1 -1
  22. package/dist/cjs/ez-empty-card.cjs.entry.js +1 -1
  23. package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
  24. package/dist/cjs/ez-form-view.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-form.cjs.entry.js +3 -3
  26. package/dist/cjs/ez-grid-pagination.cjs.entry.js +227 -0
  27. package/dist/cjs/ez-grid.cjs.entry.js +85 -166
  28. package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/ez-link-builder_6.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-list.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-modal-container.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  34. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
  35. package/dist/cjs/ez-number-input.cjs.entry.js +1 -1
  36. package/dist/cjs/ez-pagination.cjs.entry.js +1 -1
  37. package/dist/cjs/ez-popover-core.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-popup.cjs.entry.js +1 -2
  39. package/dist/cjs/ez-record-navigation.cjs.entry.js +121 -0
  40. package/dist/cjs/ez-scroller_2.cjs.entry.js +81 -14
  41. package/dist/cjs/ez-search-plus.cjs.entry.js +13 -4
  42. package/dist/cjs/ez-search-result-list.cjs.entry.js +1 -1
  43. package/dist/cjs/ez-search.cjs.entry.js +3 -3
  44. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  45. package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
  46. package/dist/cjs/ez-sortable-list.cjs.entry.js +99 -114
  47. package/dist/cjs/ez-spinner.cjs.entry.js +1 -1
  48. package/dist/cjs/ez-split-button.cjs.entry.js +4 -4
  49. package/dist/cjs/ez-split-item.cjs.entry.js +2 -2
  50. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  51. package/dist/cjs/ez-tooltip.cjs.entry.js +1 -1
  52. package/dist/cjs/ez-tree.cjs.entry.js +1 -1
  53. package/dist/cjs/ez-upload.cjs.entry.js +2 -2
  54. package/dist/cjs/ezui.cjs.js +3 -3
  55. package/dist/cjs/filter-column.cjs.entry.js +1 -1
  56. package/dist/cjs/{floating-ui.dom.esm-f4d87617.js → floating-ui.dom.esm-bea31048.js} +165 -119
  57. package/dist/cjs/{index-350d0fa0.js → index-9739c242.js} +91 -30
  58. package/dist/cjs/index-a7b0c73d.js +8 -0
  59. package/dist/cjs/loader.cjs.js +3 -3
  60. package/dist/cjs/{search-column-fbf680d7.js → search-column-9612bd3a.js} +4 -7
  61. package/dist/collection/collection-manifest.json +7 -0
  62. package/dist/collection/components/ez-classic-combo-box/ez-classic-combo-box.js +2 -1
  63. package/dist/collection/components/ez-classic-date-input/ez-classic-date-input.js +1 -1
  64. package/dist/collection/components/ez-classic-search-plus/ez-classic-search-plus.css +22 -0
  65. package/dist/collection/components/ez-classic-search-plus/ez-classic-search-plus.js +26 -11
  66. package/dist/collection/components/ez-classic-time-input/ez-classic-time-input.js +3 -2
  67. package/dist/collection/components/ez-dropdown/ez-dropdown.css +1 -1
  68. package/dist/collection/components/ez-empty-card/ez-empty-card.js +7 -7
  69. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +43 -18
  70. package/dist/collection/components/ez-grid/controller/ag-grid/gridColumnDefaultWidths.js +23 -0
  71. package/dist/collection/components/ez-grid/ez-grid.css +1 -60
  72. package/dist/collection/components/ez-grid/ez-grid.js +52 -150
  73. package/dist/collection/components/ez-grid/utils/index.js +1 -0
  74. package/dist/collection/components/ez-grid-pagination/ez-grid-pagination.css +111 -0
  75. package/dist/collection/components/ez-grid-pagination/ez-grid-pagination.js +410 -0
  76. package/dist/collection/components/ez-icon/ez-icon.css +5 -5
  77. package/dist/collection/components/ez-image-input/ez-image-input.css +24 -8
  78. package/dist/collection/components/ez-image-input/ez-image-input.js +6 -1
  79. package/dist/collection/components/ez-popup/ez-popup.js +0 -1
  80. package/dist/collection/components/ez-record-navigation/ez-record-navigation.css +51 -0
  81. package/dist/collection/components/ez-record-navigation/ez-record-navigation.js +246 -0
  82. package/dist/collection/components/ez-scroller/EzScrollNavigationMode.js +5 -0
  83. package/dist/collection/components/ez-scroller/ez-scroller.css +117 -11
  84. package/dist/collection/components/ez-scroller/ez-scroller.js +118 -13
  85. package/dist/collection/components/ez-search/ez-search.css +4 -0
  86. package/dist/collection/components/ez-search-plus/ez-search-plus.js +11 -2
  87. package/dist/collection/components/ez-sortable-list/ez-sortable-list.css +1 -1
  88. package/dist/collection/components/ez-split-button/ez-split-button.css +1 -1
  89. package/dist/collection/components/ez-split-button/ez-split-button.js +2 -2
  90. package/dist/collection/utils/i18n/locales/en-us.js +27 -4
  91. package/dist/collection/utils/i18n/locales/es-es.js +27 -4
  92. package/dist/collection/utils/i18n/locales/pt-br.js +27 -4
  93. package/dist/collection/utils/searchColumn/search-column.js +2 -5
  94. package/dist/custom-elements/index.d.ts +12 -0
  95. package/dist/custom-elements/index.js +904 -464
  96. package/dist/esm/{ApplicationUtils-0c5cb207.js → ApplicationUtils-f7721533.js} +1 -1
  97. package/dist/esm/{app-globals-1db10325.js → app-globals-6e258867.js} +1 -1
  98. package/dist/esm/classic-search-list_7.entry.js +9 -4
  99. package/dist/esm/ez-actions-button.entry.js +2 -2
  100. package/dist/esm/ez-alert-list.entry.js +1 -1
  101. package/dist/esm/ez-avatar.entry.js +1 -1
  102. package/dist/esm/ez-calendar.entry.js +1 -1
  103. package/dist/esm/ez-classic-combo-box.entry.js +2 -1
  104. package/dist/esm/ez-classic-date-input.entry.js +2 -2
  105. package/dist/esm/ez-classic-date-time-input.entry.js +1 -1
  106. package/dist/esm/ez-classic-number-input.entry.js +1 -1
  107. package/dist/esm/ez-classic-search-plus.entry.js +26 -13
  108. package/dist/esm/ez-classic-search.entry.js +2 -2
  109. package/dist/esm/ez-classic-time-input.entry.js +4 -3
  110. package/dist/esm/ez-collapsible-box.entry.js +2 -2
  111. package/dist/esm/ez-combo-box.entry.js +2 -2
  112. package/dist/esm/ez-date-input.entry.js +1 -1
  113. package/dist/esm/ez-date-time-input.entry.js +1 -1
  114. package/dist/esm/ez-dialog.entry.js +1 -1
  115. package/dist/esm/ez-double-list.entry.js +1 -1
  116. package/dist/esm/ez-dropdown.entry.js +1 -1
  117. package/dist/esm/ez-empty-card.entry.js +1 -1
  118. package/dist/esm/ez-file-item.entry.js +1 -1
  119. package/dist/esm/ez-form-view.entry.js +1 -1
  120. package/dist/esm/ez-form.entry.js +3 -3
  121. package/dist/esm/ez-grid-pagination.entry.js +223 -0
  122. package/dist/esm/ez-grid.entry.js +86 -167
  123. package/dist/esm/ez-guide-navigator.entry.js +1 -1
  124. package/dist/esm/ez-icon.entry.js +1 -1
  125. package/dist/esm/ez-link-builder_6.entry.js +1 -1
  126. package/dist/esm/ez-list.entry.js +1 -1
  127. package/dist/esm/ez-modal-container.entry.js +1 -1
  128. package/dist/esm/ez-modal.entry.js +1 -1
  129. package/dist/esm/ez-multi-selection-list.entry.js +1 -1
  130. package/dist/esm/ez-number-input.entry.js +1 -1
  131. package/dist/esm/ez-pagination.entry.js +1 -1
  132. package/dist/esm/ez-popover-core.entry.js +1 -1
  133. package/dist/esm/ez-popup.entry.js +1 -2
  134. package/dist/esm/ez-record-navigation.entry.js +117 -0
  135. package/dist/esm/ez-scroller_2.entry.js +81 -14
  136. package/dist/esm/ez-search-plus.entry.js +13 -4
  137. package/dist/esm/ez-search-result-list.entry.js +1 -1
  138. package/dist/esm/ez-search.entry.js +3 -3
  139. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  140. package/dist/esm/ez-skeleton.entry.js +1 -1
  141. package/dist/esm/ez-sortable-list.entry.js +99 -114
  142. package/dist/esm/ez-spinner.entry.js +1 -1
  143. package/dist/esm/ez-split-button.entry.js +4 -4
  144. package/dist/esm/ez-split-item.entry.js +2 -2
  145. package/dist/esm/ez-time-input.entry.js +1 -1
  146. package/dist/esm/ez-tooltip.entry.js +1 -1
  147. package/dist/esm/ez-tree.entry.js +1 -1
  148. package/dist/esm/ez-upload.entry.js +2 -2
  149. package/dist/esm/ezui.js +3 -3
  150. package/dist/esm/filter-column.entry.js +1 -1
  151. package/dist/esm/{floating-ui.dom.esm-ad30f2f0.js → floating-ui.dom.esm-2964eae1.js} +165 -119
  152. package/dist/esm/{index-225aa0c3.js → index-9e6dab5b.js} +91 -30
  153. package/dist/esm/index-baa5e267.js +8 -0
  154. package/dist/esm/loader.js +3 -3
  155. package/dist/esm/{search-column-40a78cac.js → search-column-dba4853a.js} +4 -7
  156. package/dist/ezui/ezui.esm.js +1 -1
  157. package/dist/ezui/p-0592535f.entry.js +1 -0
  158. package/dist/ezui/{p-544605c4.entry.js → p-063bb342.entry.js} +1 -1
  159. package/dist/ezui/{p-c56ee8c0.entry.js → p-0ac8bd66.entry.js} +1 -1
  160. package/dist/ezui/p-0d80e3ec.entry.js +1 -0
  161. package/dist/ezui/{p-729bd1be.entry.js → p-108503ed.entry.js} +1 -1
  162. package/dist/ezui/{p-e3cd5080.entry.js → p-1166b2d5.entry.js} +1 -1
  163. package/dist/ezui/p-15873627.js +1 -0
  164. package/dist/ezui/{p-0625743b.entry.js → p-160a268d.entry.js} +1 -1
  165. package/dist/ezui/p-178cb9df.entry.js +1 -0
  166. package/dist/ezui/p-2856c545.entry.js +1 -0
  167. package/dist/ezui/{p-df802548.entry.js → p-2ae127bc.entry.js} +1 -1
  168. package/dist/ezui/{p-556bf329.entry.js → p-2ebd7383.entry.js} +1 -1
  169. package/dist/ezui/{p-b36475f9.entry.js → p-30c5f48a.entry.js} +1 -1
  170. package/dist/ezui/p-312bd3c6.entry.js +1 -0
  171. package/dist/ezui/{p-62c149cb.entry.js → p-3fae7072.entry.js} +1 -1
  172. package/dist/ezui/p-42e1e733.js +1 -0
  173. package/dist/ezui/{p-4e869617.entry.js → p-45245c32.entry.js} +1 -1
  174. package/dist/ezui/{p-a872c642.entry.js → p-46b1b2ac.entry.js} +1 -1
  175. package/dist/ezui/{p-5abb220b.entry.js → p-54af1af0.entry.js} +1 -1
  176. package/dist/ezui/{p-a4351519.entry.js → p-66455069.entry.js} +1 -1
  177. package/dist/ezui/p-72e77b45.entry.js +1 -0
  178. package/dist/ezui/{p-7edc3ef7.entry.js → p-73461028.entry.js} +1 -1
  179. package/dist/ezui/{p-f5552540.entry.js → p-7424d520.entry.js} +1 -1
  180. package/dist/ezui/{p-b705b342.entry.js → p-7a07c50f.entry.js} +1 -1
  181. package/dist/ezui/p-7b078125.entry.js +1 -0
  182. package/dist/ezui/{p-d5dc6b01.entry.js → p-7dad8018.entry.js} +1 -1
  183. package/dist/ezui/{p-6a794336.js → p-83bddbbb.js} +1 -1
  184. package/dist/ezui/{p-b0a716ef.entry.js → p-881abc22.entry.js} +1 -1
  185. package/dist/ezui/{p-7134726a.entry.js → p-99556756.entry.js} +1 -1
  186. package/dist/ezui/{p-7953ecb9.entry.js → p-9bd3e28b.entry.js} +1 -1
  187. package/dist/ezui/{p-97312709.entry.js → p-9bd78d39.entry.js} +1 -1
  188. package/dist/ezui/{p-351fb12f.entry.js → p-a4735a12.entry.js} +1 -1
  189. package/dist/ezui/{p-9825c1d2.js → p-ad5e263d.js} +1 -1
  190. package/dist/ezui/{p-26cd4c2e.entry.js → p-b06294c9.entry.js} +1 -1
  191. package/dist/ezui/{p-e493ad57.entry.js → p-b493757c.entry.js} +1 -1
  192. package/dist/ezui/{p-2da9faf1.entry.js → p-b8cd501a.entry.js} +1 -1
  193. package/dist/ezui/p-b986da95.entry.js +7 -0
  194. package/dist/ezui/{p-4c2a4435.entry.js → p-c25a4d30.entry.js} +1 -1
  195. package/dist/ezui/{p-4f7ad3ee.entry.js → p-c37fb359.entry.js} +1 -1
  196. package/dist/ezui/{p-e2972977.entry.js → p-cb00863d.entry.js} +1 -1
  197. package/dist/ezui/{p-4d30b703.entry.js → p-cf66ace0.entry.js} +1 -1
  198. package/dist/ezui/p-d2601b25.js +1 -0
  199. package/dist/ezui/{p-e3a42f47.entry.js → p-d5684cdc.entry.js} +1 -1
  200. package/dist/ezui/{p-6ac056d7.entry.js → p-d70805e4.entry.js} +1 -1
  201. package/dist/ezui/{p-a3bad8f8.entry.js → p-d75f583b.entry.js} +1 -1
  202. package/dist/ezui/p-d8b69419.entry.js +1 -0
  203. package/dist/ezui/{p-56565777.entry.js → p-dfced8c7.entry.js} +1 -1
  204. package/dist/ezui/{p-5a74d132.entry.js → p-dfda027e.entry.js} +46 -46
  205. package/dist/ezui/{p-0248846f.entry.js → p-e3d6b544.entry.js} +1 -1
  206. package/dist/ezui/{p-4c76b365.entry.js → p-e692c2a7.entry.js} +1 -1
  207. package/dist/ezui/{p-8e5f1c74.entry.js → p-e8cd003b.entry.js} +1 -1
  208. package/dist/ezui/p-ed790867.entry.js +1 -0
  209. package/dist/ezui/p-f2e0acf5.entry.js +1 -0
  210. package/dist/ezui/{p-34d459e4.entry.js → p-f498f6b5.entry.js} +1 -1
  211. package/dist/ezui/{p-4af745e1.entry.js → p-fb27b98d.entry.js} +1 -1
  212. package/dist/ezui/{p-987185c4.entry.js → p-fc11f5b9.entry.js} +1 -1
  213. package/dist/ezui/{p-ef8bd3e8.entry.js → p-fc72aeb8.entry.js} +1 -1
  214. package/dist/types/components/ez-classic-search-plus/ez-classic-search-plus.d.ts +3 -0
  215. package/dist/types/components/ez-empty-card/ez-empty-card.d.ts +2 -2
  216. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +4 -0
  217. package/dist/types/components/ez-grid/controller/ag-grid/gridColumnDefaultWidths.d.ts +4 -0
  218. package/dist/types/components/ez-grid/ez-grid.d.ts +10 -27
  219. package/dist/types/components/ez-grid/utils/index.d.ts +1 -0
  220. package/dist/types/components/ez-grid-pagination/ez-grid-pagination.d.ts +75 -0
  221. package/dist/types/components/ez-image-input/ez-image-input.d.ts +1 -0
  222. package/dist/types/components/ez-record-navigation/ez-record-navigation.d.ts +43 -0
  223. package/dist/types/components/ez-scroller/EzScrollNavigationMode.d.ts +4 -0
  224. package/dist/types/components/ez-scroller/ez-scroller.d.ts +16 -2
  225. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +1 -0
  226. package/dist/types/components.d.ts +154 -6
  227. package/dist/types/utils/i18n/locales/en-us.d.ts +26 -3
  228. package/dist/types/utils/i18n/locales/es-es.d.ts +26 -3
  229. package/dist/types/utils/i18n/locales/pt-br.d.ts +26 -3
  230. package/dist/types/utils/i18n/translations.d.ts +78 -9
  231. package/package.json +5 -5
  232. package/react/components.d.ts +2 -0
  233. package/react/components.js +2 -0
  234. package/react/components.js.map +1 -1
  235. package/dist/ezui/p-07fb22c3.entry.js +0 -1
  236. package/dist/ezui/p-288631d1.entry.js +0 -1
  237. package/dist/ezui/p-2a806303.js +0 -1
  238. package/dist/ezui/p-2de94faf.entry.js +0 -1
  239. package/dist/ezui/p-619225ce.entry.js +0 -1
  240. package/dist/ezui/p-a813a748.entry.js +0 -1
  241. package/dist/ezui/p-b8078832.entry.js +0 -1
  242. package/dist/ezui/p-c0ae79fa.entry.js +0 -1
  243. package/dist/ezui/p-c178730b.js +0 -1
  244. package/dist/ezui/p-ce0a0036.entry.js +0 -7
  245. package/dist/ezui/p-d2645bdf.entry.js +0 -1
  246. package/dist/ezui/p-ff4312d5.js +0 -1
@@ -40,8 +40,9 @@ function getOppositeAxis(axis) {
40
40
  function getAxisLength(axis) {
41
41
  return axis === 'y' ? 'height' : 'width';
42
42
  }
43
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
43
44
  function getSideAxis(placement) {
44
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
45
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
45
46
  }
46
47
  function getAlignmentAxis(placement) {
47
48
  return getOppositeAxis(getSideAxis(placement));
@@ -66,19 +67,19 @@ function getExpandedPlacements(placement) {
66
67
  function getOppositeAlignmentPlacement(placement) {
67
68
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
68
69
  }
70
+ const lrPlacement = ['left', 'right'];
71
+ const rlPlacement = ['right', 'left'];
72
+ const tbPlacement = ['top', 'bottom'];
73
+ const btPlacement = ['bottom', 'top'];
69
74
  function getSideList(side, isStart, rtl) {
70
- const lr = ['left', 'right'];
71
- const rl = ['right', 'left'];
72
- const tb = ['top', 'bottom'];
73
- const bt = ['bottom', 'top'];
74
75
  switch (side) {
75
76
  case 'top':
76
77
  case 'bottom':
77
- if (rtl) return isStart ? rl : lr;
78
- return isStart ? lr : rl;
78
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
79
+ return isStart ? lrPlacement : rlPlacement;
79
80
  case 'left':
80
81
  case 'right':
81
- return isStart ? tb : bt;
82
+ return isStart ? tbPlacement : btPlacement;
82
83
  default:
83
84
  return [];
84
85
  }
@@ -189,6 +190,71 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
189
190
  return coords;
190
191
  }
191
192
 
193
+ /**
194
+ * Resolves with an object of overflow side offsets that determine how much the
195
+ * element is overflowing a given clipping boundary on each side.
196
+ * - positive = overflowing the boundary by that number of pixels
197
+ * - negative = how many pixels left before it will overflow
198
+ * - 0 = lies flush with the boundary
199
+ * @see https://floating-ui.com/docs/detectOverflow
200
+ */
201
+ async function detectOverflow(state, options) {
202
+ var _await$platform$isEle;
203
+ if (options === void 0) {
204
+ options = {};
205
+ }
206
+ const {
207
+ x,
208
+ y,
209
+ platform,
210
+ rects,
211
+ elements,
212
+ strategy
213
+ } = state;
214
+ const {
215
+ boundary = 'clippingAncestors',
216
+ rootBoundary = 'viewport',
217
+ elementContext = 'floating',
218
+ altBoundary = false,
219
+ padding = 0
220
+ } = evaluate(options, state);
221
+ const paddingObject = getPaddingObject(padding);
222
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
223
+ const element = elements[altBoundary ? altContext : elementContext];
224
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
225
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
226
+ boundary,
227
+ rootBoundary,
228
+ strategy
229
+ }));
230
+ const rect = elementContext === 'floating' ? {
231
+ x,
232
+ y,
233
+ width: rects.floating.width,
234
+ height: rects.floating.height
235
+ } : rects.reference;
236
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
237
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
238
+ x: 1,
239
+ y: 1
240
+ } : {
241
+ x: 1,
242
+ y: 1
243
+ };
244
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
245
+ elements,
246
+ rect,
247
+ offsetParent,
248
+ strategy
249
+ }) : rect);
250
+ return {
251
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
252
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
253
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
254
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
255
+ };
256
+ }
257
+
192
258
  /**
193
259
  * Computes the `x` and `y` coordinates that will place the floating element
194
260
  * next to a given reference element.
@@ -218,6 +284,7 @@ const computePosition$1 = async (reference, floating, config) => {
218
284
  let middlewareData = {};
219
285
  let resetCount = 0;
220
286
  for (let i = 0; i < validMiddleware.length; i++) {
287
+ var _platform$detectOverf;
221
288
  const {
222
289
  name,
223
290
  fn
@@ -235,7 +302,10 @@ const computePosition$1 = async (reference, floating, config) => {
235
302
  strategy,
236
303
  middlewareData,
237
304
  rects,
238
- platform,
305
+ platform: {
306
+ ...platform,
307
+ detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
308
+ },
239
309
  elements: {
240
310
  reference,
241
311
  floating
@@ -280,71 +350,6 @@ const computePosition$1 = async (reference, floating, config) => {
280
350
  };
281
351
  };
282
352
 
283
- /**
284
- * Resolves with an object of overflow side offsets that determine how much the
285
- * element is overflowing a given clipping boundary on each side.
286
- * - positive = overflowing the boundary by that number of pixels
287
- * - negative = how many pixels left before it will overflow
288
- * - 0 = lies flush with the boundary
289
- * @see https://floating-ui.com/docs/detectOverflow
290
- */
291
- async function detectOverflow(state, options) {
292
- var _await$platform$isEle;
293
- if (options === void 0) {
294
- options = {};
295
- }
296
- const {
297
- x,
298
- y,
299
- platform,
300
- rects,
301
- elements,
302
- strategy
303
- } = state;
304
- const {
305
- boundary = 'clippingAncestors',
306
- rootBoundary = 'viewport',
307
- elementContext = 'floating',
308
- altBoundary = false,
309
- padding = 0
310
- } = evaluate(options, state);
311
- const paddingObject = getPaddingObject(padding);
312
- const altContext = elementContext === 'floating' ? 'reference' : 'floating';
313
- const element = elements[altBoundary ? altContext : elementContext];
314
- const clippingClientRect = rectToClientRect(await platform.getClippingRect({
315
- element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
316
- boundary,
317
- rootBoundary,
318
- strategy
319
- }));
320
- const rect = elementContext === 'floating' ? {
321
- x,
322
- y,
323
- width: rects.floating.width,
324
- height: rects.floating.height
325
- } : rects.reference;
326
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
327
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
328
- x: 1,
329
- y: 1
330
- } : {
331
- x: 1,
332
- y: 1
333
- };
334
- const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
335
- elements,
336
- rect,
337
- offsetParent,
338
- strategy
339
- }) : rect);
340
- return {
341
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
342
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
343
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
344
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
345
- };
346
- }
347
-
348
353
  /**
349
354
  * Provides data to position an inner element of the floating element so that it
350
355
  * appears centered to the reference element.
@@ -477,7 +482,7 @@ const flip$1 = function (options) {
477
482
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
478
483
  }
479
484
  const placements = [initialPlacement, ...fallbackPlacements];
480
- const overflow = await detectOverflow(state, detectOverflowOptions);
485
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
481
486
  const overflows = [];
482
487
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
483
488
  if (checkMainAxis) {
@@ -498,16 +503,22 @@ const flip$1 = function (options) {
498
503
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
499
504
  const nextPlacement = placements[nextIndex];
500
505
  if (nextPlacement) {
501
- // Try next placement and re-run the lifecycle.
502
- return {
503
- data: {
504
- index: nextIndex,
505
- overflows: overflowsData
506
- },
507
- reset: {
508
- placement: nextPlacement
509
- }
510
- };
506
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
507
+ if (!ignoreCrossAxisOverflow ||
508
+ // We leave the current main axis only if every placement on that axis
509
+ // overflows the main axis.
510
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
511
+ // Try next placement and re-run the lifecycle.
512
+ return {
513
+ data: {
514
+ index: nextIndex,
515
+ overflows: overflowsData
516
+ },
517
+ reset: {
518
+ placement: nextPlacement
519
+ }
520
+ };
521
+ }
511
522
  }
512
523
 
513
524
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -553,6 +564,8 @@ const flip$1 = function (options) {
553
564
  };
554
565
  };
555
566
 
567
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
568
+
556
569
  // For type backwards-compatibility, the `OffsetOptions` type was also
557
570
  // Derivable.
558
571
 
@@ -566,7 +579,7 @@ async function convertValueToCoords(state, options) {
566
579
  const side = getSide(placement);
567
580
  const alignment = getAlignment(placement);
568
581
  const isVertical = getSideAxis(placement) === 'y';
569
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
582
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
570
583
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
571
584
  const rawValue = evaluate(options, state);
572
585
 
@@ -653,7 +666,8 @@ const shift$1 = function (options) {
653
666
  const {
654
667
  x,
655
668
  y,
656
- placement
669
+ placement,
670
+ platform
657
671
  } = state;
658
672
  const {
659
673
  mainAxis: checkMainAxis = true,
@@ -676,7 +690,7 @@ const shift$1 = function (options) {
676
690
  x,
677
691
  y
678
692
  };
679
- const overflow = await detectOverflow(state, detectOverflowOptions);
693
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
680
694
  const crossAxis = getSideAxis(getSide(placement));
681
695
  const mainAxis = getOppositeAxis(crossAxis);
682
696
  let mainAxisCoord = coords[mainAxis];
@@ -759,34 +773,40 @@ function isShadowRoot(value) {
759
773
  }
760
774
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
761
775
  }
776
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
762
777
  function isOverflowElement(element) {
763
778
  const {
764
779
  overflow,
765
780
  overflowX,
766
781
  overflowY,
767
782
  display
768
- } = getComputedStyle(element);
769
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
783
+ } = getComputedStyle$1(element);
784
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
770
785
  }
786
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
771
787
  function isTableElement(element) {
772
- return ['table', 'td', 'th'].includes(getNodeName(element));
788
+ return tableElements.has(getNodeName(element));
773
789
  }
790
+ const topLayerSelectors = [':popover-open', ':modal'];
774
791
  function isTopLayer(element) {
775
- return [':popover-open', ':modal'].some(selector => {
792
+ return topLayerSelectors.some(selector => {
776
793
  try {
777
794
  return element.matches(selector);
778
- } catch (e) {
795
+ } catch (_e) {
779
796
  return false;
780
797
  }
781
798
  });
782
799
  }
800
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
801
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
802
+ const containValues = ['paint', 'layout', 'strict', 'content'];
783
803
  function isContainingBlock(elementOrCss) {
784
804
  const webkit = isWebKit();
785
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
805
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
786
806
 
787
807
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
788
808
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
789
- return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
809
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
790
810
  }
791
811
  function getContainingBlock(element) {
792
812
  let currentNode = getParentNode(element);
@@ -804,10 +824,11 @@ function isWebKit() {
804
824
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
805
825
  return CSS.supports('-webkit-backdrop-filter', 'none');
806
826
  }
827
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
807
828
  function isLastTraversableNode(node) {
808
- return ['html', 'body', '#document'].includes(getNodeName(node));
829
+ return lastTraversableNodeNames.has(getNodeName(node));
809
830
  }
810
- function getComputedStyle(element) {
831
+ function getComputedStyle$1(element) {
811
832
  return getWindow(element).getComputedStyle(element);
812
833
  }
813
834
  function getNodeScroll(element) {
@@ -869,7 +890,7 @@ function getFrameElement(win) {
869
890
  }
870
891
 
871
892
  function getCssDimensions(element) {
872
- const css = getComputedStyle(element);
893
+ const css = getComputedStyle$1(element);
873
894
  // In testing environments, the `width` and `height` properties are empty
874
895
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
875
896
  let width = parseFloat(css.width) || 0;
@@ -974,7 +995,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
974
995
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
975
996
  const iframeScale = getScale(currentIFrame);
976
997
  const iframeRect = currentIFrame.getBoundingClientRect();
977
- const css = getComputedStyle(currentIFrame);
998
+ const css = getComputedStyle$1(currentIFrame);
978
999
  const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
979
1000
  const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
980
1001
  x *= iframeScale.x;
@@ -1005,14 +1026,9 @@ function getWindowScrollBarX(element, rect) {
1005
1026
  return rect.left + leftScroll;
1006
1027
  }
1007
1028
 
1008
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
1009
- if (ignoreScrollbarX === void 0) {
1010
- ignoreScrollbarX = false;
1011
- }
1029
+ function getHTMLOffset(documentElement, scroll) {
1012
1030
  const htmlRect = documentElement.getBoundingClientRect();
1013
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
1014
- // RTL <body> scrollbar.
1015
- getWindowScrollBarX(documentElement, htmlRect));
1031
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
1016
1032
  const y = htmlRect.top + scroll.scrollTop;
1017
1033
  return {
1018
1034
  x,
@@ -1051,7 +1067,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1051
1067
  offsets.y = offsetRect.y + offsetParent.clientTop;
1052
1068
  }
1053
1069
  }
1054
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
1070
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1055
1071
  return {
1056
1072
  width: rect.width * scale.x,
1057
1073
  height: rect.height * scale.y,
@@ -1074,7 +1090,7 @@ function getDocumentRect(element) {
1074
1090
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1075
1091
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1076
1092
  const y = -scroll.scrollTop;
1077
- if (getComputedStyle(body).direction === 'rtl') {
1093
+ if (getComputedStyle$1(body).direction === 'rtl') {
1078
1094
  x += max(html.clientWidth, body.clientWidth) - width;
1079
1095
  }
1080
1096
  return {
@@ -1085,6 +1101,10 @@ function getDocumentRect(element) {
1085
1101
  };
1086
1102
  }
1087
1103
 
1104
+ // Safety check: ensure the scrollbar space is reasonable in case this
1105
+ // calculation is affected by unusual styles.
1106
+ // Most scrollbars leave 15-18px of space.
1107
+ const SCROLLBAR_MAX = 25;
1088
1108
  function getViewportRect(element, strategy) {
1089
1109
  const win = getWindow(element);
1090
1110
  const html = getDocumentElement(element);
@@ -1102,6 +1122,24 @@ function getViewportRect(element, strategy) {
1102
1122
  y = visualViewport.offsetTop;
1103
1123
  }
1104
1124
  }
1125
+ const windowScrollbarX = getWindowScrollBarX(html);
1126
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
1127
+ // visual width of the <html> but this is not considered in the size
1128
+ // of `html.clientWidth`.
1129
+ if (windowScrollbarX <= 0) {
1130
+ const doc = html.ownerDocument;
1131
+ const body = doc.body;
1132
+ const bodyStyles = getComputedStyle(body);
1133
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
1134
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1135
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
1136
+ width -= clippingStableScrollbarWidth;
1137
+ }
1138
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
1139
+ // If the <body> scrollbar is on the left, the width needs to be extended
1140
+ // by the scrollbar amount so there isn't extra space on the right.
1141
+ width += windowScrollbarX;
1142
+ }
1105
1143
  return {
1106
1144
  width,
1107
1145
  height,
@@ -1110,6 +1148,7 @@ function getViewportRect(element, strategy) {
1110
1148
  };
1111
1149
  }
1112
1150
 
1151
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
1113
1152
  // Returns the inner client rect, subtracting scrollbars if present.
1114
1153
  function getInnerBoundingClientRect(element, strategy) {
1115
1154
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -1151,7 +1190,7 @@ function hasFixedPositionAncestor(element, stopNode) {
1151
1190
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1152
1191
  return false;
1153
1192
  }
1154
- return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1193
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1155
1194
  }
1156
1195
 
1157
1196
  // A "clipping ancestor" is an `overflow` element with the characteristic of
@@ -1164,17 +1203,17 @@ function getClippingElementAncestors(element, cache) {
1164
1203
  }
1165
1204
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
1166
1205
  let currentContainingBlockComputedStyle = null;
1167
- const elementIsFixed = getComputedStyle(element).position === 'fixed';
1206
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1168
1207
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1169
1208
 
1170
1209
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1171
1210
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1172
- const computedStyle = getComputedStyle(currentNode);
1211
+ const computedStyle = getComputedStyle$1(currentNode);
1173
1212
  const currentNodeIsContaining = isContainingBlock(currentNode);
1174
1213
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1175
1214
  currentContainingBlockComputedStyle = null;
1176
1215
  }
1177
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1216
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1178
1217
  if (shouldDropCurrentNode) {
1179
1218
  // Drop non-containing blocks.
1180
1219
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -1237,6 +1276,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1237
1276
  scrollTop: 0
1238
1277
  };
1239
1278
  const offsets = createCoords(0);
1279
+
1280
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1281
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1282
+ function setLeftRTLScrollbarOffset() {
1283
+ offsets.x = getWindowScrollBarX(documentElement);
1284
+ }
1240
1285
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1241
1286
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1242
1287
  scroll = getNodeScroll(offsetParent);
@@ -1246,11 +1291,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1246
1291
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1247
1292
  offsets.y = offsetRect.y + offsetParent.clientTop;
1248
1293
  } else if (documentElement) {
1249
- // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1250
- // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1251
- offsets.x = getWindowScrollBarX(documentElement);
1294
+ setLeftRTLScrollbarOffset();
1252
1295
  }
1253
1296
  }
1297
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
1298
+ setLeftRTLScrollbarOffset();
1299
+ }
1254
1300
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1255
1301
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
1256
1302
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
@@ -1263,11 +1309,11 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1263
1309
  }
1264
1310
 
1265
1311
  function isStaticPositioned(element) {
1266
- return getComputedStyle(element).position === 'static';
1312
+ return getComputedStyle$1(element).position === 'static';
1267
1313
  }
1268
1314
 
1269
1315
  function getTrueOffsetParent(element, polyfill) {
1270
- if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
1316
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
1271
1317
  return null;
1272
1318
  }
1273
1319
  if (polyfill) {
@@ -1328,7 +1374,7 @@ const getElementRects = async function (data) {
1328
1374
  };
1329
1375
 
1330
1376
  function isRTL(element) {
1331
- return getComputedStyle(element).direction === 'rtl';
1377
+ return getComputedStyle$1(element).direction === 'rtl';
1332
1378
  }
1333
1379
 
1334
1380
  const platform = {
@@ -1427,7 +1473,7 @@ function observeMove(element, onMove) {
1427
1473
  // Handle <iframe>s
1428
1474
  root: root.ownerDocument
1429
1475
  });
1430
- } catch (e) {
1476
+ } catch (_e) {
1431
1477
  io = new IntersectionObserver(handleObserve, options);
1432
1478
  }
1433
1479
  io.observe(element);