ngx-bootstrap 10.0.0 → 10.2.0

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 (278) hide show
  1. package/accordion/accordion-group.component.d.ts +1 -1
  2. package/accordion/accordion.component.d.ts +1 -1
  3. package/accordion/esm2020/accordion-group.component.mjs +3 -3
  4. package/accordion/esm2020/accordion.component.mjs +3 -3
  5. package/accordion/esm2020/accordion.config.mjs +3 -3
  6. package/accordion/esm2020/accordion.module.mjs +4 -4
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +13 -13
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +1 -1
  9. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs +13 -13
  10. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +1 -1
  11. package/accordion/package.json +4 -4
  12. package/alert/alert.component.d.ts +1 -1
  13. package/alert/esm2020/alert.component.mjs +4 -4
  14. package/alert/esm2020/alert.config.mjs +3 -3
  15. package/alert/esm2020/alert.module.mjs +4 -4
  16. package/alert/fesm2015/ngx-bootstrap-alert.mjs +10 -10
  17. package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +1 -1
  18. package/alert/fesm2020/ngx-bootstrap-alert.mjs +10 -10
  19. package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +1 -1
  20. package/alert/package.json +4 -4
  21. package/buttons/button-checkbox.directive.d.ts +1 -1
  22. package/buttons/button-radio-group.directive.d.ts +1 -1
  23. package/buttons/button-radio.directive.d.ts +1 -1
  24. package/buttons/esm2020/button-checkbox.directive.mjs +3 -3
  25. package/buttons/esm2020/button-radio-group.directive.mjs +3 -3
  26. package/buttons/esm2020/button-radio.directive.mjs +3 -3
  27. package/buttons/esm2020/buttons.module.mjs +4 -4
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +13 -13
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +1 -1
  30. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs +13 -13
  31. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +1 -1
  32. package/buttons/package.json +3 -3
  33. package/carousel/carousel.component.d.ts +1 -1
  34. package/carousel/esm2020/carousel.component.mjs +3 -3
  35. package/carousel/esm2020/carousel.config.mjs +3 -3
  36. package/carousel/esm2020/carousel.module.mjs +4 -4
  37. package/carousel/esm2020/slide.component.mjs +3 -3
  38. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +13 -13
  39. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +1 -1
  40. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs +13 -13
  41. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +1 -1
  42. package/carousel/package.json +4 -4
  43. package/carousel/slide.component.d.ts +1 -1
  44. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +1 -1
  45. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +1 -1
  46. package/chronos/package.json +1 -1
  47. package/collapse/collapse.directive.d.ts +1 -1
  48. package/collapse/esm2020/collapse.directive.mjs +3 -3
  49. package/collapse/esm2020/collapse.module.mjs +4 -4
  50. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +7 -7
  51. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +1 -1
  52. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs +7 -7
  53. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +1 -1
  54. package/collapse/package.json +4 -4
  55. package/component-loader/component-loader.class.d.ts +1 -1
  56. package/component-loader/component-loader.factory.d.ts +1 -1
  57. package/component-loader/esm2020/component-loader.class.mjs +1 -1
  58. package/component-loader/esm2020/component-loader.factory.mjs +4 -4
  59. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +3 -3
  60. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +1 -1
  61. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs +3 -3
  62. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +1 -1
  63. package/component-loader/package.json +3 -3
  64. package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
  65. package/datepicker/bs-datepicker-input.directive.d.ts +1 -1
  66. package/datepicker/bs-datepicker.component.d.ts +6 -1
  67. package/datepicker/bs-datepicker.config.d.ts +4 -0
  68. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  69. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -1
  70. package/datepicker/bs-daterangepicker.component.d.ts +6 -1
  71. package/datepicker/esm2020/bs-datepicker-inline.component.mjs +3 -3
  72. package/datepicker/esm2020/bs-datepicker-inline.config.mjs +3 -3
  73. package/datepicker/esm2020/bs-datepicker-input.directive.mjs +3 -3
  74. package/datepicker/esm2020/bs-datepicker.component.mjs +36 -9
  75. package/datepicker/esm2020/bs-datepicker.config.mjs +8 -4
  76. package/datepicker/esm2020/bs-datepicker.module.mjs +4 -4
  77. package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +3 -3
  78. package/datepicker/esm2020/bs-daterangepicker-inline.config.mjs +3 -3
  79. package/datepicker/esm2020/bs-daterangepicker-input.directive.mjs +3 -3
  80. package/datepicker/esm2020/bs-daterangepicker.component.mjs +38 -9
  81. package/datepicker/esm2020/bs-daterangepicker.config.mjs +3 -3
  82. package/datepicker/esm2020/bs-locale.service.mjs +3 -3
  83. package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +4 -4
  84. package/datepicker/esm2020/reducer/bs-datepicker.effects.mjs +3 -3
  85. package/datepicker/esm2020/reducer/bs-datepicker.store.mjs +3 -3
  86. package/datepicker/esm2020/themes/bs/bs-calendar-layout.component.mjs +3 -3
  87. package/datepicker/esm2020/themes/bs/bs-current-date-view.component.mjs +3 -3
  88. package/datepicker/esm2020/themes/bs/bs-custom-dates-view.component.mjs +3 -3
  89. package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +22 -7
  90. package/datepicker/esm2020/themes/bs/bs-datepicker-day-decorator.directive.mjs +3 -3
  91. package/datepicker/esm2020/themes/bs/bs-datepicker-inline-container.component.mjs +19 -7
  92. package/datepicker/esm2020/themes/bs/bs-datepicker-navigation-view.component.mjs +26 -8
  93. package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +21 -6
  94. package/datepicker/esm2020/themes/bs/bs-daterangepicker-inline-container.component.mjs +19 -7
  95. package/datepicker/esm2020/themes/bs/bs-days-calendar-view.component.mjs +9 -5
  96. package/datepicker/esm2020/themes/bs/bs-months-calendar-view.component.mjs +4 -4
  97. package/datepicker/esm2020/themes/bs/bs-timepicker-view.component.mjs +3 -3
  98. package/datepicker/esm2020/themes/bs/bs-years-calendar-view.component.mjs +4 -4
  99. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +252 -112
  100. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +1 -1
  101. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs +244 -108
  102. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +1 -1
  103. package/datepicker/package.json +8 -8
  104. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +1 -1
  105. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
  106. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
  107. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +5 -2
  108. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
  109. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +3 -1
  110. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +2 -1
  111. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +4 -1
  112. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +3 -1
  113. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +2 -1
  114. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
  115. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +1 -1
  116. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
  117. package/dropdown/bs-dropdown-container.component.d.ts +1 -1
  118. package/dropdown/bs-dropdown-menu.directive.d.ts +1 -1
  119. package/dropdown/bs-dropdown-toggle.directive.d.ts +1 -1
  120. package/dropdown/bs-dropdown.directive.d.ts +1 -1
  121. package/dropdown/esm2020/bs-dropdown-container.component.mjs +3 -3
  122. package/dropdown/esm2020/bs-dropdown-menu.directive.mjs +3 -3
  123. package/dropdown/esm2020/bs-dropdown-toggle.directive.mjs +3 -3
  124. package/dropdown/esm2020/bs-dropdown.config.mjs +3 -3
  125. package/dropdown/esm2020/bs-dropdown.directive.mjs +3 -3
  126. package/dropdown/esm2020/bs-dropdown.module.mjs +4 -4
  127. package/dropdown/esm2020/bs-dropdown.state.mjs +3 -3
  128. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +22 -22
  129. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +1 -1
  130. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs +22 -22
  131. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +1 -1
  132. package/dropdown/package.json +5 -5
  133. package/fesm2015/ngx-bootstrap.mjs.map +1 -1
  134. package/fesm2020/ngx-bootstrap.mjs.map +1 -1
  135. package/focus-trap/esm2020/focus-trap-manager.mjs +3 -3
  136. package/focus-trap/esm2020/focus-trap.mjs +7 -7
  137. package/focus-trap/esm2020/focus-trap.module.mjs +4 -4
  138. package/focus-trap/esm2020/interactivity-checker.mjs +3 -3
  139. package/focus-trap/esm2020/platform.mjs +4 -4
  140. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +19 -19
  141. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +1 -1
  142. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs +19 -19
  143. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +1 -1
  144. package/focus-trap/focus-trap.d.ts +1 -1
  145. package/focus-trap/package.json +3 -3
  146. package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +1 -1
  147. package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +1 -1
  148. package/locale/package.json +2 -2
  149. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
  150. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
  151. package/mini-ngrx/package.json +1 -1
  152. package/modal/esm2020/bs-modal-ref.service.mjs +3 -3
  153. package/modal/esm2020/bs-modal.service.mjs +3 -3
  154. package/modal/esm2020/modal-backdrop.component.mjs +3 -3
  155. package/modal/esm2020/modal-container.component.mjs +3 -3
  156. package/modal/esm2020/modal-options.class.mjs +3 -3
  157. package/modal/esm2020/modal.directive.mjs +3 -3
  158. package/modal/esm2020/modal.module.mjs +4 -4
  159. package/modal/fesm2015/ngx-bootstrap-modal.mjs +22 -22
  160. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +1 -1
  161. package/modal/fesm2020/ngx-bootstrap-modal.mjs +22 -22
  162. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +1 -1
  163. package/modal/modal-backdrop.component.d.ts +1 -1
  164. package/modal/modal-container.component.d.ts +1 -1
  165. package/modal/modal.directive.d.ts +1 -1
  166. package/modal/package.json +4 -4
  167. package/package.json +6 -6
  168. package/pagination/esm2020/pager.component.mjs +3 -3
  169. package/pagination/esm2020/pagination.component.mjs +3 -3
  170. package/pagination/esm2020/pagination.config.mjs +3 -3
  171. package/pagination/esm2020/pagination.module.mjs +4 -4
  172. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +13 -13
  173. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +1 -1
  174. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs +13 -13
  175. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +1 -1
  176. package/pagination/package.json +4 -4
  177. package/pagination/pager.component.d.ts +1 -1
  178. package/pagination/pagination.component.d.ts +1 -1
  179. package/popover/esm2020/popover-container.component.mjs +3 -3
  180. package/popover/esm2020/popover.config.mjs +3 -3
  181. package/popover/esm2020/popover.directive.mjs +3 -3
  182. package/popover/esm2020/popover.module.mjs +4 -4
  183. package/popover/fesm2015/ngx-bootstrap-popover.mjs +13 -13
  184. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +1 -1
  185. package/popover/fesm2020/ngx-bootstrap-popover.mjs +13 -13
  186. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +1 -1
  187. package/popover/package.json +5 -5
  188. package/popover/popover-container.component.d.ts +1 -1
  189. package/popover/popover.directive.d.ts +1 -1
  190. package/positioning/esm2020/positioning.service.mjs +3 -3
  191. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +3 -3
  192. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +1 -1
  193. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs +3 -3
  194. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +1 -1
  195. package/positioning/package.json +5 -5
  196. package/progressbar/bar.component.d.ts +1 -1
  197. package/progressbar/esm2020/bar.component.mjs +3 -3
  198. package/progressbar/esm2020/progressbar.component.mjs +3 -3
  199. package/progressbar/esm2020/progressbar.config.mjs +3 -3
  200. package/progressbar/esm2020/progressbar.module.mjs +4 -4
  201. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +13 -13
  202. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +1 -1
  203. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs +13 -13
  204. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +1 -1
  205. package/progressbar/package.json +3 -3
  206. package/progressbar/progressbar.component.d.ts +1 -1
  207. package/rating/esm2020/rating.component.mjs +3 -3
  208. package/rating/esm2020/rating.config.mjs +3 -3
  209. package/rating/esm2020/rating.module.mjs +4 -4
  210. package/rating/fesm2015/ngx-bootstrap-rating.mjs +10 -10
  211. package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +1 -1
  212. package/rating/fesm2020/ngx-bootstrap-rating.mjs +10 -10
  213. package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +1 -1
  214. package/rating/package.json +4 -4
  215. package/rating/rating.component.d.ts +1 -1
  216. package/schematics/ng-add/index.js +1 -1
  217. package/schematics/package.json +4 -4
  218. package/schematics/utils/current_dependency_versions.json +1 -1
  219. package/sortable/esm2020/draggable-item.service.mjs +3 -3
  220. package/sortable/esm2020/sortable.component.mjs +4 -4
  221. package/sortable/esm2020/sortable.module.mjs +4 -4
  222. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +10 -10
  223. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +1 -1
  224. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs +10 -10
  225. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +1 -1
  226. package/sortable/package.json +5 -5
  227. package/sortable/sortable.component.d.ts +1 -1
  228. package/tabs/esm2020/ng-transclude.directive.mjs +3 -3
  229. package/tabs/esm2020/tab-heading.directive.mjs +3 -3
  230. package/tabs/esm2020/tab.directive.mjs +3 -3
  231. package/tabs/esm2020/tabs.module.mjs +4 -4
  232. package/tabs/esm2020/tabset.component.mjs +3 -3
  233. package/tabs/esm2020/tabset.config.mjs +3 -3
  234. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs +19 -19
  235. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +1 -1
  236. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +19 -19
  237. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +1 -1
  238. package/tabs/ng-transclude.directive.d.ts +1 -1
  239. package/tabs/package.json +3 -3
  240. package/tabs/tab-heading.directive.d.ts +1 -1
  241. package/tabs/tab.directive.d.ts +1 -1
  242. package/tabs/tabset.component.d.ts +1 -1
  243. package/timepicker/esm2020/reducer/timepicker.actions.mjs +4 -4
  244. package/timepicker/esm2020/reducer/timepicker.store.mjs +3 -3
  245. package/timepicker/esm2020/timepicker.component.mjs +3 -3
  246. package/timepicker/esm2020/timepicker.config.mjs +3 -3
  247. package/timepicker/esm2020/timepicker.module.mjs +4 -4
  248. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +16 -16
  249. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +1 -1
  250. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs +16 -16
  251. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +1 -1
  252. package/timepicker/package.json +6 -6
  253. package/timepicker/timepicker.component.d.ts +1 -1
  254. package/tooltip/esm2020/tooltip-container.component.mjs +3 -3
  255. package/tooltip/esm2020/tooltip.config.mjs +3 -3
  256. package/tooltip/esm2020/tooltip.directive.mjs +4 -4
  257. package/tooltip/esm2020/tooltip.module.mjs +4 -4
  258. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +13 -13
  259. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +1 -1
  260. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs +13 -13
  261. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +1 -1
  262. package/tooltip/package.json +6 -6
  263. package/tooltip/tooltip-container.component.d.ts +1 -1
  264. package/tooltip/tooltip.directive.d.ts +1 -1
  265. package/typeahead/esm2020/typeahead-container.component.mjs +3 -3
  266. package/typeahead/esm2020/typeahead.config.mjs +3 -3
  267. package/typeahead/esm2020/typeahead.directive.mjs +3 -3
  268. package/typeahead/esm2020/typeahead.module.mjs +4 -4
  269. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +13 -13
  270. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +1 -1
  271. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs +13 -13
  272. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +1 -1
  273. package/typeahead/package.json +7 -7
  274. package/typeahead/typeahead-container.component.d.ts +1 -1
  275. package/typeahead/typeahead.directive.d.ts +1 -1
  276. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +1 -1
  277. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +1 -1
  278. package/utils/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-positioning.mjs","sources":["../../../../src/positioning/models/index.ts","../../../../src/positioning/utils/getStyleComputedProperty.ts","../../../../src/positioning/utils/getOffsetParent.ts","../../../../src/positioning/utils/isOffsetContainer.ts","../../../../src/positioning/utils/getRoot.ts","../../../../src/positioning/utils/findCommonOffsetParent.ts","../../../../src/positioning/utils/getFixedPositionOffsetParent.ts","../../../../src/positioning/utils/getBordersSize.ts","../../../../src/positioning/utils/getWindowSizes.ts","../../../../src/positioning/utils/getClientRect.ts","../../../../src/positioning/utils/isNumeric.ts","../../../../src/positioning/utils/getBoundingClientRect.ts","../../../../src/positioning/utils/getParentNode.ts","../../../../src/positioning/utils/getScrollParent.ts","../../../../src/positioning/utils/getOffsetRectRelativeToArbitraryNode.ts","../../../../src/positioning/utils/getScroll.ts","../../../../src/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.ts","../../../../src/positioning/utils/isFixed.ts","../../../../src/positioning/utils/getBoundaries.ts","../../../../src/positioning/utils/computeAutoPlacement.ts","../../../../src/positioning/utils/getOffsets.ts","../../../../src/positioning/utils/getOppositePlacement.ts","../../../../src/positioning/utils/getOppositeVariation.ts","../../../../src/positioning/utils/getOuterSizes.ts","../../../../src/positioning/utils/getReferenceOffsets.ts","../../../../src/positioning/utils/getTargetOffsets.ts","../../../../src/positioning/utils/isModifierEnabled.ts","../../../../src/positioning/utils/checkMargin.ts","../../../../src/positioning/utils/updateContainerClass.ts","../../../../src/positioning/utils/setStyles.ts","../../../../src/positioning/modifiers/arrow.ts","../../../../src/positioning/modifiers/flip.ts","../../../../src/positioning/modifiers/initData.ts","../../../../src/positioning/modifiers/preventOverflow.ts","../../../../src/positioning/modifiers/shift.ts","../../../../src/positioning/ng-positioning.ts","../../../../src/positioning/positioning.service.ts","../../../../src/positioning/ngx-bootstrap-positioning.ts"],"sourcesContent":["export interface Offsets {\n width: number;\n height: number;\n bottom?: number;\n left?: number;\n right?: number;\n top?: number;\n marginTop?: number;\n marginLeft?: number;\n}\n\nexport interface Data {\n options: Options;\n instance: {\n target: HTMLElement;\n host: HTMLElement;\n arrow?: HTMLElement;\n };\n offsets: {\n target: Offsets;\n host: Offsets;\n arrow?: Record<string, string | number | HTMLElement>;\n };\n positionFixed: boolean;\n placement: string;\n placementAuto: boolean;\n}\n\nexport interface Options {\n placement?: string;\n modifiers: {\n flip?: {\n enabled: boolean;\n };\n preventOverflow?: {\n enabled: boolean;\n boundariesElement?: string;\n };\n };\n allowedPositions?: string[];\n}\n\nexport enum MapPlacementInToRL {\n top = 'top',\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n auto = 'auto',\n end = 'right',\n start = 'left',\n 'top left' = 'top left',\n 'top right' = 'top right',\n 'right top' = 'right top',\n 'right bottom' = 'right bottom',\n 'bottom right' = 'bottom right',\n 'bottom left' = 'bottom left',\n 'left bottom' = 'left bottom',\n 'left top' = 'left top',\n 'top start' = 'top left',\n 'top end' = 'top right',\n 'end top' = 'right top',\n 'end bottom' = 'right bottom',\n 'bottom end' = 'bottom right',\n 'bottom start' = 'bottom left',\n 'start bottom' = 'start bottom',\n 'start top' = 'left top',\n}\n\nexport enum PlacementForBs5 {\n top = 'top',\n bottom = 'bottom',\n left = 'start',\n right = 'end',\n auto = 'auto',\n end = 'end',\n start = 'start',\n 'top left' = 'top start',\n 'top right' = 'top end',\n 'right top' = 'end top',\n 'right bottom' = 'end bottom',\n 'bottom right' = 'bottom end',\n 'bottom left' = 'bottom start',\n 'left bottom' = 'start bottom',\n 'left top' = 'start top',\n 'top start' = 'top start',\n 'top end' = 'top end',\n 'end top' = 'end top',\n 'end bottom' = 'end bottom',\n 'bottom end' = 'bottom end',\n 'bottom start' = 'bottom start',\n 'start bottom' = 'start bottom',\n 'start top' = 'start top',\n}\n\nexport type AvailbleBSPositions = 'top' | 'bottom' | 'left' | 'right' | 'auto' | 'top left' | 'top right' | 'right top' | 'right bottom' | 'bottom right' | 'bottom left' | 'left bottom' | 'left top' | 'start' | 'end' | 'top start' | 'top end' | 'end top' | 'end bottom' | 'bottom end' | 'bottom start' | 'start bottom' | 'start top';\n\n","/**\n * Get CSS computed property of the given element\n */\nexport function getStyleComputedProperty(element: Element): CSSStyleDeclaration;\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[];\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[] | CSSStyleDeclaration {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window?.getComputedStyle(element, null);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n","/**\n * Returns the offset parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getOffsetParent(element: HTMLElement): HTMLElement {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element?.offsetParent;\n\n // Skip hidden elements which don't have an offsetParent\n let sibling: HTMLElement | undefined = void 0;\n\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n\n // todo: valorkin fix\n sibling = element.nextElementSibling as HTMLElement;\n offsetParent = sibling.offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (\n offsetParent &&\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent as HTMLElement);\n }\n\n return offsetParent as HTMLElement;\n}\n","import { getOffsetParent } from './getOffsetParent';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isOffsetContainer(element: any) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nexport function getRoot(node: Node|ShadowRoot): Node|ShadowRoot {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","/**\n * Finds the offset parent common to the two provided nodes\n */\nimport { isOffsetContainer } from './isOffsetContainer';\nimport { getRoot } from './getRoot';\nimport { getOffsetParent } from './getOffsetParent';\n\nexport function findCommonOffsetParent(element1: HTMLElement, element2: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer as unknown as HTMLElement;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1) as ShadowRoot;\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host as HTMLElement, element2);\n } else {\n return findCommonOffsetParent(element1, (getRoot(element2) as ShadowRoot).host as HTMLElement);\n }\n}\n","/**\n * Finds the first parent of an element that has a transformed property defined\n */\n\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getFixedPositionOffsetParent(element: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement) {\n return document.documentElement;\n }\n\n let el = element.parentElement;\n\n while (el?.parentElement && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n","/**\n * Helper to detect borders of a given element\n */\n\nexport function getBordersSize(styles: CSSStyleDeclaration, axis: string): number {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat((styles as never)[`border${sideA}Width`]) +\n parseFloat((styles as never)[`border${sideB}Width`])\n );\n}\n","function getSize(axis: string, body: HTMLElement, html: HTMLElement, computedStyle?: CSSStyleDeclaration) {\n const _body = body as unknown as Record<string, number>;\n const _html = html as never;\n const _computedStyle = computedStyle as unknown as Record<string, string>;\n\n return Math.max(\n _body[`offset${axis}`],\n _body[`scroll${axis}`],\n _html[`client${axis}`],\n _html[`offset${axis}`],\n _html[`scroll${axis}`],\n 0\n );\n}\n\nexport function getWindowSizes(document: Document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = void 0;\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n */\nimport { Offsets } from '../models';\n\nexport function getClientRect(offsets: Offsets): Offsets {\n return {\n ...offsets,\n right: (offsets.left || 0) + offsets.width,\n bottom: (offsets.top || 0) + offsets.height\n };\n}\n","/**\n * Tells if a given input is a number\n */\nexport function isNumeric(n: string): boolean {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n","/**\n * Get bounding client rect of given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getBordersSize } from './getBordersSize';\nimport { getWindowSizes } from './getWindowSizes';\nimport { getClientRect } from './getClientRect';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundingClientRect(element: HTMLElement): Offsets {\n const rect: Offsets = element.getBoundingClientRect();\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n // try {\n // if (isIE(10)) {\n // const scrollTop = getScroll(element, 'top');\n // const scrollLeft = getScroll(element, 'left');\n // if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n // rect.top += scrollTop;\n // rect.left += scrollLeft;\n // rect.bottom += scrollTop;\n // rect.right += scrollLeft;\n // }\n // }\n // } catch (e) {\n // return rect;\n // }\n\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n\n const result: Offsets = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = sizes?.width || element.clientWidth\n || isNumber(rect.right) && isNumber(result.left) && rect.right - result.left || 0;\n const height = sizes?.height || element.clientHeight\n || isNumber(rect.bottom) && isNumber(result.top) && rect.bottom - result.top || 0;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getParentNode(element: any): any {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n","/**\n * Returns the scrolling parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getScrollParent(element: any): any {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","import { getBoundingClientRect } from './getBoundingClientRect';\nimport { getClientRect } from './getClientRect';\nimport { getScrollParent } from './getScrollParent';\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { includeScroll } from './includeScroll';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getOffsetRectRelativeToArbitraryNode(\n children: HTMLElement,\n parent: HTMLElement,\n fixedPosition = false\n): Offsets {\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top ?? 0, 0);\n parentRect.left = Math.max(parentRect.left ?? 0, 0);\n }\n\n const offsets: Offsets = getClientRect({\n top: (childrenRect.top ?? 0) - (parentRect.top ?? 0) - borderTopWidth,\n left: (childrenRect.left ?? 0) - (parentRect.left ?? 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n return offsets;\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nexport function getScroll(element: HTMLElement, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import { getClientRect } from './getClientRect';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getScroll } from './getScroll';\nimport { Offsets } from '../models';\n\nexport function getViewportOffsetRectRelativeToArtbitraryNode(element: HTMLElement, excludeScroll = false): Offsets {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - Number(relativeOffset?.top) + Number(relativeOffset?.marginTop),\n left: scrollLeft - Number(relativeOffset?.left) + Number(relativeOffset?.marginLeft),\n width,\n height\n };\n\n return getClientRect(offset);\n}\n","/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\nexport function isFixed(element: HTMLElement): boolean {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(getParentNode(element));\n}\n","/**\n * Computed the boundaries limits and return them\n */\nimport { Offsets } from '../models';\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getParentNode } from './getParentNode';\nimport { getScrollParent } from './getScrollParent';\nimport { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport { getWindowSizes } from './getWindowSizes';\nimport { isFixed } from './isFixed';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundaries(\n target: HTMLElement,\n host: HTMLElement,\n padding = 0,\n boundariesElement: string,\n fixedPosition = false\n): Partial<Offsets> {\n // NOTE: 1 DOM access here\n\n let boundaries: Partial<Offsets> = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n } else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n\n return boundaries;\n}\n","/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nimport { getBoundaries } from './getBoundaries';\nimport { Offsets, PlacementForBs5 } from '../models';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nfunction getArea({ width, height }: { width: number; height: number }) {\n return width * height;\n}\n\nexport function computeAutoPlacement(\n placement: string,\n refRect: Offsets,\n target: HTMLElement,\n host: HTMLElement,\n allowedPositions = ['top', 'bottom', 'right', 'left'],\n boundariesElement = 'viewport',\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n\n type Rects = { top: Offsets; right: Offsets; bottom: Offsets; left: Offsets };\n const rects: Rects = {\n top: {\n width: boundaries?.width ?? 0,\n height: (refRect?.top ?? 0) - (boundaries?.top ?? 0)\n },\n right: {\n width: (boundaries?.right ?? 0) - (refRect?.right ?? 0),\n height: boundaries?.height ?? 0\n },\n bottom: {\n width: boundaries?.width ?? 0,\n height: (boundaries?.bottom ?? 0) - (refRect?.bottom ?? 0)\n },\n left: {\n width: (refRect.left ?? 0) - (boundaries?.left ?? 0),\n height: boundaries?.height ?? 0\n }\n };\n\n const sortedAreas = Object.keys(rects)\n .map((key) => ({\n position: key,\n ...rects[key as keyof Rects],\n area: getArea(rects[key as keyof Rects] as { width: number; height: number })\n }))\n .sort((a, b) => b.area - a.area);\n\n let filteredAreas = sortedAreas.filter(({ width, height }) => {\n return width >= target.clientWidth && height >= target.clientHeight;\n });\n\n filteredAreas = filteredAreas.filter(({ position }) => {\n return allowedPositions.some((allowedPosition: string) => {\n return allowedPosition === position;\n });\n });\n\n const computedPlacement: string = filteredAreas.length > 0 ? filteredAreas[0].position : sortedAreas[0].position;\n\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(\n /bs-tooltip-auto/g,\n `bs-tooltip-${\n getBsVer().isBs5 ? PlacementForBs5[computedPlacement as keyof typeof PlacementForBs5] : computedPlacement\n }`\n );\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import { Data, Offsets } from '../models';\n\nexport function getOffsets(data: Data): Offsets {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left ?? 0),\n top: Math.round(data.offsets.target.top ?? 0),\n bottom: Math.round(data.offsets.target.bottom ?? 0),\n right: Math.floor(data.offsets.target.right ?? 0)\n };\n}\n","/**\n * Get the opposite placement of the given one\n */\nexport function getOppositePlacement(placement: string): string {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched as keyof typeof hash]);\n}\n","/**\n * Get the opposite placement variation of the given one\n */\nexport function getOppositeVariation(variation: string) {\n if (variation === 'right') {\n return 'left';\n } else if (variation === 'left') {\n return 'right';\n }\n\n return variation;\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n */\nimport { Offsets } from '../models';\n\nconst parse = (value?: string, def = 0) => value ? parseFloat(value) : def;\nexport function getOuterSizes(element: HTMLElement): Offsets {\n const window = element.ownerDocument.defaultView;\n const styles = window?.getComputedStyle(element);\n const x = parse(styles?.marginTop) + parse(styles?.marginBottom);\n const y = parse(styles?.marginLeft) + parse(styles?.marginRight);\n\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n","/**\n * Get offsets to the reference element\n */\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { Offsets } from '../models';\n\nexport function getReferenceOffsets(\n target: HTMLElement,\n host: HTMLElement,\n fixedPosition?: boolean\n): Offsets {\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get offsets to the target\n */\nimport { getOppositePlacement } from './getOppositePlacement';\nimport { getOuterSizes } from './getOuterSizes';\nimport { Offsets } from '../models';\n\n\nexport function getTargetOffsets(\n target: HTMLElement,\n hostOffsets: Offsets,\n position: string\n): Offsets {\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n targetOffsets[mainSide as keyof typeof targetOffsets] =\n (hostOffsets[mainSide] ?? 0) +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n\n targetOffsets[secondarySide as keyof typeof targetOffsets] = placement === secondarySide\n ? (hostOffsets[secondarySide] ?? 0)- targetRect[secondaryMeasurement]\n : hostOffsets[getOppositePlacement(secondarySide) as keyof typeof hostOffsets] ?? 0;\n\n return targetOffsets;\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n */\nimport { Options } from '../models';\n\nexport function isModifierEnabled(options: Options, modifierName: string): boolean {\n return !!options.modifiers[modifierName as keyof typeof options.modifiers]?.enabled;\n}\n","import { getBsVer } from 'ngx-bootstrap/utils';\nimport { AvailbleBSPositions } from '../models';\n\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\n\nexport function checkPopoverMargin(placement: AvailbleBSPositions, checkPosition: 'top' | 'bottom' | 'start' | 'end'): boolean {\n if (!getBsVer().isBs5) {\n return false;\n }\n\n return availablePositions[checkPosition].includes(placement);\n}\n\nexport function checkMargins(placement: any): string {\n if (!getBsVer().isBs5) {\n return '';\n }\n\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n\n return '';\n}\n","/**\n * Update class for the given popper\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, PlacementForBs5 } from '../models';\nimport { checkMargins } from './checkMargin';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nexport function updateContainerClass(data: Data, renderer?: Renderer2): void {\n const target = data.instance.target;\n\n let containerClass = target.className;\n\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement as keyof typeof PlacementForBs5] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n\n return;\n }\n\n target.className = containerClass;\n}\n","/**\n * Set the style to the given popper\n */\nimport { Renderer2 } from '@angular/core';\n\nimport { isNumeric } from './isNumeric';\n\nexport function setStyles(element: HTMLElement | null, styles?: Record<string, string|number|HTMLElement>, renderer?: Renderer2) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach((prop) => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop] as string)) {\n unit = 'px';\n }\n\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element.style as any)[prop] = String(styles[prop]) + unit;\n });\n}\n","import { getClientRect, getOuterSizes, getStyleComputedProperty } from '../utils';\nimport { Data } from '../models';\n\nexport function arrow(data: Data) {\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement: HTMLElement | null = data.instance.target.querySelector('.arrow');\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase() as keyof typeof targetOffsets;\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n\n // top/left side\n if ((data.offsets.host[opSide] ?? 0) - arrowElementSize < (targetOffsets[side] ?? 0)) {\n (targetOffsets)[side] -=\n (targetOffsets[side] ?? 0) - ((data.offsets.host[opSide] ?? 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number((data).offsets.host[side]) + Number(arrowElementSize) > (targetOffsets[opSide] ?? 0)) {\n (targetOffsets)[side] +=\n Number((data).offsets.host[side]) + Number(arrowElementSize) - Number((targetOffsets)[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target) as unknown as Record<string, string>;\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n\n // compute center of the target\n let center: number;\n if (!placementVariation) {\n center = Number((data).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n } else {\n const targetBorderRadius = parseFloat(css[\"borderRadius\"]) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number((data).offsets.host[side]) + targetSideArrowOffset :\n Number((data).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n\n let sideValue =\n center - (targetOffsets[side] ?? 0) - targetMarginSide - targetBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n\n data.instance.arrow = arrowElement;\n\n return data;\n}\n","import { Data } from '../models';\nimport {\n computeAutoPlacement,\n getBoundaries,\n getClientRect,\n getOppositeVariation,\n getTargetOffsets,\n isModifierEnabled\n} from '../utils';\n\nexport function flip(data: Data): Data {\n data.offsets.target = getClientRect(data.offsets.target);\n\n if (!isModifierEnabled(data.options, 'flip')) {\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n 'viewport',\n false // positionFixed\n );\n\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split(' ')[0];\n\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef =\n (placement === 'left' &&\n Math.floor(data.offsets.target.right ?? 0) > Math.floor(data.offsets.host.left ?? 0)) ||\n (placement === 'right' &&\n Math.floor(data.offsets.target.left ?? 0) < Math.floor(data.offsets.host.right ?? 0)) ||\n (placement === 'top' &&\n Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(data.offsets.host.top ?? 0)) ||\n (placement === 'bottom' &&\n Math.floor(data.offsets.target.top ?? 0) < Math.floor(data.offsets.host.bottom ?? 0));\n\n const overflowsLeft = Math.floor(data.offsets.target.left ?? 0) < Math.floor(boundaries.left ?? 0);\n const overflowsRight = Math.floor(data.offsets.target.right ?? 0) > Math.floor(boundaries.right ?? 0);\n const overflowsTop = Math.floor(data.offsets.target.top ?? 0) < Math.floor(boundaries.top ?? 0);\n const overflowsBottom = Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(boundaries.bottom ?? 0);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation =\n ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? ` ${variation}` : '');\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n }\n });\n\n return data;\n}\n","import {\n computeAutoPlacement,\n getReferenceOffsets,\n getTargetOffsets\n} from '../utils';\n\nimport { Data, Options } from '../models';\n\nexport function initData(\n targetElement: HTMLElement|null, hostElement: HTMLElement|null, position: string, options?: Options\n): Data|undefined {\n\n if (!targetElement || !hostElement) {\n return ;\n }\n\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/)\n && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n\n const placementAuto = !!position.match(/auto/g);\n\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n\n placement = computeAutoPlacement(\n placement,\n hostElPosition,\n targetElement,\n hostElement,\n options ? options.allowedPositions : undefined\n );\n\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n\n return {\n options: options || {modifiers: {}},\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n","import { getBoundaries, isModifierEnabled } from '../utils';\nimport { Data, Offsets } from '../models';\n\nexport function preventOverflow(data: Data) {\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n data.options.modifiers.preventOverflow?.boundariesElement || 'scrollParent',\n false // positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n\n const order = ['left', 'right', 'top', 'bottom'];\n\n const check = {\n primary(placement: keyof Offsets) {\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0)) {\n value = Math.max(data.offsets.target[placement] ?? 0, boundaries[placement] ?? 0);\n }\n\n return { [placement]: value };\n },\n secondary(placement: keyof Offsets) {\n const isPlacementHorizontal = placement === 'right';\n const mainSide = isPlacementHorizontal ? 'left' : 'top';\n const measurement = isPlacementHorizontal ? 'width' : 'height';\n let value = data.offsets.target[mainSide];\n\n // escapeWithReference\n if ((data.offsets.target[placement] ?? 0) > (boundaries[placement] ?? 0)) {\n value = Math.min(\n data.offsets.target[mainSide] ?? 0,\n (boundaries[placement] ?? 0) - data.offsets.target[measurement]\n );\n }\n\n return { [mainSide]: value };\n }\n };\n\n order.forEach((placement) => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n\n data.offsets.target = {\n ...data.offsets.target,\n ...side(placement as keyof Offsets)\n };\n });\n\n return data;\n}\n","import { Data } from '../models';\n\nexport function shift(data: Data): Data {\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n\n if (shiftVariation) {\n const { host, target } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: (host[side] ?? 0) + host[measurement] - target[measurement]\n }\n };\n\n data.offsets.target = {\n ...target, ...{\n [side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])\n }\n };\n }\n\n return data;\n}\n","/**\n * @copyright Valor Software\n * @copyright Federico Zivolo and contributors\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, Offsets, Options, MapPlacementInToRL } from './models';\n\nimport { arrow, flip, initData, preventOverflow, shift } from './modifiers';\n\nimport { getOffsets, getReferenceOffsets, setStyles, updateContainerClass } from './utils';\n\n\nexport class Positioning {\n position(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return this.offset(hostElement, targetElement/*, false*/);\n }\n\n offset(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return getReferenceOffsets(targetElement, hostElement);\n }\n\n positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n position: string,\n appendToBody?: boolean,\n options?: Options\n ): Data | undefined {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position as keyof typeof MapPlacementInToRL];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n\n return chainOfModifiers.reduce(\n (modifiedData, modifier) => modifier(modifiedData),\n data\n );\n }\n}\n\nconst positionService = new Positioning();\n\nexport function positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n placement: string,\n appendToBody?: boolean,\n options?: Options,\n renderer?: Renderer2\n): void {\n\n const data = positionService.positionElements(\n hostElement,\n targetElement,\n placement,\n appendToBody,\n options\n );\n\n if (!data) {\n return;\n }\n\n const offsets = getOffsets(data);\n\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n\n updateContainerClass(data, renderer);\n}\n","import { Injectable, ElementRef, RendererFactory2, Inject, PLATFORM_ID, NgZone } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { positionElements } from './ng-positioning';\n\nimport { fromEvent, merge, of, animationFrameScheduler, Subject, Observable } from 'rxjs';\nimport { Options } from './models';\n\n\nexport interface PositioningOptions {\n /** The DOM element, ElementRef, or a selector string of an element which will be moved */\n element?: HTMLElement | ElementRef | string;\n\n /** The DOM element, ElementRef, or a selector string of an element which the element will be attached to */\n target?: HTMLElement | ElementRef | string;\n\n /**\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\n * not yet supported:\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\n * - horiz-attachment can be any of 'left', 'center', 'right'\n */\n attachment?: string;\n\n /** A string similar to `attachment`. The one difference is that, if it's not provided,\n * `targetAttachment` will assume the mirror image of `attachment`.\n */\n targetAttachment?: string;\n\n /** A string of the form 'vert-offset horiz-offset'\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\n */\n offset?: string;\n\n /** A string similar to `offset`, but referring to the offset of the target */\n targetOffset?: string;\n\n /** If true component will be attached to body */\n appendToBody?: boolean;\n}\n\n\n@Injectable({providedIn: 'root'})\nexport class PositioningService {\n private options?: Options;\n private update$$ = new Subject<null>();\n private positionElements = new Map();\n private triggerEvent$?: Observable<number|Event|null>;\n private isDisabled = false;\n\n constructor(\n ngZone: NgZone,\n rendererFactory: RendererFactory2,\n @Inject(PLATFORM_ID) platformId: number\n ) {\n\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(\n fromEvent(window, 'scroll', { passive: true }),\n fromEvent(window, 'resize', { passive: true }),\n of(0, animationFrameScheduler),\n this.update$$\n );\n\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach((positionElement: any) => {\n positionElements(\n _getHtmlElement(positionElement.target),\n _getHtmlElement(positionElement.element),\n positionElement.attachment,\n positionElement.appendToBody,\n this.options,\n rendererFactory.createRenderer(null, null)\n );\n });\n });\n });\n }\n }\n\n position(options: PositioningOptions): void {\n this.addPositionElement(options);\n }\n\n get event$(): Observable<number|Event|null>|undefined {\n return this.triggerEvent$;\n }\n\n disable(): void {\n this.isDisabled = true;\n }\n\n enable(): void {\n this.isDisabled = false;\n }\n\n addPositionElement(options: PositioningOptions): void {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n\n calcPosition(): void {\n this.update$$.next(null);\n }\n\n deletePositionElement(elRef: ElementRef): void {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n\n setOptions(options: Options) {\n this.options = options;\n }\n}\n\nfunction _getHtmlElement(element?: HTMLElement | ElementRef | string): HTMLElement | null {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n\n return element ?? null;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-positioning.mjs","sources":["../esm2020/models/index.mjs","../esm2020/utils/getStyleComputedProperty.mjs","../esm2020/utils/getOffsetParent.mjs","../esm2020/utils/isOffsetContainer.mjs","../esm2020/utils/getRoot.mjs","../esm2020/utils/findCommonOffsetParent.mjs","../esm2020/utils/getFixedPositionOffsetParent.mjs","../esm2020/utils/getBordersSize.mjs","../esm2020/utils/getWindowSizes.mjs","../esm2020/utils/getClientRect.mjs","../esm2020/utils/isNumeric.mjs","../esm2020/utils/getBoundingClientRect.mjs","../esm2020/utils/getParentNode.mjs","../esm2020/utils/getScrollParent.mjs","../esm2020/utils/getOffsetRectRelativeToArbitraryNode.mjs","../esm2020/utils/getScroll.mjs","../esm2020/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs","../esm2020/utils/isFixed.mjs","../esm2020/utils/getBoundaries.mjs","../esm2020/utils/computeAutoPlacement.mjs","../esm2020/utils/getOffsets.mjs","../esm2020/utils/getOppositePlacement.mjs","../esm2020/utils/getOppositeVariation.mjs","../esm2020/utils/getOuterSizes.mjs","../esm2020/utils/getReferenceOffsets.mjs","../esm2020/utils/getTargetOffsets.mjs","../esm2020/utils/isModifierEnabled.mjs","../esm2020/utils/checkMargin.mjs","../esm2020/utils/updateContainerClass.mjs","../esm2020/utils/setStyles.mjs","../esm2020/modifiers/arrow.mjs","../esm2020/modifiers/flip.mjs","../esm2020/modifiers/initData.mjs","../esm2020/modifiers/preventOverflow.mjs","../esm2020/modifiers/shift.mjs","../esm2020/ng-positioning.mjs","../esm2020/positioning.service.mjs","../esm2020/ngx-bootstrap-positioning.mjs"],"sourcesContent":["export var MapPlacementInToRL;\n(function (MapPlacementInToRL) {\n MapPlacementInToRL[\"top\"] = \"top\";\n MapPlacementInToRL[\"bottom\"] = \"bottom\";\n MapPlacementInToRL[\"left\"] = \"left\";\n MapPlacementInToRL[\"right\"] = \"right\";\n MapPlacementInToRL[\"auto\"] = \"auto\";\n MapPlacementInToRL[\"end\"] = \"right\";\n MapPlacementInToRL[\"start\"] = \"left\";\n MapPlacementInToRL[\"top left\"] = \"top left\";\n MapPlacementInToRL[\"top right\"] = \"top right\";\n MapPlacementInToRL[\"right top\"] = \"right top\";\n MapPlacementInToRL[\"right bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom right\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom left\"] = \"bottom left\";\n MapPlacementInToRL[\"left bottom\"] = \"left bottom\";\n MapPlacementInToRL[\"left top\"] = \"left top\";\n MapPlacementInToRL[\"top start\"] = \"top left\";\n MapPlacementInToRL[\"top end\"] = \"top right\";\n MapPlacementInToRL[\"end top\"] = \"right top\";\n MapPlacementInToRL[\"end bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom end\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom start\"] = \"bottom left\";\n MapPlacementInToRL[\"start bottom\"] = \"start bottom\";\n MapPlacementInToRL[\"start top\"] = \"left top\";\n})(MapPlacementInToRL || (MapPlacementInToRL = {}));\nexport var PlacementForBs5;\n(function (PlacementForBs5) {\n PlacementForBs5[\"top\"] = \"top\";\n PlacementForBs5[\"bottom\"] = \"bottom\";\n PlacementForBs5[\"left\"] = \"start\";\n PlacementForBs5[\"right\"] = \"end\";\n PlacementForBs5[\"auto\"] = \"auto\";\n PlacementForBs5[\"end\"] = \"end\";\n PlacementForBs5[\"start\"] = \"start\";\n PlacementForBs5[\"top left\"] = \"top start\";\n PlacementForBs5[\"top right\"] = \"top end\";\n PlacementForBs5[\"right top\"] = \"end top\";\n PlacementForBs5[\"right bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom right\"] = \"bottom end\";\n PlacementForBs5[\"bottom left\"] = \"bottom start\";\n PlacementForBs5[\"left bottom\"] = \"start bottom\";\n PlacementForBs5[\"left top\"] = \"start top\";\n PlacementForBs5[\"top start\"] = \"top start\";\n PlacementForBs5[\"top end\"] = \"top end\";\n PlacementForBs5[\"end top\"] = \"end top\";\n PlacementForBs5[\"end bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom end\"] = \"bottom end\";\n PlacementForBs5[\"bottom start\"] = \"bottom start\";\n PlacementForBs5[\"start bottom\"] = \"start bottom\";\n PlacementForBs5[\"start top\"] = \"start top\";\n})(PlacementForBs5 || (PlacementForBs5 = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDQSxNQUFNLENBQU4sSUFBWSxrQkF3Qlg7QUF4QkQsV0FBWSxrQkFBa0I7SUFDNUIsaUNBQVcsQ0FBQTtJQUNYLHVDQUFpQixDQUFBO0lBQ2pCLG1DQUFhLENBQUE7SUFDYixxQ0FBZSxDQUFBO0lBQ2YsbUNBQWEsQ0FBQTtJQUNiLG1DQUFhLENBQUE7SUFDYixvQ0FBYyxDQUFBO0lBQ2QsMkNBQXVCLENBQUE7SUFDdkIsNkNBQXlCLENBQUE7SUFDekIsNkNBQXlCLENBQUE7SUFDekIsbURBQStCLENBQUE7SUFDL0IsbURBQStCLENBQUE7SUFDL0IsaURBQTZCLENBQUE7SUFDN0IsaURBQTZCLENBQUE7SUFDN0IsMkNBQXVCLENBQUE7SUFDdkIsNENBQXdCLENBQUE7SUFDeEIsMkNBQXVCLENBQUE7SUFDdkIsMkNBQXVCLENBQUE7SUFDdkIsaURBQTZCLENBQUE7SUFDN0IsaURBQTZCLENBQUE7SUFDN0Isa0RBQThCLENBQUE7SUFDOUIsbURBQStCLENBQUE7SUFDL0IsNENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQXhCVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBd0I3QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBd0JYO0FBeEJELFdBQVksZUFBZTtJQUN6Qiw4QkFBVyxDQUFBO0lBQ1gsb0NBQWlCLENBQUE7SUFDakIsaUNBQWMsQ0FBQTtJQUNkLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGtDQUFlLENBQUE7SUFDZix5Q0FBd0IsQ0FBQTtJQUN4Qix3Q0FBdUIsQ0FBQTtJQUN2Qix3Q0FBdUIsQ0FBQTtJQUN2Qiw4Q0FBNkIsQ0FBQTtJQUM3Qiw4Q0FBNkIsQ0FBQTtJQUM3QiwrQ0FBOEIsQ0FBQTtJQUM5QiwrQ0FBOEIsQ0FBQTtJQUM5Qix5Q0FBd0IsQ0FBQTtJQUN4QiwwQ0FBeUIsQ0FBQTtJQUN6QixzQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBcUIsQ0FBQTtJQUNyQiw0Q0FBMkIsQ0FBQTtJQUMzQiw0Q0FBMkIsQ0FBQTtJQUMzQixnREFBK0IsQ0FBQTtJQUMvQixnREFBK0IsQ0FBQTtJQUMvQiwwQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBeEJXLGVBQWUsS0FBZixlQUFlLFFBd0IxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT2Zmc2V0cyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBib3R0b20/OiBudW1iZXI7XG4gIGxlZnQ/OiBudW1iZXI7XG4gIHJpZ2h0PzogbnVtYmVyO1xuICB0b3A/OiBudW1iZXI7XG4gIG1hcmdpblRvcD86IG51bWJlcjtcbiAgbWFyZ2luTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcbiAgb3B0aW9uczogT3B0aW9ucztcbiAgaW5zdGFuY2U6IHtcbiAgICB0YXJnZXQ6IEhUTUxFbGVtZW50O1xuICAgIGhvc3Q6IEhUTUxFbGVtZW50O1xuICAgIGFycm93PzogSFRNTEVsZW1lbnQ7XG4gIH07XG4gIG9mZnNldHM6IHtcbiAgICB0YXJnZXQ6IE9mZnNldHM7XG4gICAgaG9zdDogT2Zmc2V0cztcbiAgICBhcnJvdz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IEhUTUxFbGVtZW50PjtcbiAgfTtcbiAgcG9zaXRpb25GaXhlZDogYm9vbGVhbjtcbiAgcGxhY2VtZW50OiBzdHJpbmc7XG4gIHBsYWNlbWVudEF1dG86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIHBsYWNlbWVudD86IHN0cmluZztcbiAgbW9kaWZpZXJzOiB7XG4gICAgZmxpcD86IHtcbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgICBwcmV2ZW50T3ZlcmZsb3c/OiB7XG4gICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgYm91bmRhcmllc0VsZW1lbnQ/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgYWxsb3dlZFBvc2l0aW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBNYXBQbGFjZW1lbnRJblRvUkwge1xuICB0b3AgPSAndG9wJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG4gIGxlZnQgPSAnbGVmdCcsXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgYXV0byA9ICdhdXRvJyxcbiAgZW5kID0gJ3JpZ2h0JyxcbiAgc3RhcnQgPSAnbGVmdCcsXG4gICd0b3AgbGVmdCcgPSAndG9wIGxlZnQnLFxuICAndG9wIHJpZ2h0JyA9ICd0b3AgcmlnaHQnLFxuICAncmlnaHQgdG9wJyA9ICdyaWdodCB0b3AnLFxuICAncmlnaHQgYm90dG9tJyA9ICdyaWdodCBib3R0b20nLFxuICAnYm90dG9tIHJpZ2h0JyA9ICdib3R0b20gcmlnaHQnLFxuICAnYm90dG9tIGxlZnQnID0gJ2JvdHRvbSBsZWZ0JyxcbiAgJ2xlZnQgYm90dG9tJyA9ICdsZWZ0IGJvdHRvbScsXG4gICdsZWZ0IHRvcCcgPSAnbGVmdCB0b3AnLFxuICAndG9wIHN0YXJ0JyA9ICd0b3AgbGVmdCcsXG4gICd0b3AgZW5kJyA9ICd0b3AgcmlnaHQnLFxuICAnZW5kIHRvcCcgPSAncmlnaHQgdG9wJyxcbiAgJ2VuZCBib3R0b20nID0gJ3JpZ2h0IGJvdHRvbScsXG4gICdib3R0b20gZW5kJyA9ICdib3R0b20gcmlnaHQnLFxuICAnYm90dG9tIHN0YXJ0JyA9ICdib3R0b20gbGVmdCcsXG4gICdzdGFydCBib3R0b20nID0gJ3N0YXJ0IGJvdHRvbScsXG4gICdzdGFydCB0b3AnID0gJ2xlZnQgdG9wJyxcbn1cblxuZXhwb3J0IGVudW0gUGxhY2VtZW50Rm9yQnM1IHtcbiAgdG9wID0gJ3RvcCcsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICBsZWZ0ID0gJ3N0YXJ0JyxcbiAgcmlnaHQgPSAnZW5kJyxcbiAgYXV0byA9ICdhdXRvJyxcbiAgZW5kID0gJ2VuZCcsXG4gIHN0YXJ0ID0gJ3N0YXJ0JyxcbiAgJ3RvcCBsZWZ0JyA9ICd0b3Agc3RhcnQnLFxuICAndG9wIHJpZ2h0JyA9ICd0b3AgZW5kJyxcbiAgJ3JpZ2h0IHRvcCcgPSAnZW5kIHRvcCcsXG4gICdyaWdodCBib3R0b20nID0gJ2VuZCBib3R0b20nLFxuICAnYm90dG9tIHJpZ2h0JyA9ICdib3R0b20gZW5kJyxcbiAgJ2JvdHRvbSBsZWZ0JyA9ICdib3R0b20gc3RhcnQnLFxuICAnbGVmdCBib3R0b20nID0gJ3N0YXJ0IGJvdHRvbScsXG4gICdsZWZ0IHRvcCcgPSAnc3RhcnQgdG9wJyxcbiAgJ3RvcCBzdGFydCcgPSAndG9wIHN0YXJ0JyxcbiAgJ3RvcCBlbmQnID0gJ3RvcCBlbmQnLFxuICAnZW5kIHRvcCcgPSAnZW5kIHRvcCcsXG4gICdlbmQgYm90dG9tJyA9ICdlbmQgYm90dG9tJyxcbiAgJ2JvdHRvbSBlbmQnID0gJ2JvdHRvbSBlbmQnLFxuICAnYm90dG9tIHN0YXJ0JyA9ICdib3R0b20gc3RhcnQnLFxuICAnc3RhcnQgYm90dG9tJyA9ICdzdGFydCBib3R0b20nLFxuICAnc3RhcnQgdG9wJyA9ICdzdGFydCB0b3AnLFxufVxuXG5leHBvcnQgdHlwZSBBdmFpbGJsZUJTUG9zaXRpb25zID0gJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYXV0bycgfCAndG9wIGxlZnQnIHwgJ3RvcCByaWdodCcgfCAncmlnaHQgdG9wJyB8ICdyaWdodCBib3R0b20nIHwgJ2JvdHRvbSByaWdodCcgfCAnYm90dG9tIGxlZnQnIHwgJ2xlZnQgYm90dG9tJyB8ICdsZWZ0IHRvcCcgfCAnc3RhcnQnIHwgJ2VuZCcgfCAndG9wIHN0YXJ0JyB8ICd0b3AgZW5kJyB8ICdlbmQgdG9wJyB8ICdlbmQgYm90dG9tJyB8ICdib3R0b20gZW5kJyB8ICdib3R0b20gc3RhcnQnIHwgJ3N0YXJ0IGJvdHRvbScgfCAnc3RhcnQgdG9wJztcblxuIl19","export function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window?.getComputedStyle(element, null);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBZ0IsRUFBRSxRQUFpQjtJQUMxRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCwwQkFBMEI7SUFDMUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDakQsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVwRCw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0IENTUyBjb21wdXRlZCBwcm9wZXJ0eSBvZiB0aGUgZ2l2ZW4gZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQ6IEVsZW1lbnQpOiBDU1NTdHlsZURlY2xhcmF0aW9uO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbGVtZW50OiBFbGVtZW50LCBwcm9wZXJ0eT86IHN0cmluZyk6IHN0cmluZyB8IHN0cmluZ1tdO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbGVtZW50OiBFbGVtZW50LCBwcm9wZXJ0eT86IHN0cmluZyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7XG4gIGlmIChlbGVtZW50Lm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIC8vIE5PVEU6IDEgRE9NIGFjY2VzcyBoZXJlXG4gIGNvbnN0IHdpbmRvdyA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgY29uc3QgY3NzID0gd2luZG93Py5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gcHJvcGVydHkgPyBjc3MgJiYgY3NzW3Byb3BlcnR5XSA6IGNzcztcbn1cbiJdfQ==","/**\n * Returns the offset parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nexport function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n const noOffsetParent = null;\n // NOTE: 1 DOM access here\n let offsetParent = element?.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n let sibling = void 0;\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n // todo: valorkin fix\n sibling = element.nextElementSibling;\n offsetParent = sibling.offsetParent;\n }\n const nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (offsetParent &&\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0UGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldE9mZnNldFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBb0I7SUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQztLQUNqQztJQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztJQUU1QiwwQkFBMEI7SUFDMUIsSUFBSSxZQUFZLEdBQUcsT0FBTyxFQUFFLFlBQVksQ0FBQztJQUV6Qyx3REFBd0Q7SUFDeEQsSUFBSSxPQUFPLEdBQTRCLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE9BQU8sWUFBWSxLQUFLLGNBQWM7V0FDNUIsT0FBTyxDQUFDLGtCQUFrQjtXQUMxQixPQUFPLEtBQUssT0FBTyxDQUFDLGtCQUFrQixFQUFFO1FBRTlDLHFCQUFxQjtRQUNyQixPQUFPLEdBQUcsT0FBTyxDQUFDLGtCQUFpQyxDQUFDO1FBQ3BELFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3JDO0lBRUgsTUFBTSxRQUFRLEdBQUcsWUFBWSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFFdkQsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssTUFBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7UUFDM0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0tBQ25GO0lBRUQsZ0VBQWdFO0lBQ2hFLElBQ0UsWUFBWTtRQUNaLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEtBQUssUUFBUSxFQUMvRDtRQUNBLE9BQU8sZUFBZSxDQUFDLFlBQTJCLENBQUMsQ0FBQztLQUNyRDtJQUVELE9BQU8sWUFBMkIsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRoZSBvZmZzZXQgcGFyZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50XG4gKi9cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0IG5vT2Zmc2V0UGFyZW50ID0gbnVsbDtcblxuICAvLyBOT1RFOiAxIERPTSBhY2Nlc3MgaGVyZVxuICBsZXQgb2Zmc2V0UGFyZW50ID0gZWxlbWVudD8ub2Zmc2V0UGFyZW50O1xuXG4gIC8vIFNraXAgaGlkZGVuIGVsZW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYW4gb2Zmc2V0UGFyZW50XG4gIGxldCBzaWJsaW5nOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHZvaWQgMDtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ID09PSBub09mZnNldFBhcmVudFxuICAgICAgICAgJiYgZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgICYmIHNpYmxpbmcgIT09IGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKSB7XG5cbiAgICAgIC8vIHRvZG86IHZhbG9ya2luIGZpeFxuICAgICAgc2libGluZyA9IGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgICAgb2Zmc2V0UGFyZW50ID0gc2libGluZy5vZmZzZXRQYXJlbnQ7XG4gICAgfVxuXG4gIGNvbnN0IG5vZGVOYW1lID0gb2Zmc2V0UGFyZW50ICYmIG9mZnNldFBhcmVudC5ub2RlTmFtZTtcblxuICBpZiAoIW5vZGVOYW1lIHx8IG5vZGVOYW1lID09PSAnQk9EWScgfHwgbm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgIHJldHVybiBzaWJsaW5nID8gc2libGluZy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIC8vIC5vZmZzZXRQYXJlbnQgd2lsbCByZXR1cm4gdGhlIGNsb3Nlc3QgVEgsIFREIG9yIFRBQkxFIGluIGNhc2VcbiAgaWYgKFxuICAgIG9mZnNldFBhcmVudCAmJlxuICAgIFsnVEgnLCAnVEQnLCAnVEFCTEUnXS5pbmRleE9mKG9mZnNldFBhcmVudC5ub2RlTmFtZSkgIT09IC0xICYmXG4gICAgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KG9mZnNldFBhcmVudCwgJ3Bvc2l0aW9uJykgPT09ICdzdGF0aWMnXG4gICkge1xuICAgIHJldHVybiBnZXRPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBvZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XG59XG4iXX0=","import { getOffsetParent } from './getOffsetParent';\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNPZmZzZXRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvaXNPZmZzZXRDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELHFCQUFxQjtBQUNyQiw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQVk7SUFDNUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM3QixJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7UUFDdkIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sQ0FDTCxRQUFRLEtBQUssTUFBTSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxPQUFPLENBQzlFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0T2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9nZXRPZmZzZXRQYXJlbnQnO1xuXG4vLyB0b2RvOiB2YWxvcmtpbiBmaXhcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRDb250YWluZXIoZWxlbWVudDogYW55KSB7XG4gIGNvbnN0IHsgbm9kZU5hbWUgfSA9IGVsZW1lbnQ7XG4gIGlmIChub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBub2RlTmFtZSA9PT0gJ0hUTUwnIHx8IGdldE9mZnNldFBhcmVudChlbGVtZW50LmZpcnN0RWxlbWVudENoaWxkKSA9PT0gZWxlbWVudFxuICApO1xufVxuIl19","/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nexport function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Um9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRSb290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFxQjtJQUMzQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1FBQzVCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNqQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZHMgdGhlIHJvb3Qgbm9kZSAoZG9jdW1lbnQsIHNoYWRvd0RPTSByb290KSBvZiB0aGUgZ2l2ZW4gZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdChub2RlOiBOb2RlfFNoYWRvd1Jvb3QpOiBOb2RlfFNoYWRvd1Jvb3Qge1xuICBpZiAobm9kZS5wYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGdldFJvb3Qobm9kZS5wYXJlbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuIl19","/**\n * Finds the offset parent common to the two provided nodes\n */\nimport { isOffsetContainer } from './isOffsetContainer';\nimport { getRoot } from './getRoot';\nimport { getOffsetParent } from './getOffsetParent';\nexport function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer;\n // Both nodes are inside #document\n if ((element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n }\n else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZENvbW1vbk9mZnNldFBhcmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9maW5kQ29tbW9uT2Zmc2V0UGFyZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQXFCLEVBQUUsUUFBcUI7SUFDakYsZ0dBQWdHO0lBQ2hHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtRQUN0RSxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUM7S0FDakM7SUFFRCwrRUFBK0U7SUFDN0UsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQztJQUU5RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzFDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFeEMsZ0NBQWdDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVyQixxQkFBcUI7SUFDckIsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQWlELENBQUM7SUFFeEYsa0NBQWtDO0lBQ2xDLElBQ0UsQ0FBQyxRQUFRLEtBQUssdUJBQXVCO1FBQ25DLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQztRQUN2QyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUNuQjtRQUNBLElBQUksaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUM5QyxPQUFPLHVCQUF1QixDQUFDO1NBQ2hDO1FBRUQsT0FBTyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQUNqRDtJQUVELHVEQUF1RDtJQUN2RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFlLENBQUM7SUFDckQsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO1FBQ3JCLE9BQU8sc0JBQXNCLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDM0U7U0FBTTtRQUNMLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxFQUFHLE9BQU8sQ0FBQyxRQUFRLENBQWdCLENBQUMsSUFBbUIsQ0FBQyxDQUFDO0tBQ2hHO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZHMgdGhlIG9mZnNldCBwYXJlbnQgY29tbW9uIHRvIHRoZSB0d28gcHJvdmlkZWQgbm9kZXNcbiAqL1xuaW1wb3J0IHsgaXNPZmZzZXRDb250YWluZXIgfSBmcm9tICcuL2lzT2Zmc2V0Q29udGFpbmVyJztcbmltcG9ydCB7IGdldFJvb3QgfSBmcm9tICcuL2dldFJvb3QnO1xuaW1wb3J0IHsgZ2V0T2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9nZXRPZmZzZXRQYXJlbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbW1vbk9mZnNldFBhcmVudChlbGVtZW50MTogSFRNTEVsZW1lbnQsIGVsZW1lbnQyOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgLy8gVGhpcyBjaGVjayBpcyBuZWVkZWQgdG8gYXZvaWQgZXJyb3JzIGluIGNhc2Ugb25lIG9mIHRoZSBlbGVtZW50cyBpc24ndCBkZWZpbmVkIGZvciBhbnkgcmVhc29uXG4gIGlmICghZWxlbWVudDEgfHwgIWVsZW1lbnQxLm5vZGVUeXBlIHx8ICFlbGVtZW50MiB8fCAhZWxlbWVudDIubm9kZVR5cGUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgLy8gSGVyZSB3ZSBtYWtlIHN1cmUgdG8gZ2l2ZSBhcyBcInN0YXJ0XCIgdGhlIGVsZW1lbnQgdGhhdCBjb21lcyBmaXJzdCBpbiB0aGUgRE9NXG4gICAgY29uc3Qgb3JkZXIgPSBlbGVtZW50MS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50MikgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORztcblxuICBjb25zdCBzdGFydCA9IG9yZGVyID8gZWxlbWVudDEgOiBlbGVtZW50MjtcbiAgY29uc3QgZW5kID0gb3JkZXIgPyBlbGVtZW50MiA6IGVsZW1lbnQxO1xuXG4gIC8vIEdldCBjb21tb24gYW5jZXN0b3IgY29udGFpbmVyXG4gIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgcmFuZ2Uuc2V0U3RhcnQoc3RhcnQsIDApO1xuICByYW5nZS5zZXRFbmQoZW5kLCAwKTtcblxuICAvLyB0b2RvOiB2YWxvcmtpbiBmaXhcbiAgY29uc3QgY29tbW9uQW5jZXN0b3JDb250YWluZXIgPSByYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lciBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50O1xuXG4gIC8vIEJvdGggbm9kZXMgYXJlIGluc2lkZSAjZG9jdW1lbnRcbiAgaWYgKFxuICAgIChlbGVtZW50MSAhPT0gY29tbW9uQW5jZXN0b3JDb250YWluZXIgJiZcbiAgICAgIGVsZW1lbnQyICE9PSBjb21tb25BbmNlc3RvckNvbnRhaW5lcikgfHxcbiAgICBzdGFydC5jb250YWlucyhlbmQpXG4gICkge1xuICAgIGlmIChpc09mZnNldENvbnRhaW5lcihjb21tb25BbmNlc3RvckNvbnRhaW5lcikpIHtcbiAgICAgIHJldHVybiBjb21tb25BbmNlc3RvckNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0T2Zmc2V0UGFyZW50KGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKTtcbiAgfVxuXG4gIC8vIG9uZSBvZiB0aGUgbm9kZXMgaXMgaW5zaWRlIHNoYWRvd0RPTSwgZmluZCB3aGljaCBvbmVcbiAgY29uc3QgZWxlbWVudDFyb290ID0gZ2V0Um9vdChlbGVtZW50MSkgYXMgU2hhZG93Um9vdDtcbiAgaWYgKGVsZW1lbnQxcm9vdC5ob3N0KSB7XG4gICAgcmV0dXJuIGZpbmRDb21tb25PZmZzZXRQYXJlbnQoZWxlbWVudDFyb290Lmhvc3QgYXMgSFRNTEVsZW1lbnQsIGVsZW1lbnQyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmluZENvbW1vbk9mZnNldFBhcmVudChlbGVtZW50MSwgKGdldFJvb3QoZWxlbWVudDIpIGFzIFNoYWRvd1Jvb3QpLmhvc3QgYXMgSFRNTEVsZW1lbnQpO1xuICB9XG59XG4iXX0=","/**\n * Finds the first parent of an element that has a transformed property defined\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nexport function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el?.parentElement && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEUsTUFBTSxVQUFVLDRCQUE0QixDQUFDLE9BQW9CO0lBQy9ELGdHQUFnRztJQUNoRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUM7S0FDaEM7SUFFRCxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBRS9CLE9BQU8sRUFBRSxFQUFFLGFBQWEsSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUssTUFBTSxFQUFFO1FBQ2hGLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kcyB0aGUgZmlyc3QgcGFyZW50IG9mIGFuIGVsZW1lbnQgdGhhdCBoYXMgYSB0cmFuc2Zvcm1lZCBwcm9wZXJ0eSBkZWZpbmVkXG4gKi9cblxuaW1wb3J0IHsgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5IH0gZnJvbSAnLi9nZXRTdHlsZUNvbXB1dGVkUHJvcGVydHknO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgLy8gVGhpcyBjaGVjayBpcyBuZWVkZWQgdG8gYXZvaWQgZXJyb3JzIGluIGNhc2Ugb25lIG9mIHRoZSBlbGVtZW50cyBpc24ndCBkZWZpbmVkIGZvciBhbnkgcmVhc29uXG4gIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgbGV0IGVsID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gIHdoaWxlIChlbD8ucGFyZW50RWxlbWVudCAmJiBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkoZWwsICd0cmFuc2Zvcm0nKSA9PT0gJ25vbmUnKSB7XG4gICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIGVsIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbn1cbiJdfQ==","/**\n * Helper to detect borders of a given element\n */\nexport function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return (parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`]));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm9yZGVyc1NpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvZ2V0Qm9yZGVyc1NpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQTJCLEVBQUUsSUFBWTtJQUN0RSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUVwRCxPQUFPLENBQ0wsVUFBVSxDQUFFLE1BQWdCLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBRSxNQUFnQixDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIHRvIGRldGVjdCBib3JkZXJzIG9mIGEgZ2l2ZW4gZWxlbWVudFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3JkZXJzU2l6ZShzdHlsZXM6IENTU1N0eWxlRGVjbGFyYXRpb24sIGF4aXM6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHNpZGVBID0gYXhpcyA9PT0gJ3gnID8gJ0xlZnQnIDogJ1RvcCc7XG4gIGNvbnN0IHNpZGVCID0gc2lkZUEgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQm90dG9tJztcblxuICByZXR1cm4gKFxuICAgIHBhcnNlRmxvYXQoKHN0eWxlcyBhcyBuZXZlcilbYGJvcmRlciR7c2lkZUF9V2lkdGhgXSkgK1xuICAgIHBhcnNlRmxvYXQoKHN0eWxlcyBhcyBuZXZlcilbYGJvcmRlciR7c2lkZUJ9V2lkdGhgXSlcbiAgKTtcbn1cbiJdfQ==","function getSize(axis, body, html, computedStyle) {\n const _body = body;\n const _html = html;\n const _computedStyle = computedStyle;\n return Math.max(_body[`offset${axis}`], _body[`scroll${axis}`], _html[`client${axis}`], _html[`offset${axis}`], _html[`scroll${axis}`], 0);\n}\nexport function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = void 0;\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2luZG93U2l6ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvZ2V0V2luZG93U2l6ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxPQUFPLENBQUMsSUFBWSxFQUFFLElBQWlCLEVBQUUsSUFBaUIsRUFBRSxhQUFtQztJQUN0RyxNQUFNLEtBQUssR0FBRyxJQUF5QyxDQUFDO0lBQ3hELE1BQU0sS0FBSyxHQUFHLElBQWEsQ0FBQztJQUM1QixNQUFNLGNBQWMsR0FBRyxhQUFrRCxDQUFDO0lBRTFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWtCO0lBQy9DLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUN0QyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUU3QixPQUFPO1FBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUM7UUFDcEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUM7S0FDbkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRTaXplKGF4aXM6IHN0cmluZywgYm9keTogSFRNTEVsZW1lbnQsIGh0bWw6IEhUTUxFbGVtZW50LCBjb21wdXRlZFN0eWxlPzogQ1NTU3R5bGVEZWNsYXJhdGlvbikge1xuICBjb25zdCBfYm9keSA9IGJvZHkgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBjb25zdCBfaHRtbCA9IGh0bWwgYXMgbmV2ZXI7XG4gIGNvbnN0IF9jb21wdXRlZFN0eWxlID0gY29tcHV0ZWRTdHlsZSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgcmV0dXJuIE1hdGgubWF4KFxuICAgIF9ib2R5W2BvZmZzZXQke2F4aXN9YF0sXG4gICAgX2JvZHlbYHNjcm9sbCR7YXhpc31gXSxcbiAgICBfaHRtbFtgY2xpZW50JHtheGlzfWBdLFxuICAgIF9odG1sW2BvZmZzZXQke2F4aXN9YF0sXG4gICAgX2h0bWxbYHNjcm9sbCR7YXhpc31gXSxcbiAgICAwXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaW5kb3dTaXplcyhkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB2b2lkIDA7XG5cbiAgcmV0dXJuIHtcbiAgICBoZWlnaHQ6IGdldFNpemUoJ0hlaWdodCcsIGJvZHksIGh0bWwsIGNvbXB1dGVkU3R5bGUpLFxuICAgIHdpZHRoOiBnZXRTaXplKCdXaWR0aCcsIGJvZHksIGh0bWwsIGNvbXB1dGVkU3R5bGUpXG4gIH07XG59XG4iXX0=","export function getClientRect(offsets) {\n return {\n ...offsets,\n right: (offsets.left || 0) + offsets.width,\n bottom: (offsets.top || 0) + offsets.height\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2xpZW50UmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRDbGllbnRSZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBZ0I7SUFDNUMsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUs7UUFDMUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTTtLQUM1QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gZWxlbWVudCBvZmZzZXRzLCBnZW5lcmF0ZSBhbiBvdXRwdXQgc2ltaWxhciB0byBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqL1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRSZWN0KG9mZnNldHM6IE9mZnNldHMpOiBPZmZzZXRzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5vZmZzZXRzLFxuICAgIHJpZ2h0OiAob2Zmc2V0cy5sZWZ0IHx8IDApICsgb2Zmc2V0cy53aWR0aCxcbiAgICBib3R0b206IChvZmZzZXRzLnRvcCB8fCAwKSArIG9mZnNldHMuaGVpZ2h0XG4gIH07XG59XG4iXX0=","/**\n * Tells if a given input is a number\n */\nexport function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNOdW1lcmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2lzTnVtZXJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBUztJQUNqQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFXO0lBQ2xDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxpQkFBaUIsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZWxscyBpZiBhIGdpdmVuIGlucHV0IGlzIGEgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWMobjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBuICE9PSAnJyAmJiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUoTnVtYmVyKG4pKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZT86IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IE51bWJlcl0nO1xufVxuIl19","/**\n * Get bounding client rect of given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getBordersSize } from './getBordersSize';\nimport { getWindowSizes } from './getWindowSizes';\nimport { getClientRect } from './getClientRect';\nimport { isNumber } from './isNumeric';\nexport function getBoundingClientRect(element) {\n const rect = element.getBoundingClientRect();\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n // try {\n // if (isIE(10)) {\n // const scrollTop = getScroll(element, 'top');\n // const scrollLeft = getScroll(element, 'left');\n // if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n // rect.top += scrollTop;\n // rect.left += scrollLeft;\n // rect.bottom += scrollTop;\n // rect.right += scrollLeft;\n // }\n // }\n // } catch (e) {\n // return rect;\n // }\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = sizes?.width || element.clientWidth\n || isNumber(rect.right) && isNumber(result.left) && rect.right - result.left || 0;\n const height = sizes?.height || element.clientHeight\n || isNumber(rect.bottom) && isNumber(result.top) && rect.bottom - result.top || 0;\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CO0lBQ3hELE1BQU0sSUFBSSxHQUFZLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRXRELG9EQUFvRDtJQUNwRCw2Q0FBNkM7SUFDN0MsNkRBQTZEO0lBQzdELFFBQVE7SUFDUixvQkFBb0I7SUFDcEIsbURBQW1EO0lBQ25ELHFEQUFxRDtJQUNyRCxnSEFBZ0g7SUFDaEgsK0JBQStCO0lBQy9CLGlDQUFpQztJQUNqQyxrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLFFBQVE7SUFDUixNQUFNO0lBQ04sZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixJQUFJO0lBRUosSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUN6RyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxNQUFNLEdBQVk7UUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1FBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7UUFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUc7S0FDL0IsQ0FBQztJQUVGLHFDQUFxQztJQUNyQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlGLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLElBQUksT0FBTyxDQUFDLFdBQVc7V0FDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDcEYsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWTtXQUMvQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUVwRixJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNqRCxJQUFJLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUVsRCxnRkFBZ0Y7SUFDaEYseURBQXlEO0lBQ3pELElBQUksY0FBYyxJQUFJLGFBQWEsRUFBRTtRQUNuQyxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxhQUFhLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUU3QyxNQUFNLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQztLQUNoQztJQUVELE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBib3VuZGluZyBjbGllbnQgcmVjdCBvZiBnaXZlbiBlbGVtZW50XG4gKi9cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGdldEJvcmRlcnNTaXplIH0gZnJvbSAnLi9nZXRCb3JkZXJzU2l6ZSc7XG5pbXBvcnQgeyBnZXRXaW5kb3dTaXplcyB9IGZyb20gJy4vZ2V0V2luZG93U2l6ZXMnO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdCB9IGZyb20gJy4vZ2V0Q2xpZW50UmVjdCc7XG5pbXBvcnQgeyBPZmZzZXRzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi9pc051bWVyaWMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2Zmc2V0cyB7XG4gIGNvbnN0IHJlY3Q6IE9mZnNldHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vIElFMTAgMTAgRklYOiBQbGVhc2UsIGRvbid0IGFzaywgdGhlIGVsZW1lbnQgaXNuJ3RcbiAgLy8gY29uc2lkZXJlZCBpbiBET00gaW4gc29tZSBjaXJjdW1zdGFuY2VzLi4uXG4gIC8vIFRoaXMgaXNuJ3QgcmVwcm9kdWNpYmxlIGluIElFMTAgY29tcGF0aWJpbGl0eSBtb2RlIG9mIElFMTFcbiAgLy8gdHJ5IHtcbiAgLy8gICBpZiAoaXNJRSgxMCkpIHtcbiAgLy8gICAgIGNvbnN0IHNjcm9sbFRvcCA9IGdldFNjcm9sbChlbGVtZW50LCAndG9wJyk7XG4gIC8vICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gZ2V0U2Nyb2xsKGVsZW1lbnQsICdsZWZ0Jyk7XG4gIC8vICAgICBpZiAocmVjdCAmJiBpc051bWJlcihyZWN0LnRvcCkgJiYgaXNOdW1iZXIocmVjdC5sZWZ0KSAmJiBpc051bWJlcihyZWN0LmJvdHRvbSkgJiYgaXNOdW1iZXIocmVjdC5yaWdodCkpIHtcbiAgLy8gICAgICAgcmVjdC50b3AgKz0gc2Nyb2xsVG9wO1xuICAvLyAgICAgICByZWN0LmxlZnQgKz0gc2Nyb2xsTGVmdDtcbiAgLy8gICAgICAgcmVjdC5ib3R0b20gKz0gc2Nyb2xsVG9wO1xuICAvLyAgICAgICByZWN0LnJpZ2h0ICs9IHNjcm9sbExlZnQ7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9IGNhdGNoIChlKSB7XG4gIC8vICAgcmV0dXJuIHJlY3Q7XG4gIC8vIH1cblxuICBpZiAoIShyZWN0ICYmIGlzTnVtYmVyKHJlY3QudG9wKSAmJiBpc051bWJlcihyZWN0LmxlZnQpICYmIGlzTnVtYmVyKHJlY3QuYm90dG9tKSAmJiBpc051bWJlcihyZWN0LnJpZ2h0KSkpIHtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogT2Zmc2V0cyA9IHtcbiAgICBsZWZ0OiByZWN0LmxlZnQsXG4gICAgdG9wOiByZWN0LnRvcCxcbiAgICB3aWR0aDogcmVjdC5yaWdodCAtIHJlY3QubGVmdCxcbiAgICBoZWlnaHQ6IHJlY3QuYm90dG9tIC0gcmVjdC50b3BcbiAgfTtcblxuICAvLyBzdWJ0cmFjdCBzY3JvbGxiYXIgc2l6ZSBmcm9tIHNpemVzXG4gIGNvbnN0IHNpemVzID0gZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0hUTUwnID8gZ2V0V2luZG93U2l6ZXMoZWxlbWVudC5vd25lckRvY3VtZW50KSA6IHVuZGVmaW5lZDtcbiAgY29uc3Qgd2lkdGggPSBzaXplcz8ud2lkdGggfHwgZWxlbWVudC5jbGllbnRXaWR0aFxuICAgIHx8IGlzTnVtYmVyKHJlY3QucmlnaHQpICYmIGlzTnVtYmVyKHJlc3VsdC5sZWZ0KSAmJiByZWN0LnJpZ2h0IC0gcmVzdWx0LmxlZnQgfHwgMDtcbiAgY29uc3QgaGVpZ2h0ID0gc2l6ZXM/LmhlaWdodCB8fCBlbGVtZW50LmNsaWVudEhlaWdodFxuICAgIHx8IGlzTnVtYmVyKHJlY3QuYm90dG9tKSAmJiBpc051bWJlcihyZXN1bHQudG9wKSAmJiByZWN0LmJvdHRvbSAtIHJlc3VsdC50b3AgfHwgMDtcblxuICBsZXQgaG9yaXpTY3JvbGxiYXIgPSBlbGVtZW50Lm9mZnNldFdpZHRoIC0gd2lkdGg7XG4gIGxldCB2ZXJ0U2Nyb2xsYmFyID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgLSBoZWlnaHQ7XG5cbiAgLy8gaWYgYW4gaHlwb3RoZXRpY2FsIHNjcm9sbGJhciBpcyBkZXRlY3RlZCwgd2UgbXVzdCBiZSBzdXJlIGl0J3Mgbm90IGEgYGJvcmRlcmBcbiAgLy8gd2UgbWFrZSB0aGlzIGNoZWNrIGNvbmRpdGlvbmFsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zXG4gIGlmIChob3JpelNjcm9sbGJhciB8fCB2ZXJ0U2Nyb2xsYmFyKSB7XG4gICAgY29uc3Qgc3R5bGVzID0gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQpO1xuICAgIGhvcml6U2Nyb2xsYmFyIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ3gnKTtcbiAgICB2ZXJ0U2Nyb2xsYmFyIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ3knKTtcblxuICAgIHJlc3VsdC53aWR0aCAtPSBob3JpelNjcm9sbGJhcjtcbiAgICByZXN1bHQuaGVpZ2h0IC09IHZlcnRTY3JvbGxiYXI7XG4gIH1cblxuICByZXR1cm4gZ2V0Q2xpZW50UmVjdChyZXN1bHQpO1xufVxuIl19","/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGFyZW50Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRQYXJlbnROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gscUJBQXFCO0FBQ3JCLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7SUFDeEMsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUMvQixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELE9BQU8sT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMgdGhlIHBhcmVudE5vZGUgb3IgdGhlIGhvc3Qgb2YgdGhlIGVsZW1lbnRcbiAqL1xuLy8gdG9kbzogdmFsb3JraW4gZml4XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmVudE5vZGUoZWxlbWVudDogYW55KTogYW55IHtcbiAgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQucGFyZW50Tm9kZSB8fCBlbGVtZW50Lmhvc3Q7XG59XG4iXX0=","/**\n * Returns the scrolling parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2Nyb2xsUGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldFNjcm9sbFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxxQkFBcUI7QUFDckIsOERBQThEO0FBQzlELE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBWTtJQUMxQyxpRkFBaUY7SUFDakYsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztLQUN0QjtJQUVELFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUN4QixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDcEMsS0FBSyxXQUFXO1lBQ2QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3RCLFFBQVE7S0FDVDtJQUVELDREQUE0RDtJQUM1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RSxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQzFGLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxlQUFlLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgc2Nyb2xsaW5nIHBhcmVudCBvZiB0aGUgZ2l2ZW4gZWxlbWVudFxuICovXG5pbXBvcnQgeyBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkgfSBmcm9tICcuL2dldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSc7XG5pbXBvcnQgeyBnZXRQYXJlbnROb2RlIH0gZnJvbSAnLi9nZXRQYXJlbnROb2RlJztcblxuLy8gdG9kbzogdmFsb3JraW4gZml4XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50OiBhbnkpOiBhbnkge1xuICAvLyBSZXR1cm4gYm9keSwgYGdldFNjcm9sbGAgd2lsbCB0YWtlIGNhcmUgdG8gZ2V0IHRoZSBjb3JyZWN0IGBzY3JvbGxUb3BgIGZyb20gaXRcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcbiAgICBjYXNlICdIVE1MJzpcbiAgICBjYXNlICdCT0RZJzpcbiAgICAgIHJldHVybiBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYm9keTtcbiAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgICAgcmV0dXJuIGVsZW1lbnQuYm9keTtcbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgLy8gRmlyZWZveCB3YW50IHVzIHRvIGNoZWNrIGAteGAgYW5kIGAteWAgdmFyaWF0aW9ucyBhcyB3ZWxsXG4gIGNvbnN0IHsgb3ZlcmZsb3csIG92ZXJmbG93WCwgb3ZlcmZsb3dZIH0gPSBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkoZWxlbWVudCk7XG4gIGlmICgvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KFN0cmluZyhvdmVyZmxvdykgKyBTdHJpbmcob3ZlcmZsb3dZKSArIFN0cmluZyhvdmVyZmxvd1gpKSkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKGVsZW1lbnQpKTtcbn1cbiJdfQ==","import { getBoundingClientRect } from './getBoundingClientRect';\nimport { getClientRect } from './getClientRect';\nimport { getScrollParent } from './getScrollParent';\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { isNumber } from './isNumeric';\nexport function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top ?? 0, 0);\n parentRect.left = Math.max(parentRect.left ?? 0, 0);\n }\n const offsets = getClientRect({\n top: (childrenRect.top ?? 0) - (parentRect.top ?? 0) - borderTopWidth,\n left: (childrenRect.left ?? 0) - (parentRect.left ?? 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n return offsets;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxRQUFxQixFQUNyQixNQUFtQixFQUNuQixhQUFhLEdBQUcsS0FBSztJQUVyQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0MsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTNELG9GQUFvRjtJQUNwRixJQUFJLGFBQWEsSUFBSSxNQUFNLEVBQUU7UUFDM0IsVUFBVSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNyRDtJQUVELE1BQU0sT0FBTyxHQUFZLGFBQWEsQ0FBQztRQUNyQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxjQUFjO1FBQ3JFLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLGVBQWU7UUFDekUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUV2Qix3RUFBd0U7SUFDeEUscUVBQXFFO0lBQ3JFLDBFQUEwRTtJQUMxRSwwREFBMEQ7SUFDMUQsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLElBQUksY0FBYyxHQUFHLFNBQVMsQ0FBQztTQUMzQztRQUNELElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsTUFBTSxJQUFJLGNBQWMsR0FBRyxTQUFTLENBQUM7U0FDOUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxDQUFDLElBQUksSUFBSSxlQUFlLEdBQUcsVUFBVSxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLElBQUksZUFBZSxHQUFHLFVBQVUsQ0FBQztTQUMvQztRQUVELGlGQUFpRjtRQUNqRixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM5QixPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztLQUNqQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCb3VuZGluZ0NsaWVudFJlY3QgfSBmcm9tICcuL2dldEJvdW5kaW5nQ2xpZW50UmVjdCc7XG5pbXBvcnQgeyBnZXRDbGllbnRSZWN0IH0gZnJvbSAnLi9nZXRDbGllbnRSZWN0JztcbmltcG9ydCB7IGdldFNjcm9sbFBhcmVudCB9IGZyb20gJy4vZ2V0U2Nyb2xsUGFyZW50JztcbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGluY2x1ZGVTY3JvbGwgfSBmcm9tICcuL2luY2x1ZGVTY3JvbGwnO1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4vaXNOdW1lcmljJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZShcbiAgY2hpbGRyZW46IEhUTUxFbGVtZW50LFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBmaXhlZFBvc2l0aW9uID0gZmFsc2Vcbik6IE9mZnNldHMge1xuICBjb25zdCBpc0hUTUwgPSBwYXJlbnQubm9kZU5hbWUgPT09ICdIVE1MJztcbiAgY29uc3QgY2hpbGRyZW5SZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGNoaWxkcmVuKTtcbiAgY29uc3QgcGFyZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChwYXJlbnQpO1xuICBjb25zdCBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoY2hpbGRyZW4pO1xuXG4gIGNvbnN0IHN0eWxlcyA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShwYXJlbnQpO1xuICBjb25zdCBib3JkZXJUb3BXaWR0aCA9IHBhcnNlRmxvYXQoc3R5bGVzLmJvcmRlclRvcFdpZHRoKTtcbiAgY29uc3QgYm9yZGVyTGVmdFdpZHRoID0gcGFyc2VGbG9hdChzdHlsZXMuYm9yZGVyTGVmdFdpZHRoKTtcblxuICAvLyBJbiBjYXNlcyB3aGVyZSB0aGUgcGFyZW50IGlzIGZpeGVkLCB3ZSBtdXN0IGlnbm9yZSBuZWdhdGl2ZSBzY3JvbGwgaW4gb2Zmc2V0IGNhbGNcbiAgaWYgKGZpeGVkUG9zaXRpb24gJiYgaXNIVE1MKSB7XG4gICAgcGFyZW50UmVjdC50b3AgPSBNYXRoLm1heChwYXJlbnRSZWN0LnRvcCA/PyAwLCAwKTtcbiAgICBwYXJlbnRSZWN0LmxlZnQgPSBNYXRoLm1heChwYXJlbnRSZWN0LmxlZnQgPz8gMCwgMCk7XG4gIH1cblxuICBjb25zdCBvZmZzZXRzOiBPZmZzZXRzID0gZ2V0Q2xpZW50UmVjdCh7XG4gICAgdG9wOiAoY2hpbGRyZW5SZWN0LnRvcCA/PyAwKSAtIChwYXJlbnRSZWN0LnRvcCA/PyAwKSAtIGJvcmRlclRvcFdpZHRoLFxuICAgIGxlZnQ6IChjaGlsZHJlblJlY3QubGVmdCA/PyAwKSAtIChwYXJlbnRSZWN0LmxlZnQgPz8gMCkgLSBib3JkZXJMZWZ0V2lkdGgsXG4gICAgd2lkdGg6IGNoaWxkcmVuUmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IGNoaWxkcmVuUmVjdC5oZWlnaHRcbiAgfSk7XG5cbiAgb2Zmc2V0cy5tYXJnaW5Ub3AgPSAwO1xuICBvZmZzZXRzLm1hcmdpbkxlZnQgPSAwO1xuXG4gIC8vIFN1YnRyYWN0IG1hcmdpbnMgb2YgZG9jdW1lbnRFbGVtZW50IGluIGNhc2UgaXQncyBiZWluZyB1c2VkIGFzIHBhcmVudFxuICAvLyB3ZSBkbyB0aGlzIG9ubHkgb24gSFRNTCBiZWNhdXNlIGl0J3MgdGhlIG9ubHkgZWxlbWVudCB0aGF0IGJlaGF2ZXNcbiAgLy8gZGlmZmVyZW50bHkgd2hlbiBtYXJnaW5zIGFyZSBhcHBsaWVkIHRvIGl0LiBUaGUgbWFyZ2lucyBhcmUgaW5jbHVkZWQgaW5cbiAgLy8gdGhlIGJveCBvZiB0aGUgZG9jdW1lbnRFbGVtZW50LCBpbiB0aGUgb3RoZXIgY2FzZXMgbm90LlxuICBpZiAoaXNIVE1MKSB7XG4gICAgY29uc3QgbWFyZ2luVG9wID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wKTtcbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luTGVmdCk7XG5cbiAgICBpZiAoaXNOdW1iZXIob2Zmc2V0cy50b3ApKSB7XG4gICAgICBvZmZzZXRzLnRvcCAtPSBib3JkZXJUb3BXaWR0aCAtIG1hcmdpblRvcDtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyKG9mZnNldHMuYm90dG9tKSkge1xuICAgICAgb2Zmc2V0cy5ib3R0b20gLT0gYm9yZGVyVG9wV2lkdGggLSBtYXJnaW5Ub3A7XG4gICAgfVxuICAgIGlmIChpc051bWJlcihvZmZzZXRzLmxlZnQpKSB7XG4gICAgICBvZmZzZXRzLmxlZnQgLT0gYm9yZGVyTGVmdFdpZHRoIC0gbWFyZ2luTGVmdDtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyKG9mZnNldHMucmlnaHQpKSB7XG4gICAgICBvZmZzZXRzLnJpZ2h0IC09IGJvcmRlckxlZnRXaWR0aCAtIG1hcmdpbkxlZnQ7XG4gICAgfVxuXG4gICAgLy8gQXR0YWNoIG1hcmdpblRvcCBhbmQgbWFyZ2luTGVmdCBiZWNhdXNlIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB3ZSBtYXkgbmVlZCB0aGVtXG4gICAgb2Zmc2V0cy5tYXJnaW5Ub3AgPSBtYXJnaW5Ub3A7XG4gICAgb2Zmc2V0cy5tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdDtcbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufVxuIl19","/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nexport function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2Nyb2xsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldFNjcm9sbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBb0IsRUFBRSxJQUFJLEdBQUcsS0FBSztJQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBRWxDLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1FBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7UUFFeEUsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNwQztJQUVELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHNjcm9sbCB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudCBpbiB0aGUgZ2l2ZW4gc2lkZSAodG9wIGFuZCBsZWZ0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Nyb2xsKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzaWRlID0gJ3RvcCcpIHtcbiAgY29uc3QgdXBwZXJTaWRlID0gc2lkZSA9PT0gJ3RvcCcgPyAnc2Nyb2xsVG9wJyA6ICdzY3JvbGxMZWZ0JztcbiAgY29uc3Qgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lO1xuXG4gIGlmIChub2RlTmFtZSA9PT0gJ0JPRFknIHx8IG5vZGVOYW1lID09PSAnSFRNTCcpIHtcbiAgICBjb25zdCBodG1sID0gZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxpbmdFbGVtZW50ID0gZWxlbWVudC5vd25lckRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgfHwgaHRtbDtcblxuICAgIHJldHVybiBzY3JvbGxpbmdFbGVtZW50W3VwcGVyU2lkZV07XG4gIH1cblxuICByZXR1cm4gZWxlbWVudFt1cHBlclNpZGVdO1xufVxuIl19","import { getClientRect } from './getClientRect';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getScroll } from './getScroll';\nexport function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n const offset = {\n top: scrollTop - Number(relativeOffset?.top) + Number(relativeOffset?.marginTop),\n left: scrollLeft - Number(relativeOffset?.left) + Number(relativeOffset?.marginLeft),\n width,\n height\n };\n return getClientRect(offset);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL2dldFZpZXdwb3J0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcnRiaXRyYXJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd4QyxNQUFNLFVBQVUsNkNBQTZDLENBQUMsT0FBb0IsRUFBRSxhQUFhLEdBQUcsS0FBSztJQUN2RyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxNQUFNLGNBQWMsR0FBRyxvQ0FBb0MsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFcEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEUsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLEVBQUUsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7UUFDaEYsSUFBSSxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQ3BGLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQztJQUVGLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDbGllbnRSZWN0IH0gZnJvbSAnLi9nZXRDbGllbnRSZWN0JztcbmltcG9ydCB7IGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldFNjcm9sbCB9IGZyb20gJy4vZ2V0U2Nyb2xsJztcbmltcG9ydCB7IE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBleGNsdWRlU2Nyb2xsID0gZmFsc2UpOiBPZmZzZXRzIHtcbiAgY29uc3QgaHRtbCA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIGNvbnN0IHJlbGF0aXZlT2Zmc2V0ID0gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKGVsZW1lbnQsIGh0bWwpO1xuICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KGh0bWwuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApO1xuICBjb25zdCBoZWlnaHQgPSBNYXRoLm1heChodG1sLmNsaWVudEhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0IHx8IDApO1xuXG4gIGNvbnN0IHNjcm9sbFRvcCA9ICFleGNsdWRlU2Nyb2xsID8gZ2V0U2Nyb2xsKGh0bWwpIDogMDtcbiAgY29uc3Qgc2Nyb2xsTGVmdCA9ICFleGNsdWRlU2Nyb2xsID8gZ2V0U2Nyb2xsKGh0bWwsICdsZWZ0JykgOiAwO1xuXG4gIGNvbnN0IG9mZnNldCA9IHtcbiAgICB0b3A6IHNjcm9sbFRvcCAtIE51bWJlcihyZWxhdGl2ZU9mZnNldD8udG9wKSArIE51bWJlcihyZWxhdGl2ZU9mZnNldD8ubWFyZ2luVG9wKSxcbiAgICBsZWZ0OiBzY3JvbGxMZWZ0IC0gTnVtYmVyKHJlbGF0aXZlT2Zmc2V0Py5sZWZ0KSArIE51bWJlcihyZWxhdGl2ZU9mZnNldD8ubWFyZ2luTGVmdCksXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH07XG5cbiAgcmV0dXJuIGdldENsaWVudFJlY3Qob2Zmc2V0KTtcbn1cbiJdfQ==","/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\nexport function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNGaXhlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9pc0ZpeGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBb0I7SUFDMUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNsQyxJQUFJLFFBQVEsS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUM5QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUssT0FBTyxFQUFFO1FBQzdELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBmaXhlZCBvciBpcyBpbnNpZGUgYSBmaXhlZCBwYXJlbnRcbiAqL1xuaW1wb3J0IHsgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5IH0gZnJvbSAnLi9nZXRTdHlsZUNvbXB1dGVkUHJvcGVydHknO1xuaW1wb3J0IHsgZ2V0UGFyZW50Tm9kZSB9IGZyb20gJy4vZ2V0UGFyZW50Tm9kZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpeGVkKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZTtcbiAgaWYgKG5vZGVOYW1lID09PSAnQk9EWScgfHwgbm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQsICdwb3NpdGlvbicpID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gaXNGaXhlZChnZXRQYXJlbnROb2RlKGVsZW1lbnQpKTtcbn1cbiJdfQ==","import { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getParentNode } from './getParentNode';\nimport { getScrollParent } from './getScrollParent';\nimport { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport { getWindowSizes } from './getWindowSizes';\nimport { isFixed } from './isFixed';\nimport { isNumber } from './isNumeric';\nexport function getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {\n // NOTE: 1 DOM access here\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n }\n else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n else {\n boundariesNode = boundariesElement;\n }\n const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n }\n else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n return boundaries;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRCb3VuZGFyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLFVBQVUsYUFBYSxDQUMzQixNQUFtQixFQUNuQixJQUFpQixFQUNqQixPQUFPLEdBQUcsQ0FBQyxFQUNYLGlCQUF5QixFQUN6QixhQUFhLEdBQUcsS0FBSztJQUVyQiwwQkFBMEI7SUFFMUIsSUFBSSxVQUFVLEdBQXFCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWpILHVCQUF1QjtJQUN2QixJQUFJLGlCQUFpQixLQUFLLFVBQVUsRUFBRTtRQUNwQyxVQUFVLEdBQUcsNkNBQTZDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3pGO1NBQU07UUFDTCw2REFBNkQ7UUFDN0QsSUFBSSxjQUFjLENBQUM7UUFDbkIsSUFBSSxpQkFBaUIsS0FBSyxjQUFjLEVBQUU7WUFDeEMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN0QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7YUFDdkQ7U0FDRjthQUFNLElBQUksaUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ3pDLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUN2RDthQUFNO1lBQ0wsY0FBYyxHQUFHLGlCQUFpQixDQUFDO1NBQ3BDO1FBRUQsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLENBQ2xELGNBQWMsRUFDZCxZQUFZLEVBQ1osYUFBYSxDQUNkLENBQUM7UUFFRixtREFBbUQ7UUFDbkQsSUFBSSxPQUFPLElBQUksY0FBYyxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDM0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BGLFVBQVUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdkYsVUFBVSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7YUFDdEQ7WUFDRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDekQ7U0FDRjthQUFNLElBQUksT0FBTyxFQUFFO1lBQ2xCLG1EQUFtRDtZQUNuRCxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQ3RCO0tBQ0Y7SUFFRCxlQUFlO0lBQ2YsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdCLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO0tBQzVCO0lBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDO0tBQzNCO0lBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDO0tBQzdCO0lBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQy9CLFVBQVUsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO0tBQzlCO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcHV0ZWQgdGhlIGJvdW5kYXJpZXMgbGltaXRzIGFuZCByZXR1cm4gdGhlbVxuICovXG5pbXBvcnQgeyBPZmZzZXRzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IGZpbmRDb21tb25PZmZzZXRQYXJlbnQgfSBmcm9tICcuL2ZpbmRDb21tb25PZmZzZXRQYXJlbnQnO1xuaW1wb3J0IHsgZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudCB9IGZyb20gJy4vZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudCc7XG5pbXBvcnQgeyBnZXRPZmZzZXRSZWN0UmVsYXRpdmVUb0FyYml0cmFyeU5vZGUgfSBmcm9tICcuL2dldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSc7XG5pbXBvcnQgeyBnZXRQYXJlbnROb2RlIH0gZnJvbSAnLi9nZXRQYXJlbnROb2RlJztcbmltcG9ydCB7IGdldFNjcm9sbFBhcmVudCB9IGZyb20gJy4vZ2V0U2Nyb2xsUGFyZW50JztcbmltcG9ydCB7IGdldFZpZXdwb3J0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcnRiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldFdpbmRvd1NpemVzIH0gZnJvbSAnLi9nZXRXaW5kb3dTaXplcyc7XG5pbXBvcnQgeyBpc0ZpeGVkIH0gZnJvbSAnLi9pc0ZpeGVkJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi9pc051bWVyaWMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRhcmllcyhcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcbiAgaG9zdDogSFRNTEVsZW1lbnQsXG4gIHBhZGRpbmcgPSAwLFxuICBib3VuZGFyaWVzRWxlbWVudDogc3RyaW5nLFxuICBmaXhlZFBvc2l0aW9uID0gZmFsc2Vcbik6IFBhcnRpYWw8T2Zmc2V0cz4ge1xuICAvLyBOT1RFOiAxIERPTSBhY2Nlc3MgaGVyZVxuXG4gIGxldCBib3VuZGFyaWVzOiBQYXJ0aWFsPE9mZnNldHM+ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcbiAgY29uc3Qgb2Zmc2V0UGFyZW50ID0gZml4ZWRQb3NpdGlvbiA/IGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQodGFyZ2V0KSA6IGZpbmRDb21tb25PZmZzZXRQYXJlbnQodGFyZ2V0LCBob3N0KTtcblxuICAvLyBIYW5kbGUgdmlld3BvcnQgY2FzZVxuICBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICd2aWV3cG9ydCcpIHtcbiAgICBib3VuZGFyaWVzID0gZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlKG9mZnNldFBhcmVudCwgZml4ZWRQb3NpdGlvbik7XG4gIH0gZWxzZSB7XG4gICAgLy8gSGFuZGxlIG90aGVyIGNhc2VzIGJhc2VkIG9uIERPTSBlbGVtZW50IHVzZWQgYXMgYm91bmRhcmllc1xuICAgIGxldCBib3VuZGFyaWVzTm9kZTtcbiAgICBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICdzY3JvbGxQYXJlbnQnKSB7XG4gICAgICBib3VuZGFyaWVzTm9kZSA9IGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKGhvc3QpKTtcbiAgICAgIGlmIChib3VuZGFyaWVzTm9kZS5ub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgICAgIGJvdW5kYXJpZXNOb2RlID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICd3aW5kb3cnKSB7XG4gICAgICBib3VuZGFyaWVzTm9kZSA9IHRhcmdldC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm91bmRhcmllc05vZGUgPSBib3VuZGFyaWVzRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXRzID0gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKFxuICAgICAgYm91bmRhcmllc05vZGUsXG4gICAgICBvZmZzZXRQYXJlbnQsXG4gICAgICBmaXhlZFBvc2l0aW9uXG4gICAgKTtcblxuICAgIC8vIEluIGNhc2Ugb2YgSFRNTCwgd2UgbmVlZCBhIGRpZmZlcmVudCBjb21wdXRhdGlvblxuICAgIGlmIChvZmZzZXRzICYmIGJvdW5kYXJpZXNOb2RlLm5vZGVOYW1lID09PSAnSFRNTCcgJiYgIWlzRml4ZWQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBnZXRXaW5kb3dTaXplcyh0YXJnZXQub3duZXJEb2N1bWVudCk7XG4gICAgICBpZiAoaXNOdW1iZXIoYm91bmRhcmllcy50b3ApICYmIGlzTnVtYmVyKG9mZnNldHMudG9wKSAmJiBpc051bWJlcihvZmZzZXRzLm1hcmdpblRvcCkpIHtcbiAgICAgICAgYm91bmRhcmllcy50b3AgKz0gb2Zmc2V0cy50b3AgLSBvZmZzZXRzLm1hcmdpblRvcDtcbiAgICAgIH1cbiAgICAgIGlmIChpc051bWJlcihib3VuZGFyaWVzLnRvcCkpIHtcbiAgICAgICAgYm91bmRhcmllcy5ib3R0b20gPSBOdW1iZXIoaGVpZ2h0KSArIE51bWJlcihvZmZzZXRzLnRvcCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNOdW1iZXIoYm91bmRhcmllcy5sZWZ0KSAmJiBpc051bWJlcihvZmZzZXRzLmxlZnQpICYmIGlzTnVtYmVyKG9mZnNldHMubWFyZ2luTGVmdCkpIHtcbiAgICAgICAgYm91bmRhcmllcy5sZWZ0ICs9IG9mZnNldHMubGVmdCAtIG9mZnNldHMubWFyZ2luTGVmdDtcbiAgICAgIH1cbiAgICAgIGlmIChpc051bWJlcihib3VuZGFyaWVzLnRvcCkpIHtcbiAgICAgICAgYm91bmRhcmllcy5yaWdodCA9IE51bWJlcih3aWR0aCkgKyBOdW1iZXIob2Zmc2V0cy5sZWZ0KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9mZnNldHMpIHtcbiAgICAgIC8vIGZvciBhbGwgdGhlIG90aGVyIERPTSBlbGVtZW50cywgdGhpcyBvbmUgaXMgZ29vZFxuICAgICAgYm91bmRhcmllcyA9IG9mZnNldHM7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIHBhZGRpbmdzXG4gIGlmIChpc051bWJlcihib3VuZGFyaWVzLmxlZnQpKSB7XG4gICAgYm91bmRhcmllcy5sZWZ0ICs9IHBhZGRpbmc7XG4gIH1cbiAgaWYgKGlzTnVtYmVyKGJvdW5kYXJpZXMudG9wKSkge1xuICAgIGJvdW5kYXJpZXMudG9wICs9IHBhZGRpbmc7XG4gIH1cbiAgaWYgKGlzTnVtYmVyKGJvdW5kYXJpZXMucmlnaHQpKSB7XG4gICAgYm91bmRhcmllcy5yaWdodCAtPSBwYWRkaW5nO1xuICB9XG4gIGlmIChpc051bWJlcihib3VuZGFyaWVzLmJvdHRvbSkpIHtcbiAgICBib3VuZGFyaWVzLmJvdHRvbSAtPSBwYWRkaW5nO1xuICB9XG5cbiAgcmV0dXJuIGJvdW5kYXJpZXM7XG59XG4iXX0=","/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nimport { getBoundaries } from './getBoundaries';\nimport { PlacementForBs5 } from '../models';\nimport { getBsVer } from 'ngx-bootstrap/utils';\nfunction getArea({ width, height }) {\n return width * height;\n}\nexport function computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'bottom', 'right', 'left'], boundariesElement = 'viewport', padding = 0) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n const rects = {\n top: {\n width: boundaries?.width ?? 0,\n height: (refRect?.top ?? 0) - (boundaries?.top ?? 0)\n },\n right: {\n width: (boundaries?.right ?? 0) - (refRect?.right ?? 0),\n height: boundaries?.height ?? 0\n },\n bottom: {\n width: boundaries?.width ?? 0,\n height: (boundaries?.bottom ?? 0) - (refRect?.bottom ?? 0)\n },\n left: {\n width: (refRect.left ?? 0) - (boundaries?.left ?? 0),\n height: boundaries?.height ?? 0\n }\n };\n const sortedAreas = Object.keys(rects)\n .map((key) => ({\n position: key,\n ...rects[key],\n area: getArea(rects[key])\n }))\n .sort((a, b) => b.area - a.area);\n let filteredAreas = sortedAreas.filter(({ width, height }) => {\n return width >= target.clientWidth && height >= target.clientHeight;\n });\n filteredAreas = filteredAreas.filter(({ position }) => {\n return allowedPositions.some((allowedPosition) => {\n return allowedPosition === position;\n });\n });\n const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].position : sortedAreas[0].position;\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${getBsVer().isBs5 ? PlacementForBs5[computedPlacement] : computedPlacement}`);\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZUF1dG9QbGFjZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLFNBQVMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUM7SUFDbkUsT0FBTyxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFNBQWlCLEVBQ2pCLE9BQWdCLEVBQ2hCLE1BQW1CLEVBQ25CLElBQWlCLEVBQ2pCLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQ3JELGlCQUFpQixHQUFHLFVBQVUsRUFDOUIsT0FBTyxHQUFHLENBQUM7SUFFWCxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDcEMsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUczRSxNQUFNLEtBQUssR0FBVTtRQUNuQixHQUFHLEVBQUU7WUFDSCxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNyRDtRQUNELEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUN2RCxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2hDO1FBQ0QsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FBQztZQUM3QixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7WUFDcEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQztTQUNoQztLQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDYixRQUFRLEVBQUUsR0FBRztRQUNiLEdBQUcsS0FBSyxDQUFDLEdBQWtCLENBQUM7UUFDNUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBa0IsQ0FBc0MsQ0FBQztLQUM5RSxDQUFDLENBQUM7U0FDRixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuQyxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUMzRCxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBRUgsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUF1QixFQUFFLEVBQUU7WUFDdkQsT0FBTyxlQUFlLEtBQUssUUFBUSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGlCQUFpQixHQUFXLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBRWpILE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsK0JBQStCO0lBQy9CLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3pDLGtCQUFrQixFQUNsQixjQUNFLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGlCQUFpRCxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUMxRixFQUFFLENBQ0gsQ0FBQztJQUVGLE9BQU8saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFV0aWxpdHkgdXNlZCB0byB0cmFuc2Zvcm0gdGhlIGBhdXRvYCBwbGFjZW1lbnQgdG8gdGhlIHBsYWNlbWVudCB3aXRoIG1vcmVcbiAqIGF2YWlsYWJsZSBzcGFjZS5cbiAqL1xuaW1wb3J0IHsgZ2V0Qm91bmRhcmllcyB9IGZyb20gJy4vZ2V0Qm91bmRhcmllcyc7XG5pbXBvcnQgeyBPZmZzZXRzLCBQbGFjZW1lbnRGb3JCczUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgZ2V0QnNWZXIgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3V0aWxzJztcblxuZnVuY3Rpb24gZ2V0QXJlYSh7IHdpZHRoLCBoZWlnaHQgfTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9KSB7XG4gIHJldHVybiB3aWR0aCAqIGhlaWdodDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVBdXRvUGxhY2VtZW50KFxuICBwbGFjZW1lbnQ6IHN0cmluZyxcbiAgcmVmUmVjdDogT2Zmc2V0cyxcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcbiAgaG9zdDogSFRNTEVsZW1lbnQsXG4gIGFsbG93ZWRQb3NpdGlvbnMgPSBbJ3RvcCcsICdib3R0b20nLCAncmlnaHQnLCAnbGVmdCddLFxuICBib3VuZGFyaWVzRWxlbWVudCA9ICd2aWV3cG9ydCcsXG4gIHBhZGRpbmcgPSAwXG4pIHtcbiAgaWYgKHBsYWNlbWVudC5pbmRleE9mKCdhdXRvJykgPT09IC0xKSB7XG4gICAgcmV0dXJuIHBsYWNlbWVudDtcbiAgfVxuXG4gIGNvbnN0IGJvdW5kYXJpZXMgPSBnZXRCb3VuZGFyaWVzKHRhcmdldCwgaG9zdCwgcGFkZGluZywgYm91bmRhcmllc0VsZW1lbnQpO1xuXG4gIHR5cGUgUmVjdHMgPSB7IHRvcDogT2Zmc2V0czsgcmlnaHQ6IE9mZnNldHM7IGJvdHRvbTogT2Zmc2V0czsgbGVmdDogT2Zmc2V0cyB9O1xuICBjb25zdCByZWN0czogUmVjdHMgPSB7XG4gICAgdG9wOiB7XG4gICAgICB3aWR0aDogYm91bmRhcmllcz8ud2lkdGggPz8gMCxcbiAgICAgIGhlaWdodDogKHJlZlJlY3Q/LnRvcCA/PyAwKSAtIChib3VuZGFyaWVzPy50b3AgPz8gMClcbiAgICB9LFxuICAgIHJpZ2h0OiB7XG4gICAgICB3aWR0aDogKGJvdW5kYXJpZXM/LnJpZ2h0ID8/IDApIC0gKHJlZlJlY3Q/LnJpZ2h0ID8/IDApLFxuICAgICAgaGVpZ2h0OiBib3VuZGFyaWVzPy5oZWlnaHQgPz8gMFxuICAgIH0sXG4gICAgYm90dG9tOiB7XG4gICAgICB3aWR0aDogYm91bmRhcmllcz8ud2lkdGggPz8gMCxcbiAgICAgIGhlaWdodDogKGJvdW5kYXJpZXM/LmJvdHRvbSA/PyAwKSAtIChyZWZSZWN0Py5ib3R0b20gPz8gMClcbiAgICB9LFxuICAgIGxlZnQ6IHtcbiAgICAgIHdpZHRoOiAocmVmUmVjdC5sZWZ0ID8/IDApIC0gKGJvdW5kYXJpZXM/LmxlZnQgPz8gMCksXG4gICAgICBoZWlnaHQ6IGJvdW5kYXJpZXM/LmhlaWdodCA/PyAwXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNvcnRlZEFyZWFzID0gT2JqZWN0LmtleXMocmVjdHMpXG4gICAgLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgcG9zaXRpb246IGtleSxcbiAgICAgIC4uLnJlY3RzW2tleSBhcyBrZXlvZiBSZWN0c10sXG4gICAgICBhcmVhOiBnZXRBcmVhKHJlY3RzW2tleSBhcyBrZXlvZiBSZWN0c10gYXMgeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9KVxuICAgIH0pKVxuICAgIC5zb3J0KChhLCBiKSA9PiBiLmFyZWEgLSBhLmFyZWEpO1xuXG4gIGxldCBmaWx0ZXJlZEFyZWFzID0gc29ydGVkQXJlYXMuZmlsdGVyKCh7IHdpZHRoLCBoZWlnaHQgfSkgPT4ge1xuICAgIHJldHVybiB3aWR0aCA+PSB0YXJnZXQuY2xpZW50V2lkdGggJiYgaGVpZ2h0ID49IHRhcmdldC5jbGllbnRIZWlnaHQ7XG4gIH0pO1xuXG4gIGZpbHRlcmVkQXJlYXMgPSBmaWx0ZXJlZEFyZWFzLmZpbHRlcigoeyBwb3NpdGlvbiB9KSA9PiB7XG4gICAgcmV0dXJuIGFsbG93ZWRQb3NpdGlvbnMuc29tZSgoYWxsb3dlZFBvc2l0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBhbGxvd2VkUG9zaXRpb24gPT09IHBvc2l0aW9uO1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBjb21wdXRlZFBsYWNlbWVudDogc3RyaW5nID0gZmlsdGVyZWRBcmVhcy5sZW5ndGggPiAwID8gZmlsdGVyZWRBcmVhc1swXS5wb3NpdGlvbiA6IHNvcnRlZEFyZWFzWzBdLnBvc2l0aW9uO1xuXG4gIGNvbnN0IHZhcmlhdGlvbiA9IHBsYWNlbWVudC5zcGxpdCgnICcpWzFdO1xuICAvLyBmb3IgdG9vbHRpcCBvbiBhdXRvIHBvc2l0aW9uXG4gIHRhcmdldC5jbGFzc05hbWUgPSB0YXJnZXQuY2xhc3NOYW1lLnJlcGxhY2UoXG4gICAgL2JzLXRvb2x0aXAtYXV0by9nLFxuICAgIGBicy10b29sdGlwLSR7XG4gICAgICBnZXRCc1ZlcigpLmlzQnM1ID8gUGxhY2VtZW50Rm9yQnM1W2NvbXB1dGVkUGxhY2VtZW50IGFzIGtleW9mIHR5cGVvZiBQbGFjZW1lbnRGb3JCczVdIDogY29tcHV0ZWRQbGFjZW1lbnRcbiAgICB9YFxuICApO1xuXG4gIHJldHVybiBjb21wdXRlZFBsYWNlbWVudCArICh2YXJpYXRpb24gPyBgLSR7dmFyaWF0aW9ufWAgOiAnJyk7XG59XG4iXX0=","export function getOffsets(data) {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left ?? 0),\n top: Math.round(data.offsets.target.top ?? 0),\n bottom: Math.round(data.offsets.target.bottom ?? 0),\n right: Math.floor(data.offsets.target.right ?? 0)\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVTtJQUNuQyxPQUFPO1FBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7UUFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU07UUFDbEMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMvQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDbkQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGEsIE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2Zmc2V0cyhkYXRhOiBEYXRhKTogT2Zmc2V0cyB7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IGRhdGEub2Zmc2V0cy50YXJnZXQud2lkdGgsXG4gICAgaGVpZ2h0OiBkYXRhLm9mZnNldHMudGFyZ2V0LmhlaWdodCxcbiAgICBsZWZ0OiBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy50YXJnZXQubGVmdCA/PyAwKSxcbiAgICB0b3A6IE1hdGgucm91bmQoZGF0YS5vZmZzZXRzLnRhcmdldC50b3AgPz8gMCksXG4gICAgYm90dG9tOiBNYXRoLnJvdW5kKGRhdGEub2Zmc2V0cy50YXJnZXQuYm90dG9tID8/IDApLFxuICAgIHJpZ2h0OiBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy50YXJnZXQucmlnaHQgPz8gMClcbiAgfTtcbn1cbiJdfQ==","/**\n * Get the opposite placement of the given one\n */\nexport function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3Bwb3NpdGVQbGFjZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvZ2V0T3Bwb3NpdGVQbGFjZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBaUI7SUFDcEQsTUFBTSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFFNUUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQTRCLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCB0aGUgb3Bwb3NpdGUgcGxhY2VtZW50IG9mIHRoZSBnaXZlbiBvbmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaCA9IHsgbGVmdDogJ3JpZ2h0JywgcmlnaHQ6ICdsZWZ0JywgYm90dG9tOiAndG9wJywgdG9wOiAnYm90dG9tJyB9O1xuXG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csIG1hdGNoZWQgPT4gaGFzaFttYXRjaGVkIGFzIGtleW9mIHR5cGVvZiBoYXNoXSk7XG59XG4iXX0=","/**\n * Get the opposite placement variation of the given one\n */\nexport function getOppositeVariation(variation) {\n if (variation === 'right') {\n return 'left';\n }\n else if (variation === 'left') {\n return 'right';\n }\n return variation;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3Bwb3NpdGVWYXJpYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBaUI7SUFDcEQsSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFO1FBQ3pCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7U0FBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7UUFDL0IsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIHBsYWNlbWVudCB2YXJpYXRpb24gb2YgdGhlIGdpdmVuIG9uZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3Bwb3NpdGVWYXJpYXRpb24odmFyaWF0aW9uOiBzdHJpbmcpIHtcbiAgaWYgKHZhcmlhdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiAnbGVmdCc7XG4gIH0gZWxzZSBpZiAodmFyaWF0aW9uID09PSAnbGVmdCcpIHtcbiAgICByZXR1cm4gJ3JpZ2h0JztcbiAgfVxuXG4gIHJldHVybiB2YXJpYXRpb247XG59XG4iXX0=","const parse = (value, def = 0) => value ? parseFloat(value) : def;\nexport function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window?.getComputedStyle(element);\n const x = parse(styles?.marginTop) + parse(styles?.marginBottom);\n const y = parse(styles?.marginLeft) + parse(styles?.marginRight);\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3V0ZXJTaXplcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRPdXRlclNpemVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBYyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDM0UsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFvQjtJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUVqRSxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUN0QyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgdGhlIG91dGVyIHNpemVzIG9mIHRoZSBnaXZlbiBlbGVtZW50IChvZmZzZXQgc2l6ZSArIG1hcmdpbnMpXG4gKi9cbmltcG9ydCB7IE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5jb25zdCBwYXJzZSA9ICh2YWx1ZT86IHN0cmluZywgZGVmID0gMCkgPT4gdmFsdWUgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IGRlZjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRlclNpemVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2Zmc2V0cyB7XG4gIGNvbnN0IHdpbmRvdyA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgY29uc3Qgc3R5bGVzID0gd2luZG93Py5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICBjb25zdCB4ID0gcGFyc2Uoc3R5bGVzPy5tYXJnaW5Ub3ApICsgcGFyc2Uoc3R5bGVzPy5tYXJnaW5Cb3R0b20pO1xuICBjb25zdCB5ID0gcGFyc2Uoc3R5bGVzPy5tYXJnaW5MZWZ0KSArIHBhcnNlKHN0eWxlcz8ubWFyZ2luUmlnaHQpO1xuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IE51bWJlcihlbGVtZW50Lm9mZnNldFdpZHRoKSArIHksXG4gICAgaGVpZ2h0OiBOdW1iZXIoZWxlbWVudC5vZmZzZXRIZWlnaHQpICsgeFxuICB9O1xufVxuIl19","/**\n * Get offsets to the reference element\n */\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nexport function getReferenceOffsets(target, host, fixedPosition) {\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmVmZXJlbmNlT2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRSZWZlcmVuY2VPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHOUUsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFtQixFQUNuQixJQUFpQixFQUNqQixhQUF1QjtJQUV2QixNQUFNLGtCQUFrQixHQUFHLGFBQWE7UUFDdEMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQztRQUN0QyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXpDLE9BQU8sb0NBQW9DLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBvZmZzZXRzIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudFxuICovXG5pbXBvcnQgeyBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9maW5kQ29tbW9uT2Zmc2V0UGFyZW50JztcbmltcG9ydCB7IGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQgfSBmcm9tICcuL2dldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQnO1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZlcmVuY2VPZmZzZXRzKFxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxuICBob3N0OiBIVE1MRWxlbWVudCxcbiAgZml4ZWRQb3NpdGlvbj86IGJvb2xlYW5cbik6IE9mZnNldHMge1xuICBjb25zdCBjb21tb25PZmZzZXRQYXJlbnQgPSBmaXhlZFBvc2l0aW9uXG4gICAgPyBnZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50KHRhcmdldClcbiAgICA6IGZpbmRDb21tb25PZmZzZXRQYXJlbnQodGFyZ2V0LCBob3N0KTtcblxuICByZXR1cm4gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKGhvc3QsIGNvbW1vbk9mZnNldFBhcmVudCwgZml4ZWRQb3NpdGlvbik7XG59XG4iXX0=","/**\n * Get offsets to the target\n */\nimport { getOppositePlacement } from './getOppositePlacement';\nimport { getOuterSizes } from './getOuterSizes';\nexport function getTargetOffsets(target, hostOffsets, position) {\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n targetOffsets[mainSide] =\n (hostOffsets[mainSide] ?? 0) +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n targetOffsets[secondarySide] = placement === secondarySide\n ? (hostOffsets[secondarySide] ?? 0) - targetRect[secondaryMeasurement]\n : hostOffsets[getOppositePlacement(secondarySide)] ?? 0;\n return targetOffsets;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VGFyZ2V0T2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy91dGlscy9nZXRUYXJnZXRPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSWhELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBbUIsRUFDbkIsV0FBb0IsRUFDcEIsUUFBZ0I7SUFFaEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6Qyx3QkFBd0I7SUFDeEIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDLHVEQUF1RDtJQUN2RCxNQUFNLGFBQWEsR0FBRztRQUNwQixLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7UUFDdkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO0tBQzFCLENBQUM7SUFFRix3RkFBd0Y7SUFDeEYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRTNELGFBQWEsQ0FBQyxRQUFzQyxDQUFDO1FBQ25ELENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUM1QixVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTlCLGFBQWEsQ0FBQyxhQUEyQyxDQUFDLEdBQUcsU0FBUyxLQUFLLGFBQWE7UUFDdEYsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNyRSxDQUFDLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0RixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgb2Zmc2V0cyB0byB0aGUgdGFyZ2V0XG4gKi9cbmltcG9ydCB7IGdldE9wcG9zaXRlUGxhY2VtZW50IH0gZnJvbSAnLi9nZXRPcHBvc2l0ZVBsYWNlbWVudCc7XG5pbXBvcnQgeyBnZXRPdXRlclNpemVzIH0gZnJvbSAnLi9nZXRPdXRlclNpemVzJztcbmltcG9ydCB7IE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRPZmZzZXRzKFxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxuICBob3N0T2Zmc2V0czogT2Zmc2V0cyxcbiAgcG9zaXRpb246IHN0cmluZ1xuKTogT2Zmc2V0cyB7XG4gIGNvbnN0IHBsYWNlbWVudCA9IHBvc2l0aW9uLnNwbGl0KCcgJylbMF07XG4gIC8vIEdldCB0YXJnZXQgbm9kZSBzaXplc1xuICBjb25zdCB0YXJnZXRSZWN0ID0gZ2V0T3V0ZXJTaXplcyh0YXJnZXQpO1xuXG4gIC8vIEFkZCBwb3NpdGlvbiwgd2lkdGggYW5kIGhlaWdodCB0byBvdXIgb2Zmc2V0cyBvYmplY3RcbiAgY29uc3QgdGFyZ2V0T2Zmc2V0cyA9IHtcbiAgICB3aWR0aDogdGFyZ2V0UmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHRhcmdldFJlY3QuaGVpZ2h0XG4gIH07XG5cbiAgLy8gZGVwZW5kaW5nIGJ5IHRoZSB0YXJnZXQgcGxhY2VtZW50IHdlIGhhdmUgdG8gY29tcHV0ZSBpdHMgb2Zmc2V0cyBzbGlnaHRseSBkaWZmZXJlbnRseVxuICBjb25zdCBpc0hvcml6ID0gWydyaWdodCcsICdsZWZ0J10uaW5kZXhPZihwbGFjZW1lbnQpICE9PSAtMTtcbiAgY29uc3QgbWFpblNpZGUgPSBpc0hvcml6ID8gJ3RvcCcgOiAnbGVmdCc7XG4gIGNvbnN0IHNlY29uZGFyeVNpZGUgPSBpc0hvcml6ID8gJ2xlZnQnIDogJ3RvcCc7XG4gIGNvbnN0IG1lYXN1cmVtZW50ID0gaXNIb3JpeiA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgY29uc3Qgc2Vjb25kYXJ5TWVhc3VyZW1lbnQgPSAhaXNIb3JpeiA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICB0YXJnZXRPZmZzZXRzW21haW5TaWRlIGFzIGtleW9mIHR5cGVvZiB0YXJnZXRPZmZzZXRzXSA9XG4gICAgKGhvc3RPZmZzZXRzW21haW5TaWRlXSA/PyAwKSArXG4gICAgaG9zdE9mZnNldHNbbWVhc3VyZW1lbnRdIC8gMiAtXG4gICAgdGFyZ2V0UmVjdFttZWFzdXJlbWVudF0gLyAyO1xuXG4gIHRhcmdldE9mZnNldHNbc2Vjb25kYXJ5U2lkZSBhcyBrZXlvZiB0eXBlb2YgdGFyZ2V0T2Zmc2V0c10gPSBwbGFjZW1lbnQgPT09IHNlY29uZGFyeVNpZGVcbiAgICA/IChob3N0T2Zmc2V0c1tzZWNvbmRhcnlTaWRlXSA/PyAwKS0gdGFyZ2V0UmVjdFtzZWNvbmRhcnlNZWFzdXJlbWVudF1cbiAgICA6IGhvc3RPZmZzZXRzW2dldE9wcG9zaXRlUGxhY2VtZW50KHNlY29uZGFyeVNpZGUpIGFzIGtleW9mIHR5cGVvZiBob3N0T2Zmc2V0c10gPz8gMDtcblxuICByZXR1cm4gdGFyZ2V0T2Zmc2V0cztcbn1cbiJdfQ==","export function isModifierEnabled(options, modifierName) {\n return !!options.modifiers[modifierName]?.enabled;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNNb2RpZmllckVuYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvaXNNb2RpZmllckVuYWJsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWdCLEVBQUUsWUFBb0I7SUFDdEUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUE4QyxDQUFDLEVBQUUsT0FBTyxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlciB1c2VkIHRvIGtub3cgaWYgdGhlIGdpdmVuIG1vZGlmaWVyIGlzIGVuYWJsZWQuXG4gKi9cbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RpZmllckVuYWJsZWQob3B0aW9uczogT3B0aW9ucywgbW9kaWZpZXJOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhb3B0aW9ucy5tb2RpZmllcnNbbW9kaWZpZXJOYW1lIGFzIGtleW9mIHR5cGVvZiBvcHRpb25zLm1vZGlmaWVyc10/LmVuYWJsZWQ7XG59XG4iXX0=","import { getBsVer } from 'ngx-bootstrap/utils';\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\nexport function checkPopoverMargin(placement, checkPosition) {\n if (!getBsVer().isBs5) {\n return false;\n }\n return availablePositions[checkPosition].includes(placement);\n}\nexport function checkMargins(placement) {\n if (!getBsVer().isBs5) {\n return '';\n }\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n return '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tNYXJnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvY2hlY2tNYXJnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRy9DLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUM7SUFDcEMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7SUFDaEQsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDN0MsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUE4QixFQUFFLGFBQWlEO0lBQ2xILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUU7UUFDckIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFNBQWM7SUFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRTtRQUNyQixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDeEMsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELElBQUksa0JBQWtCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQzFDLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUN4QyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDM0MsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEJzVmVyIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC91dGlscyc7XG5pbXBvcnQgeyBBdmFpbGJsZUJTUG9zaXRpb25zIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuY29uc3QgYXZhaWxhYmxlUG9zaXRpb25zID0ge1xuICB0b3A6IFsndG9wJywgJ3RvcCBzdGFydCcsICd0b3AgZW5kJ10sXG4gIGJvdHRvbTogWydib3R0b20nLCAnYm90dG9tIHN0YXJ0JywgJ2JvdHRvbSBlbmQnXSxcbiAgc3RhcnQ6IFsnc3RhcnQnLCAnc3RhcnQgdG9wJywgJ3N0YXJ0IGJvdHRvbSddLFxuICBlbmQ6IFsnZW5kJywgJ2VuZCB0b3AnLCAnZW5kIGJvdHRvbSddXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQb3BvdmVyTWFyZ2luKHBsYWNlbWVudDogQXZhaWxibGVCU1Bvc2l0aW9ucywgY2hlY2tQb3NpdGlvbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdzdGFydCcgfCAnZW5kJyk6IGJvb2xlYW4ge1xuICBpZiAoIWdldEJzVmVyKCkuaXNCczUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYXZhaWxhYmxlUG9zaXRpb25zW2NoZWNrUG9zaXRpb25dLmluY2x1ZGVzKHBsYWNlbWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja01hcmdpbnMocGxhY2VtZW50OiBhbnkpOiBzdHJpbmcge1xuICBpZiAoIWdldEJzVmVyKCkuaXNCczUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAoY2hlY2tQb3BvdmVyTWFyZ2luKHBsYWNlbWVudCwgJ2VuZCcpKSB7XG4gICAgcmV0dXJuICdtcy0yJztcbiAgfVxuXG4gIGlmIChjaGVja1BvcG92ZXJNYXJnaW4ocGxhY2VtZW50LCAnc3RhcnQnKSkge1xuICAgIHJldHVybiAnbWUtMic7XG4gIH1cblxuICBpZiAoY2hlY2tQb3BvdmVyTWFyZ2luKHBsYWNlbWVudCwgJ3RvcCcpKSB7XG4gICAgcmV0dXJuICdtYi0yJztcbiAgfVxuXG4gIGlmIChjaGVja1BvcG92ZXJNYXJnaW4ocGxhY2VtZW50LCAnYm90dG9tJykpIHtcbiAgICByZXR1cm4gJ210LTInO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuIl19","import { PlacementForBs5 } from '../models';\nimport { checkMargins } from './checkMargin';\nimport { getBsVer } from 'ngx-bootstrap/utils';\nexport function updateContainerClass(data, renderer) {\n const target = data.instance.target;\n let containerClass = target.className;\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n return;\n }\n target.className = containerClass;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ29udGFpbmVyQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvdXRpbHMvdXBkYXRlQ29udGFpbmVyQ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFRLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBVSxFQUFFLFFBQW9CO0lBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBRXBDLElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFFdEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQXlDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxSCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLGNBQWMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMzRixjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM1QyxjQUFjLEdBQUcsY0FBYyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckU7UUFFRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM3RixjQUFjLElBQUksZUFBZSxDQUFDO1NBQ25DO1FBRUQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFLLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDOUYsY0FBYyxJQUFJLGVBQWUsQ0FBQztTQUNuQztLQUNGO0lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5RyxJQUFJLFFBQVEsRUFBRTtRQUNaLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV2RCxPQUFPO0tBQ1I7SUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVcGRhdGUgY2xhc3MgZm9yIHRoZSBnaXZlbiBwb3BwZXJcbiAqL1xuaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhLCBQbGFjZW1lbnRGb3JCczUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgY2hlY2tNYXJnaW5zIH0gZnJvbSAnLi9jaGVja01hcmdpbic7XG5pbXBvcnQgeyBnZXRCc1ZlciB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ29udGFpbmVyQ2xhc3MoZGF0YTogRGF0YSwgcmVuZGVyZXI/OiBSZW5kZXJlcjIpOiB2b2lkIHtcbiAgY29uc3QgdGFyZ2V0ID0gZGF0YS5pbnN0YW5jZS50YXJnZXQ7XG5cbiAgbGV0IGNvbnRhaW5lckNsYXNzID0gdGFyZ2V0LmNsYXNzTmFtZTtcblxuICBjb25zdCBkYXRhUGxhY2VtZW50ID0gZ2V0QnNWZXIoKS5pc0JzNSA/IFBsYWNlbWVudEZvckJzNVtkYXRhLnBsYWNlbWVudCBhcyBrZXlvZiB0eXBlb2YgUGxhY2VtZW50Rm9yQnM1XSA6IGRhdGEucGxhY2VtZW50O1xuICBpZiAoZGF0YS5wbGFjZW1lbnRBdXRvKSB7XG4gICAgY29udGFpbmVyQ2xhc3MgPSBjb250YWluZXJDbGFzcy5yZXBsYWNlKC9icy1wb3BvdmVyLWF1dG8vZywgYGJzLXBvcG92ZXItJHtkYXRhUGxhY2VtZW50fWApO1xuICAgIGNvbnRhaW5lckNsYXNzID0gY29udGFpbmVyQ2xhc3MucmVwbGFjZSgvbXMtMnxtZS0yfG1iLTJ8bXQtMi9nLCAnJyk7XG4gICAgY29udGFpbmVyQ2xhc3MgPSBjb250YWluZXJDbGFzcy5yZXBsYWNlKC9icy10b29sdGlwLWF1dG8vZywgYGJzLXRvb2x0aXAtJHtkYXRhUGxhY2VtZW50fWApO1xuICAgIGNvbnRhaW5lckNsYXNzID0gY29udGFpbmVyQ2xhc3MucmVwbGFjZSgvXFxzYXV0by9nLCBgICR7ZGF0YVBsYWNlbWVudH1gKTtcblxuICAgIGlmIChjb250YWluZXJDbGFzcy5pbmRleE9mKCdwb3BvdmVyJykgIT09IC0xKSB7XG4gICAgICBjb250YWluZXJDbGFzcyA9IGNvbnRhaW5lckNsYXNzICsgJyAnICsgY2hlY2tNYXJnaW5zKGRhdGFQbGFjZW1lbnQpO1xuICAgIH1cblxuICAgIGlmIChjb250YWluZXJDbGFzcy5pbmRleE9mKCdwb3BvdmVyJykgIT09IC0xICYmIGNvbnRhaW5lckNsYXNzLmluZGV4T2YoJ3BvcG92ZXItYXV0bycpID09PSAtMSkge1xuICAgICAgY29udGFpbmVyQ2xhc3MgKz0gJyBwb3BvdmVyLWF1dG8nO1xuICAgIH1cblxuICAgIGlmIChjb250YWluZXJDbGFzcy5pbmRleE9mKCd0b29sdGlwJykgIT09IC0xICAmJiBjb250YWluZXJDbGFzcy5pbmRleE9mKCd0b29sdGlwLWF1dG8nKSA9PT0gLTEpIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzICs9ICcgdG9vbHRpcC1hdXRvJztcbiAgICB9XG4gIH1cbiAgY29udGFpbmVyQ2xhc3MgPSBjb250YWluZXJDbGFzcy5yZXBsYWNlKC9sZWZ0fHJpZ2h0fHRvcHxib3R0b218ZW5kfHN0YXJ0L2csIGAke2RhdGFQbGFjZW1lbnQuc3BsaXQoJyAnKVswXX1gKTtcblxuICBpZiAocmVuZGVyZXIpIHtcbiAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGFyZ2V0LCAnY2xhc3MnLCBjb250YWluZXJDbGFzcyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB0YXJnZXQuY2xhc3NOYW1lID0gY29udGFpbmVyQ2xhc3M7XG59XG4iXX0=","import { isNumeric } from './isNumeric';\nexport function setStyles(element, styles, renderer) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach((prop) => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop])) {\n unit = 'px';\n }\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.style[prop] = String(styles[prop]) + unit;\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL3V0aWxzL3NldFN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMkIsRUFBRSxNQUFrRCxFQUFFLFFBQW9CO0lBQzdILElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDdkIsT0FBTztLQUNSO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBVyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUVuRSxPQUFPO1NBQ1I7UUFFRCw4REFBOEQ7UUFDN0QsT0FBTyxDQUFDLEtBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2V0IHRoZSBzdHlsZSB0byB0aGUgZ2l2ZW4gcG9wcGVyXG4gKi9cbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc051bWVyaWMgfSBmcm9tICcuL2lzTnVtZXJpYyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLCBzdHlsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmd8bnVtYmVyfEhUTUxFbGVtZW50PiwgcmVuZGVyZXI/OiBSZW5kZXJlcjIpIHtcbiAgaWYgKCFlbGVtZW50IHx8ICFzdHlsZXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgT2JqZWN0LmtleXMoc3R5bGVzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgbGV0IHVuaXQgPSAnJztcbiAgICAvLyBhZGQgdW5pdCBpZiB0aGUgdmFsdWUgaXMgbnVtZXJpYyBhbmQgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmdcbiAgICBpZiAoWyd3aWR0aCcsICdoZWlnaHQnLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uaW5kZXhPZihwcm9wKSAhPT0gLTEgJiZcbiAgICAgIGlzTnVtZXJpYyhzdHlsZXNbcHJvcF0gYXMgc3RyaW5nKSkge1xuICAgICAgdW5pdCA9ICdweCc7XG4gICAgfVxuXG4gICAgaWYgKHJlbmRlcmVyKSB7XG4gICAgICByZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCBwcm9wLCBgJHtTdHJpbmcoc3R5bGVzW3Byb3BdKX0ke3VuaXR9YCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIChlbGVtZW50LnN0eWxlIGFzIGFueSlbcHJvcF0gPSBTdHJpbmcoc3R5bGVzW3Byb3BdKSArIHVuaXQ7XG4gIH0pO1xufVxuIl19","import { getClientRect, getOuterSizes, getStyleComputedProperty } from '../utils';\nexport function arrow(data) {\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement = data.instance.target.querySelector('.arrow');\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n // top/left side\n if ((data.offsets.host[opSide] ?? 0) - arrowElementSize < (targetOffsets[side] ?? 0)) {\n (targetOffsets)[side] -=\n (targetOffsets[side] ?? 0) - ((data.offsets.host[opSide] ?? 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number((data).offsets.host[side]) + Number(arrowElementSize) > (targetOffsets[opSide] ?? 0)) {\n (targetOffsets)[side] +=\n Number((data).offsets.host[side]) + Number(arrowElementSize) - Number((targetOffsets)[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target);\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n // compute center of the target\n let center;\n if (!placementVariation) {\n center = Number((data).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n }\n else {\n const targetBorderRadius = parseFloat(css[\"borderRadius\"]) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number((data).offsets.host[side]) + targetSideArrowOffset :\n Number((data).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n let sideValue = center - (targetOffsets[side] ?? 0) - targetMarginSide - targetBorderSide;\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n data.instance.arrow = arrowElement;\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvbW9kaWZpZXJzL2Fycm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xGLE1BQU0sVUFBVSxLQUFLLENBQUMsSUFBVTtJQUM5QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN4QywyREFBMkQ7SUFDM0QsTUFBTSxZQUFZLEdBQXVCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0Rix1REFBdUQ7SUFDdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFbEYsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxXQUFXLEVBQWdDLENBQUM7SUFDekUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxD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LHFCQUFxQixDQUFDLENBQUM7S0FDOUY7SUFFRCxJQUFJLFNBQVMsR0FDWCxNQUFNLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFFNUUsd0VBQXdFO0lBQ3hFLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUc7UUFDbkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUM3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrRUFBa0U7S0FDakYsQ0FBQztJQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztJQUVuQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDbGllbnRSZWN0LCBnZXRPdXRlclNpemVzLCBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFycm93KGRhdGE6IERhdGEpIHtcbiAgbGV0IHRhcmdldE9mZnNldHMgPSBkYXRhLm9mZnNldHMudGFyZ2V0O1xuICAvLyBpZiBhcnJvd0VsZW1lbnQgaXMgYSBzdHJpbmcsIHN1cHBvc2UgaXQncyBhIENTUyBzZWxlY3RvclxuICBjb25zdCBhcnJvd0VsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGRhdGEuaW5zdGFuY2UudGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJy5hcnJvdycpO1xuXG4gIC8vIGlmIGFycm93RWxlbWVudCBpcyBub3QgZm91bmQsIGRvbid0IHJ1biB0aGUgbW9kaWZpZXJcbiAgaWYgKCFhcnJvd0VsZW1lbnQpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0IGlzVmVydGljYWwgPSBbJ2xlZnQnLCAncmlnaHQnXS5pbmRleE9mKGRhdGEucGxhY2VtZW50LnNwbGl0KCcgJylbMF0pICE9PSAtMTtcblxuICBjb25zdCBsZW4gPSBpc1ZlcnRpY2FsID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICBjb25zdCBzaWRlQ2FwaXRhbGl6ZWQgPSBpc1ZlcnRpY2FsID8gJ1RvcCcgOiAnTGVmdCc7XG4gIGNvbnN0IHNpZGUgPSBzaWRlQ2FwaXRhbGl6ZWQudG9Mb3dlckNhc2UoKSBhcyBrZXlvZiB0eXBlb2YgdGFyZ2V0T2Zmc2V0cztcbiAgY29uc3QgYWx0U2lkZSA9IGlzVmVydGljYWwgPyAnbGVmdCcgOiAndG9wJztcbiAgY29uc3Qgb3BTaWRlID0gaXNWZXJ0aWNhbCA/ICdib3R0b20nIDogJ3JpZ2h0JztcbiAgY29uc3QgYXJyb3dFbGVtZW50U2l6ZSA9IGdldE91dGVyU2l6ZXMoYXJyb3dFbGVtZW50KVtsZW5dO1xuICBjb25zdCBwbGFjZW1lbnRWYXJpYXRpb24gPSBkYXRhLnBsYWNlbWVudC5zcGxpdCgnICcpWzFdO1xuXG4gIC8vIHRvcC9sZWZ0IHNpZGVcbiAgaWYgKChkYXRhLm9mZnNldHMuaG9zdFtvcFNpZGVdID8/IDApIC0gYXJyb3dFbGVtZW50U2l6ZSA8ICh0YXJnZXRPZmZzZXRzW3NpZGVdID8/IDApKSB7XG4gICAgKHRhcmdldE9mZnNldHMpW3NpZGVdIC09XG4gICAgICAodGFyZ2V0T2Zmc2V0c1tzaWRlXSA/PyAwKSAtICgoZGF0YS5vZmZzZXRzLmhvc3Rbb3BTaWRlXSA/PyAwKSAtIGFycm93RWxlbWVudFNpemUpO1xuICB9XG4gIC8vIGJvdHRvbS9yaWdodCBzaWRlXG4gIGlmIChOdW1iZXIoKGRhdGEpLm9mZnNldHMuaG9zdFtzaWRlXSkgKyBOdW1iZXIoYXJyb3dFbGVtZW50U2l6ZSkgPiAodGFyZ2V0T2Zmc2V0c1tvcFNpZGVdID8/IDApKSB7XG4gICAgKHRhcmdldE9mZnNldHMpW3NpZGVdICs9XG4gICAgICBOdW1iZXIoKGRhdGEpLm9mZnNldHMuaG9zdFtzaWRlXSkgKyBOdW1iZXIoYXJyb3dFbGVtZW50U2l6ZSkgLSBOdW1iZXIoKHRhcmdldE9mZnNldHMpW29wU2lkZV0pO1xuICB9XG4gIHRhcmdldE9mZnNldHMgPSBnZXRDbGllbnRSZWN0KHRhcmdldE9mZnNldHMpO1xuXG4gIC8vIENvbXB1dGUgdGhlIHNpZGVWYWx1ZSB1c2luZyB0aGUgdXBkYXRlZCB0YXJnZXQgb2Zmc2V0c1xuICAvLyB0YWtlIHRhcmdldCBtYXJnaW4gaW4gYWNjb3VudCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgdGhpcyBpbmZvIGF2YWlsYWJsZVxuICBjb25zdCBjc3MgPSBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkoZGF0YS5pbnN0YW5jZS50YXJnZXQpIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgY29uc3QgdGFyZ2V0TWFyZ2luU2lkZSA9IHBhcnNlRmxvYXQoY3NzW2BtYXJnaW4ke3NpZGVDYXBpdGFsaXplZH1gXSkgfHwgMDtcbiAgY29uc3QgdGFyZ2V0Qm9yZGVyU2lkZSA9IHBhcnNlRmxvYXQoY3NzW2Bib3JkZXIke3NpZGVDYXBpdGFsaXplZH1XaWR0aGBdKSB8fCAwO1xuXG4gIC8vIGNvbXB1dGUgY2VudGVyIG9mIHRoZSB0YXJnZXRcbiAgbGV0IGNlbnRlcjogbnVtYmVyO1xuICBpZiAoIXBsYWNlbWVudFZhcmlhdGlvbikge1xuICAgIGNlbnRlciA9IE51bWJlcigoZGF0YSkub2Zmc2V0cy5ob3N0W3NpZGVdKSArIE51bWJlcihkYXRhLm9mZnNldHMuaG9zdFtsZW5dIC8gMiAtIGFycm93RWxlbWVudFNpemUgLyAyKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0YXJnZXRCb3JkZXJSYWRpdXMgPSBwYXJzZUZsb2F0KGNzc1tcImJvcmRlclJhZGl1c1wiXSkgfHwgMDtcbiAgICBjb25zdCB0YXJnZXRTaWRlQXJyb3dPZmZzZXQgPSBOdW1iZXIodGFyZ2V0TWFyZ2luU2lkZSArIHRhcmdldEJvcmRlclNpZGUgKyB0YXJnZXRCb3JkZXJSYWRpdXMpO1xuICAgIGNlbnRlciA9IHNpZGUgPT09IHBsYWNlbWVudFZhcmlhdGlvbiA/XG4gICAgICBOdW1iZXIoKGRhdGEpLm9mZnNldHMuaG9zdFtzaWRlXSkgKyB0YXJnZXRTaWRlQXJyb3dPZmZzZXQgOlxuICAgICAgTnVtYmVyKChkYXRhKS5vZmZzZXRzLmhvc3Rbc2lkZV0pICsgTnVtYmVyKGRhdGEub2Zmc2V0cy5ob3N0W2xlbl0gLSB0YXJnZXRTaWRlQXJyb3dPZmZzZXQpO1xuICB9XG5cbiAgbGV0IHNpZGVWYWx1ZSA9XG4gICAgY2VudGVyIC0gKHRhcmdldE9mZnNldHNbc2lkZV0gPz8gMCkgLSB0YXJnZXRNYXJnaW5TaWRlIC0gdGFyZ2V0Qm9yZGVyU2lkZTtcblxuICAvLyBwcmV2ZW50IGFycm93RWxlbWVudCBmcm9tIGJlaW5nIHBsYWNlZCBub3QgY29udGlndW91c2x5IHRvIGl0cyB0YXJnZXRcbiAgc2lkZVZhbHVlID0gTWF0aC5tYXgoTWF0aC5taW4odGFyZ2V0T2Zmc2V0c1tsZW5dIC0gKGFycm93RWxlbWVudFNpemUgKyA1KSwgc2lkZVZhbHVlKSwgMCk7XG4gIGRhdGEub2Zmc2V0cy5hcnJvdyA9IHtcbiAgICBbc2lkZV06IE1hdGgucm91bmQoc2lkZVZhbHVlKSxcbiAgICBbYWx0U2lkZV06ICcnIC8vIG1ha2Ugc3VyZSB0byB1bnNldCBhbnkgZXZlbnR1YWwgYWx0U2lkZSB2YWx1ZSBmcm9tIHRoZSBET00gbm9kZVxuICB9O1xuXG4gIGRhdGEuaW5zdGFuY2UuYXJyb3cgPSBhcnJvd0VsZW1lbnQ7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=","import { computeAutoPlacement, getBoundaries, getClientRect, getOppositeVariation, getTargetOffsets, isModifierEnabled } from '../utils';\nexport function flip(data) {\n data.offsets.target = getClientRect(data.offsets.target);\n if (!isModifierEnabled(data.options, 'flip')) {\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)\n };\n return data;\n }\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n 'viewport', false // positionFixed\n );\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n placement = data.placement.split(' ')[0];\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef = (placement === 'left' &&\n Math.floor(data.offsets.target.right ?? 0) > Math.floor(data.offsets.host.left ?? 0)) ||\n (placement === 'right' &&\n Math.floor(data.offsets.target.left ?? 0) < Math.floor(data.offsets.host.right ?? 0)) ||\n (placement === 'top' &&\n Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(data.offsets.host.top ?? 0)) ||\n (placement === 'bottom' &&\n Math.floor(data.offsets.target.top ?? 0) < Math.floor(data.offsets.host.bottom ?? 0));\n const overflowsLeft = Math.floor(data.offsets.target.left ?? 0) < Math.floor(boundaries.left ?? 0);\n const overflowsRight = Math.floor(data.offsets.target.right ?? 0) > Math.floor(boundaries.right ?? 0);\n const overflowsTop = Math.floor(data.offsets.target.top ?? 0) < Math.floor(boundaries.top ?? 0);\n const overflowsBottom = Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(boundaries.bottom ?? 0);\n const overflowsBoundaries = (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation = ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? ` ${variation}` : '');\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)\n };\n }\n });\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy9tb2RpZmllcnMvZmxpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSxVQUFVLENBQUM7QUFFbEIsTUFBTSxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBRTVDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLEdBQUcsZ0JBQWdCLENBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FDZjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLENBQUMsRUFBRSxVQUFVO0lBQ2IsVUFBVSxFQUNWLEtBQUssQ0FBQyxnQkFBZ0I7S0FDdkIsQ0FBQztJQUVGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUVoQyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDaEgsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUVoRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDeEQsT0FBTztTQUNSO1FBRUQsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpDLDhGQUE4RjtRQUM5RixNQUFNLFdBQVcsR0FDZixDQUFDLFNBQVMsS0FBSyxNQUFNO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLENBQUMsU0FBUyxLQUFLLE9BQU87Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLENBQUMsU0FBUyxLQUFLLEtBQUs7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLENBQUMsU0FBUyxLQUFLLFFBQVE7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXpHLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxhQUFhLENBQUM7WUFDdkMsQ0FBQyxTQUFTLEtBQUssT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN6QyxDQUFDLFNBQVMsS0FBSyxLQUFLLElBQUksWUFBWSxDQUFDO1lBQ3JDLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxlQUFlLENBQUMsQ0FBQztRQUU5QyxpQ0FBaUM7UUFDakMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sZ0JBQWdCLEdBQ3BCLENBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxLQUFLLE1BQU0sSUFBSSxhQUFhLENBQUM7WUFDcEQsQ0FBQyxVQUFVLElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxjQUFjLENBQUM7WUFDdkQsQ0FBQyxDQUFDLFVBQVUsSUFBSSxTQUFTLEtBQUssTUFBTSxJQUFJLFlBQVksQ0FBQztZQUNyRCxDQUFDLENBQUMsVUFBVSxJQUFJLFNBQVMsS0FBSyxPQUFPLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQztRQUUvRCxJQUFJLFdBQVcsSUFBSSxtQkFBbUIsSUFBSSxnQkFBZ0IsRUFBRTtZQUMxRCxJQUFJLFdBQVcsSUFBSSxtQkFBbUIsRUFBRTtnQkFDdEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbEM7WUFFRCxJQUFJLGdCQUFnQixFQUFFO2dCQUNwQixTQUFTLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDN0M7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUc7Z0JBQ3BCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixHQUFHLGdCQUFnQixDQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2Y7YUFDRixDQUFDO1NBQ0g7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGEgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZUF1dG9QbGFjZW1lbnQsXG4gIGdldEJvdW5kYXJpZXMsXG4gIGdldENsaWVudFJlY3QsXG4gIGdldE9wcG9zaXRlVmFyaWF0aW9uLFxuICBnZXRUYXJnZXRPZmZzZXRzLFxuICBpc01vZGlmaWVyRW5hYmxlZFxufSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGlwKGRhdGE6IERhdGEpOiBEYXRhIHtcbiAgZGF0YS5vZmZzZXRzLnRhcmdldCA9IGdldENsaWVudFJlY3QoZGF0YS5vZmZzZXRzLnRhcmdldCk7XG5cbiAgaWYgKCFpc01vZGlmaWVyRW5hYmxlZChkYXRhLm9wdGlvbnMsICdmbGlwJykpIHtcblxuICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAuLi5kYXRhLm9mZnNldHMudGFyZ2V0LFxuICAgICAgLi4uZ2V0VGFyZ2V0T2Zmc2V0cyhcbiAgICAgICAgZGF0YS5pbnN0YW5jZS50YXJnZXQsXG4gICAgICAgIGRhdGEub2Zmc2V0cy5ob3N0LFxuICAgICAgICBkYXRhLnBsYWNlbWVudFxuICAgICAgKVxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0IGJvdW5kYXJpZXMgPSBnZXRCb3VuZGFyaWVzKFxuICAgIGRhdGEuaW5zdGFuY2UudGFyZ2V0LFxuICAgIGRhdGEuaW5zdGFuY2UuaG9zdCxcbiAgICAwLCAvLyBwYWRkaW5nXG4gICAgJ3ZpZXdwb3J0JyxcbiAgICBmYWxzZSAvLyBwb3NpdGlvbkZpeGVkXG4gICk7XG5cbiAgbGV0IHBsYWNlbWVudCA9IGRhdGEucGxhY2VtZW50LnNwbGl0KCcgJylbMF07XG4gIGxldCB2YXJpYXRpb24gPSBkYXRhLnBsYWNlbWVudC5zcGxpdCgnICcpWzFdIHx8ICcnO1xuXG4gIGNvbnN0IG9mZnNldHNIb3N0ID0gZGF0YS5vZmZzZXRzLmhvc3Q7XG4gIGNvbnN0IHRhcmdldCA9IGRhdGEuaW5zdGFuY2UudGFyZ2V0O1xuICBjb25zdCBob3N0ID0gZGF0YS5pbnN0YW5jZS5ob3N0O1xuXG4gIGNvbnN0IGFkYXB0aXZlUG9zaXRpb24gPSBjb21wdXRlQXV0b1BsYWNlbWVudCgnYXV0bycsIG9mZnNldHNIb3N0LCB0YXJnZXQsIGhvc3QsIGRhdGEub3B0aW9ucy5hbGxvd2VkUG9zaXRpb25zKTtcbiAgY29uc3QgZmxpcE9yZGVyID0gW3BsYWNlbWVudCwgYWRhcHRpdmVQb3NpdGlvbl07XG5cbiAgZmxpcE9yZGVyLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgaWYgKHBsYWNlbWVudCAhPT0gc3RlcCB8fCBmbGlwT3JkZXIubGVuZ3RoID09PSBpbmRleCArIDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudC5zcGxpdCgnICcpWzBdO1xuXG4gICAgLy8gdXNpbmcgZmxvb3IgYmVjYXVzZSB0aGUgaG9zdCBvZmZzZXRzIG1heSBjb250YWluIGRlY2ltYWxzIHdlIGFyZSBub3QgZ29pbmcgdG8gY29uc2lkZXIgaGVyZVxuICAgIGNvbnN0IG92ZXJsYXBzUmVmID1cbiAgICAgIChwbGFjZW1lbnQgPT09ICdsZWZ0JyAmJlxuICAgICAgICBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy50YXJnZXQucmlnaHQgPz8gMCkgPiBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy5ob3N0LmxlZnQgPz8gMCkpIHx8XG4gICAgICAocGxhY2VtZW50ID09PSAncmlnaHQnICYmXG4gICAgICAgIE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC5sZWZ0ID8/IDApIDwgTWF0aC5mbG9vcihkYXRhLm9mZnNldHMuaG9zdC5yaWdodCA/PyAwKSkgfHxcbiAgICAgIChwbGFjZW1lbnQgPT09ICd0b3AnICYmXG4gICAgICAgIE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC5ib3R0b20gPz8gMCkgPiBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy5ob3N0LnRvcCA/PyAwKSkgfHxcbiAgICAgIChwbGFjZW1lbnQgPT09ICdib3R0b20nICYmXG4gICAgICAgIE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC50b3AgPz8gMCkgPCBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy5ob3N0LmJvdHRvbSA/PyAwKSk7XG5cbiAgICBjb25zdCBvdmVyZmxvd3NMZWZ0ID0gTWF0aC5mbG9vcihkYXRhLm9mZnNldHMudGFyZ2V0LmxlZnQgPz8gMCkgPCBNYXRoLmZsb29yKGJvdW5kYXJpZXMubGVmdCA/PyAwKTtcbiAgICBjb25zdCBvdmVyZmxvd3NSaWdodCA9IE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC5yaWdodCA/PyAwKSA+IE1hdGguZmxvb3IoYm91bmRhcmllcy5yaWdodCA/PyAwKTtcbiAgICBjb25zdCBvdmVyZmxvd3NUb3AgPSBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy50YXJnZXQudG9wID8/IDApIDwgTWF0aC5mbG9vcihib3VuZGFyaWVzLnRvcCA/PyAwKTtcbiAgICBjb25zdCBvdmVyZmxvd3NCb3R0b20gPSBNYXRoLmZsb29yKGRhdGEub2Zmc2V0cy50YXJnZXQuYm90dG9tID8/IDApID4gTWF0aC5mbG9vcihib3VuZGFyaWVzLmJvdHRvbSA/PyAwKTtcblxuICAgIGNvbnN0IG92ZXJmbG93c0JvdW5kYXJpZXMgPVxuICAgICAgKHBsYWNlbWVudCA9PT0gJ2xlZnQnICYmIG92ZXJmbG93c0xlZnQpIHx8XG4gICAgICAocGxhY2VtZW50ID09PSAncmlnaHQnICYmIG92ZXJmbG93c1JpZ2h0KSB8fFxuICAgICAgKHBsYWNlbWVudCA9PT0gJ3RvcCcgJiYgb3ZlcmZsb3dzVG9wKSB8fFxuICAgICAgKHBsYWNlbWVudCA9PT0gJ2JvdHRvbScgJiYgb3ZlcmZsb3dzQm90dG9tKTtcblxuICAgIC8vIGZsaXAgdGhlIHZhcmlhdGlvbiBpZiByZXF1aXJlZFxuICAgIGNvbnN0IGlzVmVydGljYWwgPSBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xO1xuICAgIGNvbnN0IGZsaXBwZWRWYXJpYXRpb24gPVxuICAgICAgKChpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ2xlZnQnICYmIG92ZXJmbG93c0xlZnQpIHx8XG4gICAgICAgIChpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ3JpZ2h0JyAmJiBvdmVyZmxvd3NSaWdodCkgfHxcbiAgICAgICAgKCFpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ2xlZnQnICYmIG92ZXJmbG93c1RvcCkgfHxcbiAgICAgICAgKCFpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ3JpZ2h0JyAmJiBvdmVyZmxvd3NCb3R0b20pKTtcblxuICAgIGlmIChvdmVybGFwc1JlZiB8fCBvdmVyZmxvd3NCb3VuZGFyaWVzIHx8IGZsaXBwZWRWYXJpYXRpb24pIHtcbiAgICAgIGlmIChvdmVybGFwc1JlZiB8fCBvdmVyZmxvd3NCb3VuZGFyaWVzKSB7XG4gICAgICAgIHBsYWNlbWVudCA9IGZsaXBPcmRlcltpbmRleCArIDFdO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmxpcHBlZFZhcmlhdGlvbikge1xuICAgICAgICB2YXJpYXRpb24gPSBnZXRPcHBvc2l0ZVZhcmlhdGlvbih2YXJpYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBkYXRhLnBsYWNlbWVudCA9IHBsYWNlbWVudCArICh2YXJpYXRpb24gPyBgICR7dmFyaWF0aW9ufWAgOiAnJyk7XG5cbiAgICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAgIC4uLmRhdGEub2Zmc2V0cy50YXJnZXQsXG4gICAgICAgIC4uLmdldFRhcmdldE9mZnNldHMoXG4gICAgICAgICAgZGF0YS5pbnN0YW5jZS50YXJnZXQsXG4gICAgICAgICAgZGF0YS5vZmZzZXRzLmhvc3QsXG4gICAgICAgICAgZGF0YS5wbGFjZW1lbnRcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufVxuIl19","import { computeAutoPlacement, getReferenceOffsets, getTargetOffsets } from '../utils';\nexport function initData(targetElement, hostElement, position, options) {\n if (!targetElement || !hostElement) {\n return;\n }\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/)\n && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n const placementAuto = !!position.match(/auto/g);\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement, options ? options.allowedPositions : undefined);\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n return {\n options: options || { modifiers: {} },\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvbW9kaWZpZXJzL2luaXREYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNqQixNQUFNLFVBQVUsQ0FBQztBQUlsQixNQUFNLFVBQVUsUUFBUSxDQUN0QixhQUErQixFQUFFLFdBQTZCLEVBQUUsUUFBZ0IsRUFBRSxPQUFpQjtJQUduRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2xDLE9BQVE7S0FDVDtJQUVELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUV2RSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQztXQUNoRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsNkVBQTZFLENBQUMsRUFBRTtRQUMzRixRQUFRLEdBQUcsTUFBTSxDQUFDO0tBQ3pCO0lBRUgsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEQsc0RBQXNEO0lBQ3RELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMseUNBQXlDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTTtRQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBRWIsb0dBQW9HO0lBQ3BHLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztJQUNqSCxJQUFJLE9BQU8sRUFBRTtRQUNYLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDdEYsU0FBUyxHQUFHLE1BQU0sQ0FBQztLQUNwQjtJQUVELFNBQVMsR0FBRyxvQkFBb0IsQ0FDOUIsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9DLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWhGLE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUMsU0FBUyxFQUFFLEVBQUUsRUFBQztRQUNuQyxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUUsYUFBYTtZQUNyQixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEVBQUU7WUFDUCxNQUFNLEVBQUUsWUFBWTtZQUNwQixJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDO1NBQ2Q7UUFDRCxhQUFhLEVBQUUsS0FBSztRQUNwQixTQUFTO1FBQ1QsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29tcHV0ZUF1dG9QbGFjZW1lbnQsXG4gIGdldFJlZmVyZW5jZU9mZnNldHMsXG4gIGdldFRhcmdldE9mZnNldHNcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBEYXRhLCBPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXREYXRhKFxuICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudHxudWxsLCBob3N0RWxlbWVudDogSFRNTEVsZW1lbnR8bnVsbCwgcG9zaXRpb246IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnNcbik6IERhdGF8dW5kZWZpbmVkIHtcblxuICBpZiAoIXRhcmdldEVsZW1lbnQgfHwgIWhvc3RFbGVtZW50KSB7XG4gICAgcmV0dXJuIDtcbiAgfVxuXG4gIGNvbnN0IGhvc3RFbFBvc2l0aW9uID0gZ2V0UmVmZXJlbmNlT2Zmc2V0cyh0YXJnZXRFbGVtZW50LCBob3N0RWxlbWVudCk7XG5cbiAgaWYgKCFwb3NpdGlvbi5tYXRjaCgvXihhdXRvKSpcXHMqKGxlZnR8cmlnaHR8dG9wfGJvdHRvbXxzdGFydHxlbmQpKiQvKVxuICAgICYmICFwb3NpdGlvbi5tYXRjaCgvXihsZWZ0fHJpZ2h0fHRvcHxib3R0b218c3RhcnR8ZW5kKSooPzogKGxlZnR8cmlnaHR8dG9wfGJvdHRvbXxzdGFydHxlbmQpKSokLykpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gJ2F1dG8nO1xuICAgIH1cblxuICBjb25zdCBwbGFjZW1lbnRBdXRvID0gISFwb3NpdGlvbi5tYXRjaCgvYXV0by9nKTtcblxuICAvLyBzdXBwb3J0IG9sZCBwbGFjZW1lbnRzICdhdXRvIGxlZnR8cmlnaHR8dG9wfGJvdHRvbSdcbiAgbGV0IHBsYWNlbWVudCA9IHBvc2l0aW9uLm1hdGNoKC9hdXRvXFxzKGxlZnR8cmlnaHR8dG9wfGJvdHRvbXxzdGFydHxlbmQpLylcbiAgICA/IHBvc2l0aW9uLnNwbGl0KCcgJylbMV0gfHwgJ2F1dG8nXG4gICAgOiBwb3NpdGlvbjtcblxuICAvLyBOb3JtYWxpemUgcGxhY2VtZW50cyB0aGF0IGhhdmUgaWRlbnRpY2FsIG1haW4gcGxhY2VtZW50IGFuZCB2YXJpYXRpb24gKFwicmlnaHQgcmlnaHRcIiA9PiBcInJpZ2h0XCIpLlxuICBjb25zdCBtYXRjaGVzID0gcGxhY2VtZW50Lm1hdGNoKC9eKGxlZnR8cmlnaHR8dG9wfGJvdHRvbXxzdGFydHxlbmQpKiA/KD8hXFwxKShsZWZ0fHJpZ2h0fHRvcHxib3R0b218c3RhcnR8ZW5kKT8vKTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBwbGFjZW1lbnQgPSBtYXRjaGVzWzFdICsgKG1hdGNoZXNbMl0gPyBgICR7bWF0Y2hlc1syXX1gIDogJycpO1xuICB9XG5cbiAgLy8gXCJsZWZ0IHJpZ2h0XCIsIFwidG9wIGJvdHRvbVwiIGV0Yy4gcGxhY2VtZW50cyBhbHNvIGNvbnNpZGVyZWQgaW5jb3JyZWN0LlxuICBpZiAoWydsZWZ0IHJpZ2h0JywgJ3JpZ2h0IGxlZnQnLCAndG9wIGJvdHRvbScsICdib3R0b20gdG9wJ10uaW5kZXhPZihwbGFjZW1lbnQpICE9PSAtMSkge1xuICAgIHBsYWNlbWVudCA9ICdhdXRvJztcbiAgfVxuXG4gIHBsYWNlbWVudCA9IGNvbXB1dGVBdXRvUGxhY2VtZW50KFxuICAgIHBsYWNlbWVudCxcbiAgICBob3N0RWxQb3NpdGlvbixcbiAgICB0YXJnZXRFbGVtZW50LFxuICAgIGhvc3RFbGVtZW50LFxuICAgIG9wdGlvbnMgPyBvcHRpb25zLmFsbG93ZWRQb3NpdGlvbnMgOiB1bmRlZmluZWRcbiAgKTtcblxuICBjb25zdCB0YXJnZXRPZmZzZXQgPSBnZXRUYXJnZXRPZmZzZXRzKHRhcmdldEVsZW1lbnQsIGhvc3RFbFBvc2l0aW9uLCBwbGFjZW1lbnQpO1xuXG4gIHJldHVybiB7XG4gICAgb3B0aW9uczogb3B0aW9ucyB8fCB7bW9kaWZpZXJzOiB7fX0sXG4gICAgaW5zdGFuY2U6IHtcbiAgICAgIHRhcmdldDogdGFyZ2V0RWxlbWVudCxcbiAgICAgIGhvc3Q6IGhvc3RFbGVtZW50LFxuICAgICAgYXJyb3c6IHZvaWQgMFxuICAgIH0sXG4gICAgb2Zmc2V0czoge1xuICAgICAgdGFyZ2V0OiB0YXJnZXRPZmZzZXQsXG4gICAgICBob3N0OiBob3N0RWxQb3NpdGlvbixcbiAgICAgIGFycm93OiB2b2lkIDBcbiAgICB9LFxuICAgIHBvc2l0aW9uRml4ZWQ6IGZhbHNlLFxuICAgIHBsYWNlbWVudCxcbiAgICBwbGFjZW1lbnRBdXRvXG4gIH07XG59XG4iXX0=","import { getBoundaries, isModifierEnabled } from '../utils';\nexport function preventOverflow(data) {\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n data.options.modifiers.preventOverflow?.boundariesElement || 'scrollParent', false // positionFixed\n );\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n const order = ['left', 'right', 'top', 'bottom'];\n const check = {\n primary(placement) {\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0)) {\n value = Math.max(data.offsets.target[placement] ?? 0, boundaries[placement] ?? 0);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const isPlacementHorizontal = placement === 'right';\n const mainSide = isPlacementHorizontal ? 'left' : 'top';\n const measurement = isPlacementHorizontal ? 'width' : 'height';\n let value = data.offsets.target[mainSide];\n // escapeWithReference\n if ((data.offsets.target[placement] ?? 0) > (boundaries[placement] ?? 0)) {\n value = Math.min(data.offsets.target[mainSide] ?? 0, (boundaries[placement] ?? 0) - data.offsets.target[measurement]);\n }\n return { [mainSide]: value };\n }\n };\n order.forEach((placement) => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n data.offsets.target = {\n ...data.offsets.target,\n ...side(placement)\n };\n });\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmVudE92ZXJmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Bvc2l0aW9uaW5nL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUc1RCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVU7SUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtRQUN2RCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsd0JBQXdCO0lBQ3hCLDZGQUE2RjtJQUM3RiwrQ0FBK0M7SUFDL0MsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGtDQUFrQztJQUNuRixNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUMvRCxZQUFZLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUN0QixZQUFZLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN2QixZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRWpDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNsQixDQUFDLEVBQUUsVUFBVTtJQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsSUFBSSxjQUFjLEVBQzNFLEtBQUssQ0FBQyxnQkFBZ0I7S0FDdkIsQ0FBQztJQUVGLHdCQUF3QjtJQUN4Qiw4RUFBOEU7SUFDOUUsWUFBWSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDdkIsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDekIsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUV4QyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWpELE1BQU0sS0FBSyxHQUFHO1FBQ1osT0FBTyxDQUFDLFNBQXdCO1lBQzlCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLDhCQUE4QjtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbkY7WUFFRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsU0FBUyxDQUFDLFNBQXdCO1lBQ2hDLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxLQUFLLE9BQU8sQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDeEQsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQy9ELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTFDLHNCQUFzQjtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDbEMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQ2hFLENBQUM7YUFDSDtZQUVELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQy9CLENBQUM7S0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLFNBQTBCLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Qm91bmRhcmllcywgaXNNb2RpZmllckVuYWJsZWQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBEYXRhLCBPZmZzZXRzIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZlbnRPdmVyZmxvdyhkYXRhOiBEYXRhKSB7XG4gIGlmICghaXNNb2RpZmllckVuYWJsZWQoZGF0YS5vcHRpb25zLCAncHJldmVudE92ZXJmbG93JykpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8vIE5PVEU6IERPTSBhY2Nlc3MgaGVyZVxuICAvLyByZXNldHMgdGhlIHRhcmdldCBPZmZzZXRzJ3MgcG9zaXRpb24gc28gdGhhdCB0aGUgZG9jdW1lbnQgc2l6ZSBjYW4gYmUgY2FsY3VsYXRlZCBleGNsdWRpbmdcbiAgLy8gdGhlIHNpemUgb2YgdGhlIHRhcmdldE9mZnNldHMgZWxlbWVudCBpdHNlbGZcbiAgY29uc3QgdHJhbnNmb3JtUHJvcCA9ICd0cmFuc2Zvcm0nO1xuICBjb25zdCB0YXJnZXRTdHlsZXMgPSBkYXRhLmluc3RhbmNlLnRhcmdldC5zdHlsZTsgLy8gYXNzaWdubWVudCB0byBoZWxwIG1pbmlmaWNhdGlvblxuICBjb25zdCB7IHRvcCwgbGVmdCwgW3RyYW5zZm9ybVByb3BdOiB0cmFuc2Zvcm0gfSA9IHRhcmdldFN0eWxlcztcbiAgdGFyZ2V0U3R5bGVzLnRvcCA9ICcnO1xuICB0YXJnZXRTdHlsZXMubGVmdCA9ICcnO1xuICB0YXJnZXRTdHlsZXNbdHJhbnNmb3JtUHJvcF0gPSAnJztcblxuICBjb25zdCBib3VuZGFyaWVzID0gZ2V0Qm91bmRhcmllcyhcbiAgICBkYXRhLmluc3RhbmNlLnRhcmdldCxcbiAgICBkYXRhLmluc3RhbmNlLmhvc3QsXG4gICAgMCwgLy8gcGFkZGluZ1xuICAgIGRhdGEub3B0aW9ucy5tb2RpZmllcnMucHJldmVudE92ZXJmbG93Py5ib3VuZGFyaWVzRWxlbWVudCB8fCAnc2Nyb2xsUGFyZW50JyxcbiAgICBmYWxzZSAvLyBwb3NpdGlvbkZpeGVkXG4gICk7XG5cbiAgLy8gTk9URTogRE9NIGFjY2VzcyBoZXJlXG4gIC8vIHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdHlsZSBwcm9wZXJ0aWVzIGFmdGVyIHRoZSBvZmZzZXRzIGhhdmUgYmVlbiBjb21wdXRlZFxuICB0YXJnZXRTdHlsZXMudG9wID0gdG9wO1xuICB0YXJnZXRTdHlsZXMubGVmdCA9IGxlZnQ7XG4gIHRhcmdldFN0eWxlc1t0cmFuc2Zvcm1Qcm9wXSA9IHRyYW5zZm9ybTtcblxuICBjb25zdCBvcmRlciA9IFsnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJ107XG5cbiAgY29uc3QgY2hlY2sgPSB7XG4gICAgcHJpbWFyeShwbGFjZW1lbnQ6IGtleW9mIE9mZnNldHMpIHtcbiAgICAgIGxldCB2YWx1ZSA9IGRhdGEub2Zmc2V0cy50YXJnZXRbcGxhY2VtZW50XTtcbiAgICAgIC8vIG9wdGlvbnMuZXNjYXBlV2l0aFJlZmVyZW5jZVxuICAgICAgaWYgKChkYXRhLm9mZnNldHMudGFyZ2V0W3BsYWNlbWVudF0gPz8gMCkgPCAoYm91bmRhcmllc1twbGFjZW1lbnRdID8/IDApKSB7XG4gICAgICAgIHZhbHVlID0gTWF0aC5tYXgoZGF0YS5vZmZzZXRzLnRhcmdldFtwbGFjZW1lbnRdID8/IDAsIGJvdW5kYXJpZXNbcGxhY2VtZW50XSA/PyAwKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgW3BsYWNlbWVudF06IHZhbHVlIH07XG4gICAgfSxcbiAgICBzZWNvbmRhcnkocGxhY2VtZW50OiBrZXlvZiBPZmZzZXRzKSB7XG4gICAgICBjb25zdCBpc1BsYWNlbWVudEhvcml6b250YWwgPSBwbGFjZW1lbnQgPT09ICdyaWdodCc7XG4gICAgICBjb25zdCBtYWluU2lkZSA9IGlzUGxhY2VtZW50SG9yaXpvbnRhbCA/ICdsZWZ0JyA6ICd0b3AnO1xuICAgICAgY29uc3QgbWVhc3VyZW1lbnQgPSBpc1BsYWNlbWVudEhvcml6b250YWwgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG4gICAgICBsZXQgdmFsdWUgPSBkYXRhLm9mZnNldHMudGFyZ2V0W21haW5TaWRlXTtcblxuICAgICAgLy8gZXNjYXBlV2l0aFJlZmVyZW5jZVxuICAgICAgaWYgKChkYXRhLm9mZnNldHMudGFyZ2V0W3BsYWNlbWVudF0gPz8gMCkgPiAoYm91bmRhcmllc1twbGFjZW1lbnRdID8/IDApKSB7XG4gICAgICAgIHZhbHVlID0gTWF0aC5taW4oXG4gICAgICAgICAgZGF0YS5vZmZzZXRzLnRhcmdldFttYWluU2lkZV0gPz8gMCxcbiAgICAgICAgICAoYm91bmRhcmllc1twbGFjZW1lbnRdID8/IDApIC0gZGF0YS5vZmZzZXRzLnRhcmdldFttZWFzdXJlbWVudF1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgW21haW5TaWRlXTogdmFsdWUgfTtcbiAgICB9XG4gIH07XG5cbiAgb3JkZXIuZm9yRWFjaCgocGxhY2VtZW50KSA9PiB7XG4gICAgY29uc3Qgc2lkZSA9IFsnbGVmdCcsICd0b3AnLCAnc3RhcnQnXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xID8gY2hlY2tbJ3ByaW1hcnknXSA6IGNoZWNrWydzZWNvbmRhcnknXTtcblxuICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAuLi5kYXRhLm9mZnNldHMudGFyZ2V0LFxuICAgICAgLi4uc2lkZShwbGFjZW1lbnQgYXMga2V5b2YgT2Zmc2V0cylcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==","export function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n if (shiftVariation) {\n const { host, target } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: (host[side] ?? 0) + host[measurement] - target[measurement]\n }\n };\n data.offsets.target = {\n ...target, ...{\n [side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])\n }\n };\n }\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvbW9kaWZpZXJzL3NoaWZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxLQUFLLENBQUMsSUFBVTtJQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLGNBQWMsRUFBRTtRQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUVwRCxNQUFNLFlBQVksR0FBRztZQUNuQixLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QixHQUFHLEVBQUU7Z0JBQ0gsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUNwRTtTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRztZQUNwQixHQUFHLE1BQU0sRUFBRSxHQUFHO2dCQUNaLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaGlmdChkYXRhOiBEYXRhKTogRGF0YSB7XG4gIGNvbnN0IHBsYWNlbWVudCA9IGRhdGEucGxhY2VtZW50O1xuICBjb25zdCBiYXNlUGxhY2VtZW50ID0gcGxhY2VtZW50LnNwbGl0KCcgJylbMF07XG4gIGNvbnN0IHNoaWZ0VmFyaWF0aW9uID0gcGxhY2VtZW50LnNwbGl0KCcgJylbMV07XG5cbiAgaWYgKHNoaWZ0VmFyaWF0aW9uKSB7XG4gICAgY29uc3QgeyBob3N0LCB0YXJnZXQgfSA9IGRhdGEub2Zmc2V0cztcbiAgICBjb25zdCBpc1ZlcnRpY2FsID0gWydib3R0b20nLCAndG9wJ10uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG4gICAgY29uc3Qgc2lkZSA9IGlzVmVydGljYWwgPyAnbGVmdCcgOiAndG9wJztcbiAgICBjb25zdCBtZWFzdXJlbWVudCA9IGlzVmVydGljYWwgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG5cbiAgICBjb25zdCBzaGlmdE9mZnNldHMgPSB7XG4gICAgICBzdGFydDogeyBbc2lkZV06IGhvc3Rbc2lkZV0gfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBbc2lkZV06IChob3N0W3NpZGVdID8/IDApICsgaG9zdFttZWFzdXJlbWVudF0gLSB0YXJnZXRbbWVhc3VyZW1lbnRdXG4gICAgICB9XG4gICAgfTtcblxuICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAuLi50YXJnZXQsIC4uLntcbiAgICAgICAgW3NpZGVdOiAoc2lkZSA9PT0gc2hpZnRWYXJpYXRpb24gPyBzaGlmdE9mZnNldHMuc3RhcnRbc2lkZV0gOiBzaGlmdE9mZnNldHMuZW5kW3NpZGVdKVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==","import { MapPlacementInToRL } from './models';\nimport { arrow, flip, initData, preventOverflow, shift } from './modifiers';\nimport { getOffsets, getReferenceOffsets, setStyles, updateContainerClass } from './utils';\nexport class Positioning {\n position(hostElement, targetElement /*, round = true*/) {\n return this.offset(hostElement, targetElement /*, false*/);\n }\n offset(hostElement, targetElement /*, round = true*/) {\n return getReferenceOffsets(targetElement, hostElement);\n }\n positionElements(hostElement, targetElement, position, appendToBody, options) {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n return chainOfModifiers.reduce((modifiedData, modifier) => modifier(modifiedData), data);\n }\n}\nconst positionService = new Positioning();\nexport function positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {\n const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);\n if (!data) {\n return;\n }\n const offsets = getOffsets(data);\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n updateContainerClass(data, renderer);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcG9zaXRpb25pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcG9zaXRpb25pbmcvbmctcG9zaXRpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUEwQixrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUczRixNQUFNLE9BQU8sV0FBVztJQUN0QixRQUFRLENBQUMsV0FBd0IsRUFBRSxhQUEwQixDQUFBLGtCQUFrQjtRQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQSxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQXdCLEVBQUUsYUFBMEIsQ0FBQSxrQkFBa0I7UUFDM0UsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGdCQUFnQixDQUNkLFdBQStCLEVBQy9CLGFBQWlDLEVBQ2pDLFFBQWdCLEVBQ2hCLFlBQXNCLEVBQ3RCLE9BQWlCO1FBRWpCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxRQUEyQyxDQUFDLENBQUM7UUFDbEYsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQ2xELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUUxQyxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFdBQStCLEVBQy9CLGFBQWlDLEVBQ2pDLFNBQWlCLEVBQ2pCLFlBQXNCLEVBQ3RCLE9BQWlCLEVBQ2pCLFFBQW9CO0lBR3BCLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FDM0MsV0FBVyxFQUNYLGFBQWEsRUFDYixTQUFTLEVBQ1QsWUFBWSxFQUNaLE9BQU8sQ0FDUixDQUFDO0lBRUYsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE9BQU87S0FDUjtJQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxTQUFTLENBQUMsYUFBYSxFQUFFO1FBQ3ZCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLEdBQUcsRUFBRSxLQUFLO1FBQ1YsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsZUFBZSxPQUFPLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLFVBQVU7S0FDbkUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUViLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBjb3B5cmlnaHQgVmFsb3IgU29mdHdhcmVcbiAqIEBjb3B5cmlnaHQgRmVkZXJpY28gWml2b2xvIGFuZCBjb250cmlidXRvcnNcbiAqL1xuaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhLCBPZmZzZXRzLCBPcHRpb25zLCBNYXBQbGFjZW1lbnRJblRvUkwgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IGFycm93LCBmbGlwLCBpbml0RGF0YSwgcHJldmVudE92ZXJmbG93LCBzaGlmdCB9IGZyb20gJy4vbW9kaWZpZXJzJztcblxuaW1wb3J0IHsgZ2V0T2Zmc2V0cywgZ2V0UmVmZXJlbmNlT2Zmc2V0cywgc2V0U3R5bGVzLCB1cGRhdGVDb250YWluZXJDbGFzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbmluZyB7XG4gIHBvc2l0aW9uKGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQvKiwgcm91bmQgPSB0cnVlKi8pOiBPZmZzZXRzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vZmZzZXQoaG9zdEVsZW1lbnQsIHRhcmdldEVsZW1lbnQvKiwgZmFsc2UqLyk7XG4gIH1cblxuICBvZmZzZXQoaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudC8qLCByb3VuZCA9IHRydWUqLyk6IE9mZnNldHMgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRSZWZlcmVuY2VPZmZzZXRzKHRhcmdldEVsZW1lbnQsIGhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHBvc2l0aW9uRWxlbWVudHMoXG4gICAgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgcG9zaXRpb246IHN0cmluZyxcbiAgICBhcHBlbmRUb0JvZHk/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiBPcHRpb25zXG4gICk6IERhdGEgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNoYWluT2ZNb2RpZmllcnMgPSBbZmxpcCwgc2hpZnQsIHByZXZlbnRPdmVyZmxvdywgYXJyb3ddO1xuICAgIGNvbnN0IF9wb3NpdGlvbiA9IE1hcFBsYWNlbWVudEluVG9STFtwb3NpdGlvbiBhcyBrZXlvZiB0eXBlb2YgTWFwUGxhY2VtZW50SW5Ub1JMXTtcbiAgICBjb25zdCBkYXRhID0gaW5pdERhdGEodGFyZ2V0RWxlbWVudCwgaG9zdEVsZW1lbnQsIF9wb3NpdGlvbiwgb3B0aW9ucyk7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYWluT2ZNb2RpZmllcnMucmVkdWNlKFxuICAgICAgKG1vZGlmaWVkRGF0YSwgbW9kaWZpZXIpID0+IG1vZGlmaWVyKG1vZGlmaWVkRGF0YSksXG4gICAgICBkYXRhXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBwb3NpdGlvblNlcnZpY2UgPSBuZXcgUG9zaXRpb25pbmcoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uRWxlbWVudHMoXG4gIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgcGxhY2VtZW50OiBzdHJpbmcsXG4gIGFwcGVuZFRvQm9keT86IGJvb2xlYW4sXG4gIG9wdGlvbnM/OiBPcHRpb25zLFxuICByZW5kZXJlcj86IFJlbmRlcmVyMlxuKTogdm9pZCB7XG5cbiAgY29uc3QgZGF0YSA9IHBvc2l0aW9uU2VydmljZS5wb3NpdGlvbkVsZW1lbnRzKFxuICAgIGhvc3RFbGVtZW50LFxuICAgIHRhcmdldEVsZW1lbnQsXG4gICAgcGxhY2VtZW50LFxuICAgIGFwcGVuZFRvQm9keSxcbiAgICBvcHRpb25zXG4gICk7XG5cbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb2Zmc2V0cyA9IGdldE9mZnNldHMoZGF0YSk7XG5cbiAgc2V0U3R5bGVzKHRhcmdldEVsZW1lbnQsIHtcbiAgICAnd2lsbC1jaGFuZ2UnOiAndHJhbnNmb3JtJyxcbiAgICB0b3A6ICcwcHgnLFxuICAgIGxlZnQ6ICcwcHgnLFxuICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZTNkKCR7b2Zmc2V0cy5sZWZ0fXB4LCAke29mZnNldHMudG9wfXB4LCAwcHgpYFxuICB9LCByZW5kZXJlcik7XG5cbiAgaWYgKGRhdGEuaW5zdGFuY2UuYXJyb3cpIHtcbiAgICBzZXRTdHlsZXMoZGF0YS5pbnN0YW5jZS5hcnJvdywgZGF0YS5vZmZzZXRzLmFycm93LCByZW5kZXJlcik7XG4gIH1cblxuICB1cGRhdGVDb250YWluZXJDbGFzcyhkYXRhLCByZW5kZXJlcik7XG59XG4iXX0=","import { Injectable, ElementRef, RendererFactory2, Inject, PLATFORM_ID, NgZone } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { positionElements } from './ng-positioning';\nimport { fromEvent, merge, of, animationFrameScheduler, Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class PositioningService {\n constructor(ngZone, rendererFactory, platformId) {\n this.update$$ = new Subject();\n this.positionElements = new Map();\n this.isDisabled = false;\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(fromEvent(window, 'scroll', { passive: true }), fromEvent(window, 'resize', { passive: true }), of(0, animationFrameScheduler), this.update$$);\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach((positionElement) => {\n positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));\n });\n });\n });\n }\n }\n position(options) {\n this.addPositionElement(options);\n }\n get event$() {\n return this.triggerEvent$;\n }\n disable() {\n this.isDisabled = true;\n }\n enable() {\n this.isDisabled = false;\n }\n addPositionElement(options) {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n calcPosition() {\n this.update$$.next(null);\n }\n deletePositionElement(elRef) {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n setOptions(options) {\n this.options = options;\n }\n}\nPositioningService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PositioningService, deps: [{ token: i0.NgZone }, { token: i0.RendererFactory2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nPositioningService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PositioningService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PositioningService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; } });\nfunction _getHtmlElement(element) {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n return element ?? null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy9wb3NpdGlvbmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBdUMxRixNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ0UsTUFBYyxFQUNkLGVBQWlDLEVBQ1osVUFBa0I7UUFSakMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUXpCLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQ3hCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQzlDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ3BDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUMsRUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO2dCQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO3dCQUNuQixPQUFPO3FCQUNSO29CQUVELElBQUksQ0FBQyxnQkFBZ0I7d0JBQ3JCLDhEQUE4RDt5QkFDM0QsT0FBTyxDQUFDLENBQUMsZUFBb0IsRUFBRSxFQUFFO3dCQUNoQyxnQkFBZ0IsQ0FDZCxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUN2QyxlQUFlLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUN4QyxlQUFlLENBQUMsVUFBVSxFQUMxQixlQUFlLENBQUMsWUFBWSxFQUM1QixJQUFJLENBQUMsT0FBTyxFQUNaLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUMzQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsT0FBMkI7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUEyQjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBaUI7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7OytHQTFFVSxrQkFBa0Isd0VBVW5CLFdBQVc7bUhBVlYsa0JBQWtCLGNBRE4sTUFBTTsyRkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBVzNCLE1BQU07MkJBQUMsV0FBVzs7QUFtRXZCLFNBQVMsZUFBZSxDQUFDLE9BQTJDO0lBQ2xFLGtDQUFrQztJQUNsQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtRQUMvQixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDeEM7SUFFRCxJQUFJLE9BQU8sWUFBWSxVQUFVLEVBQUU7UUFDakMsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDO0tBQzlCO0lBRUQsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbGVtZW50UmVmLCBSZW5kZXJlckZhY3RvcnkyLCBJbmplY3QsIFBMQVRGT1JNX0lELCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgcG9zaXRpb25FbGVtZW50cyB9IGZyb20gJy4vbmctcG9zaXRpb25pbmcnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBvZiwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbmluZ09wdGlvbnMge1xuICAvKiogVGhlIERPTSBlbGVtZW50LCBFbGVtZW50UmVmLCBvciBhIHNlbGVjdG9yIHN0cmluZyBvZiBhbiBlbGVtZW50IHdoaWNoIHdpbGwgYmUgbW92ZWQgKi9cbiAgZWxlbWVudD86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IHN0cmluZztcblxuICAvKiogVGhlIERPTSBlbGVtZW50LCBFbGVtZW50UmVmLCBvciBhIHNlbGVjdG9yIHN0cmluZyBvZiBhbiBlbGVtZW50IHdoaWNoIHRoZSBlbGVtZW50IHdpbGwgYmUgYXR0YWNoZWQgdG8gICovXG4gIHRhcmdldD86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgdGhlIGZvcm0gJ3ZlcnQtYXR0YWNobWVudCBob3Jpei1hdHRhY2htZW50JyBvciAncGxhY2VtZW50J1xuICAgKiAtIHBsYWNlbWVudCBjYW4gYmUgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIlxuICAgKiBub3QgeWV0IHN1cHBvcnRlZDpcbiAgICogLSB2ZXJ0LWF0dGFjaG1lbnQgY2FuIGJlIGFueSBvZiAndG9wJywgJ21pZGRsZScsICdib3R0b20nXG4gICAqIC0gaG9yaXotYXR0YWNobWVudCBjYW4gYmUgYW55IG9mICdsZWZ0JywgJ2NlbnRlcicsICdyaWdodCdcbiAgICovXG4gIGF0dGFjaG1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIEEgc3RyaW5nIHNpbWlsYXIgdG8gYGF0dGFjaG1lbnRgLiBUaGUgb25lIGRpZmZlcmVuY2UgaXMgdGhhdCwgaWYgaXQncyBub3QgcHJvdmlkZWQsXG4gICAqIGB0YXJnZXRBdHRhY2htZW50YCB3aWxsIGFzc3VtZSB0aGUgbWlycm9yIGltYWdlIG9mIGBhdHRhY2htZW50YC5cbiAgICovXG4gIHRhcmdldEF0dGFjaG1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIEEgc3RyaW5nIG9mIHRoZSBmb3JtICd2ZXJ0LW9mZnNldCBob3Jpei1vZmZzZXQnXG4gICAqIC0gdmVydC1vZmZzZXQgYW5kIGhvcml6LW9mZnNldCBjYW4gYmUgb2YgdGhlIGZvcm0gXCIyMHB4XCIgb3IgXCI1NSVcIlxuICAgKi9cbiAgb2Zmc2V0Pzogc3RyaW5nO1xuXG4gIC8qKiBBIHN0cmluZyBzaW1pbGFyIHRvIGBvZmZzZXRgLCBidXQgcmVmZXJyaW5nIHRvIHRoZSBvZmZzZXQgb2YgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRPZmZzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqIElmIHRydWUgY29tcG9uZW50IHdpbGwgYmUgYXR0YWNoZWQgdG8gYm9keSAqL1xuICBhcHBlbmRUb0JvZHk/OiBib29sZWFuO1xufVxuXG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uaW5nU2VydmljZSB7XG4gIHByaXZhdGUgb3B0aW9ucz86IE9wdGlvbnM7XG4gIHByaXZhdGUgdXBkYXRlJCQgPSBuZXcgU3ViamVjdDxudWxsPigpO1xuICBwcml2YXRlIHBvc2l0aW9uRWxlbWVudHMgPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgdHJpZ2dlckV2ZW50JD86IE9ic2VydmFibGU8bnVtYmVyfEV2ZW50fG51bGw+O1xuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogbnVtYmVyXG4gICkge1xuXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSB7XG4gICAgICBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCQgPSBtZXJnZShcbiAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJywgeyBwYXNzaXZlOiB0cnVlIH0pLFxuICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnLCB7IHBhc3NpdmU6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgICAgIG9mKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICAgICAgICB0aGlzLnVwZGF0ZSQkXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucG9zaXRpb25FbGVtZW50c1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAuZm9yRWFjaCgocG9zaXRpb25FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcG9zaXRpb25FbGVtZW50cyhcbiAgICAgICAgICAgICAgICBfZ2V0SHRtbEVsZW1lbnQocG9zaXRpb25FbGVtZW50LnRhcmdldCksXG4gICAgICAgICAgICAgICAgX2dldEh0bWxFbGVtZW50KHBvc2l0aW9uRWxlbWVudC5lbGVtZW50KSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbkVsZW1lbnQuYXR0YWNobWVudCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbkVsZW1lbnQuYXBwZW5kVG9Cb2R5LFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHBvc2l0aW9uKG9wdGlvbnM6IFBvc2l0aW9uaW5nT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuYWRkUG9zaXRpb25FbGVtZW50KG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGV2ZW50JCgpOiBPYnNlcnZhYmxlPG51bWJlcnxFdmVudHxudWxsPnx1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFdmVudCQ7XG4gIH1cblxuICBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG4gIH1cblxuICBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XG4gIH1cblxuICBhZGRQb3NpdGlvbkVsZW1lbnQob3B0aW9uczogUG9zaXRpb25pbmdPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvbkVsZW1lbnRzLnNldChfZ2V0SHRtbEVsZW1lbnQob3B0aW9ucy5lbGVtZW50KSwgb3B0aW9ucyk7XG4gIH1cblxuICBjYWxjUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGUkJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgZGVsZXRlUG9zaXRpb25FbGVtZW50KGVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvbkVsZW1lbnRzLmRlbGV0ZShfZ2V0SHRtbEVsZW1lbnQoZWxSZWYpKTtcbiAgfVxuXG4gIHNldE9wdGlvbnMob3B0aW9uczogT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2dldEh0bWxFbGVtZW50KGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBzdHJpbmcpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAvLyBpdCBtZWFucyB0aGF0IHdlIGdvdCBhIHNlbGVjdG9yXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50KTtcbiAgfVxuXG4gIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xuICAgIHJldHVybiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudCA/PyBudWxsO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC1wb3NpdGlvbmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3NpdGlvbmluZy9uZ3gtYm9vdHN0cmFwLXBvc2l0aW9uaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}