@thednp/shorty 2.0.5 → 2.0.7

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 (223) hide show
  1. package/README.md +1 -3
  2. package/dist/shorty.cjs +1 -17
  3. package/dist/shorty.cjs.map +1 -1
  4. package/dist/shorty.d.ts +2033 -1719
  5. package/dist/shorty.js +1 -17
  6. package/dist/shorty.js.map +1 -1
  7. package/dist/shorty.mjs +514 -516
  8. package/dist/shorty.mjs.map +1 -1
  9. package/package.json +13 -24
  10. package/src/attr/hasAttribute.ts +2 -1
  11. package/src/attr/hasAttributeNS.ts +5 -2
  12. package/src/attr/removeAttribute.ts +2 -1
  13. package/src/attr/removeAttributeNS.ts +5 -2
  14. package/src/attr/setAttributeNS.ts +6 -2
  15. package/src/boolean/isApple.ts +11 -10
  16. package/src/boolean/isFirefox.ts +3 -5
  17. package/src/boolean/isMobile.ts +9 -14
  18. package/src/boolean/support3DTransform.ts +2 -3
  19. package/src/boolean/supportAnimation.ts +2 -3
  20. package/src/boolean/supportPassive.ts +7 -7
  21. package/src/boolean/supportTouch.ts +4 -2
  22. package/src/boolean/supportTransform.ts +2 -3
  23. package/src/boolean/supportTransition.ts +2 -3
  24. package/src/event/off.ts +5 -1
  25. package/src/event/on.ts +5 -1
  26. package/src/event/one.ts +5 -5
  27. package/src/get/getBoundingClientRect.ts +10 -5
  28. package/src/get/getDocument.ts +4 -4
  29. package/src/get/getDocumentBody.ts +1 -1
  30. package/src/get/getDocumentElement.ts +1 -1
  31. package/src/get/getDocumentHead.ts +4 -2
  32. package/src/get/getElementAnimationDelay.ts +9 -6
  33. package/src/get/getElementAnimationDuration.ts +9 -6
  34. package/src/get/getElementStyle.ts +2 -2
  35. package/src/get/getElementTransitionDelay.ts +9 -8
  36. package/src/get/getElementTransitionDuration.ts +9 -8
  37. package/src/get/getNodeScroll.ts +4 -2
  38. package/src/get/getParentNode.ts +5 -5
  39. package/src/get/getRectRelativeToOffsetParent.ts +8 -5
  40. package/src/get/getUID.ts +1 -1
  41. package/src/get/getWindow.ts +2 -2
  42. package/src/index.ts +482 -440
  43. package/src/interface/event.d.ts +49 -41
  44. package/src/interface/fn.ts +1 -0
  45. package/src/interface/originalEvent.d.ts +1 -1
  46. package/src/is/isArray.ts +2 -1
  47. package/src/is/isCanvas.ts +2 -2
  48. package/src/is/isCustomElement.ts +5 -3
  49. package/src/is/isDocument.ts +3 -2
  50. package/src/is/isElement.ts +3 -2
  51. package/src/is/isElementInScrollRange.ts +3 -3
  52. package/src/is/isElementInViewport.ts +5 -4
  53. package/src/is/isElementsArray.ts +2 -2
  54. package/src/is/isFunction.ts +4 -2
  55. package/src/is/isHTMLCollection.ts +2 -2
  56. package/src/is/isHTMLElement.ts +1 -1
  57. package/src/is/isHTMLImageElement.ts +2 -2
  58. package/src/is/isJSON.ts +2 -2
  59. package/src/is/isMap.ts +3 -3
  60. package/src/is/isMedia.ts +9 -3
  61. package/src/is/isNode.ts +5 -3
  62. package/src/is/isNodeList.ts +2 -2
  63. package/src/is/isNumber.ts +2 -1
  64. package/src/is/isObject.ts +1 -1
  65. package/src/is/isRTL.ts +2 -2
  66. package/src/is/isSVGElement.ts +2 -2
  67. package/src/is/isScaledElement.ts +4 -3
  68. package/src/is/isShadowRoot.ts +2 -2
  69. package/src/is/isString.ts +2 -1
  70. package/src/is/isTableElement.ts +6 -3
  71. package/src/is/isWeakMap.ts +3 -3
  72. package/src/is/isWindow.ts +2 -2
  73. package/src/misc/Float32ArrayFrom.ts +3 -2
  74. package/src/misc/Float64ArrayFrom.ts +3 -2
  75. package/src/misc/ObjectAssign.ts +15 -4
  76. package/src/misc/ObjectEntries.ts +1 -1
  77. package/src/misc/ObjectHasOwn.ts +3 -2
  78. package/src/misc/ObjectKeys.ts +2 -1
  79. package/src/misc/ObjectValues.ts +3 -2
  80. package/src/misc/createCustomEvent.ts +7 -4
  81. package/src/misc/createElement.ts +6 -4
  82. package/src/misc/createElementNS.ts +3 -3
  83. package/src/misc/data.ts +2 -2
  84. package/src/misc/dispatchEvent.ts +2 -1
  85. package/src/misc/distinct.ts +2 -1
  86. package/src/misc/emulateAnimationEnd.ts +8 -5
  87. package/src/misc/emulateTransitionEnd.ts +8 -5
  88. package/src/misc/focus.ts +2 -1
  89. package/src/misc/focusTrap.ts +17 -14
  90. package/src/misc/getInstance.ts +1 -1
  91. package/src/misc/normalizeOptions.ts +15 -12
  92. package/src/misc/normalizeValue.ts +8 -6
  93. package/src/misc/setElementStyle.ts +9 -6
  94. package/src/misc/timer.ts +12 -5
  95. package/src/selectors/closest.ts +2 -2
  96. package/src/selectors/getCustomElements.ts +3 -3
  97. package/src/selectors/getElementById.ts +1 -1
  98. package/src/selectors/getElementsByClassName.ts +9 -4
  99. package/src/selectors/getElementsByTagName.ts +9 -4
  100. package/src/selectors/matches.ts +2 -1
  101. package/src/selectors/querySelector.ts +3 -3
  102. package/src/selectors/querySelectorAll.ts +2 -2
  103. package/src/strings/DOMContentLoadedEvent.ts +1 -1
  104. package/src/strings/DOMMouseScrollEvent.ts +1 -1
  105. package/src/strings/abortEvent.ts +1 -1
  106. package/src/strings/addEventListener.ts +1 -1
  107. package/src/strings/animationDelay.ts +1 -1
  108. package/src/strings/animationDuration.ts +1 -1
  109. package/src/strings/animationEndEvent.ts +1 -1
  110. package/src/strings/animationName.ts +1 -1
  111. package/src/strings/ariaChecked.ts +1 -1
  112. package/src/strings/ariaDescribedBy.ts +1 -1
  113. package/src/strings/ariaDescription.ts +1 -1
  114. package/src/strings/ariaExpanded.ts +1 -1
  115. package/src/strings/ariaHasPopup.ts +1 -1
  116. package/src/strings/ariaHidden.ts +1 -1
  117. package/src/strings/ariaLabel.ts +1 -1
  118. package/src/strings/ariaLabelledBy.ts +1 -1
  119. package/src/strings/ariaModal.ts +1 -1
  120. package/src/strings/ariaPressed.ts +1 -1
  121. package/src/strings/ariaSelected.ts +1 -1
  122. package/src/strings/ariaValueMax.ts +1 -1
  123. package/src/strings/ariaValueMin.ts +1 -1
  124. package/src/strings/ariaValueNow.ts +1 -1
  125. package/src/strings/ariaValueText.ts +1 -1
  126. package/src/strings/beforeunloadEvent.ts +1 -1
  127. package/src/strings/bezierEasings.ts +25 -25
  128. package/src/strings/blurEvent.ts +1 -1
  129. package/src/strings/changeEvent.ts +1 -1
  130. package/src/strings/contextmenuEvent.ts +1 -1
  131. package/src/strings/dragEvent.ts +1 -1
  132. package/src/strings/dragendEvent.ts +1 -1
  133. package/src/strings/dragenterEvent.ts +1 -1
  134. package/src/strings/dragleaveEvent.ts +1 -1
  135. package/src/strings/dragoverEvent.ts +1 -1
  136. package/src/strings/dragstartEvent.ts +1 -1
  137. package/src/strings/errorEvent.ts +1 -1
  138. package/src/strings/focusEvent.ts +1 -1
  139. package/src/strings/focusEvents.ts +1 -1
  140. package/src/strings/focusinEvent.ts +1 -1
  141. package/src/strings/focusoutEvent.ts +1 -1
  142. package/src/strings/gesturechangeEvent.ts +1 -1
  143. package/src/strings/gestureendEvent.ts +1 -1
  144. package/src/strings/gesturestartEvent.ts +1 -1
  145. package/src/strings/keyAlt.ts +1 -1
  146. package/src/strings/keyArrowDown.ts +1 -1
  147. package/src/strings/keyArrowLeft.ts +1 -1
  148. package/src/strings/keyArrowRight.ts +1 -1
  149. package/src/strings/keyArrowUp.ts +1 -1
  150. package/src/strings/keyBackspace.ts +1 -1
  151. package/src/strings/keyCapsLock.ts +1 -1
  152. package/src/strings/keyControl.ts +1 -1
  153. package/src/strings/keyDelete.ts +1 -1
  154. package/src/strings/keyEnter.ts +1 -1
  155. package/src/strings/keyEscape.ts +1 -1
  156. package/src/strings/keyInsert.ts +1 -1
  157. package/src/strings/keyMeta.ts +1 -1
  158. package/src/strings/keyNumpadEnter.ts +1 -1
  159. package/src/strings/keyPause.ts +1 -1
  160. package/src/strings/keyScrollLock.ts +1 -1
  161. package/src/strings/keyShift.ts +1 -1
  162. package/src/strings/keySpace.ts +1 -1
  163. package/src/strings/keyTab.ts +1 -1
  164. package/src/strings/keyboardEventKeys.ts +19 -19
  165. package/src/strings/keydownEvent.ts +1 -1
  166. package/src/strings/keypressEvent.ts +1 -1
  167. package/src/strings/keyupEvent.ts +1 -1
  168. package/src/strings/loadEvent.ts +1 -1
  169. package/src/strings/loadstartEvent.ts +1 -1
  170. package/src/strings/mouseClickEvents.ts +1 -1
  171. package/src/strings/mouseHoverEvents.ts +3 -4
  172. package/src/strings/mouseSwipeEvents.ts +4 -4
  173. package/src/strings/mouseclickEvent.ts +1 -1
  174. package/src/strings/mousedblclickEvent.ts +1 -1
  175. package/src/strings/mousedownEvent.ts +1 -1
  176. package/src/strings/mouseenterEvent.ts +1 -1
  177. package/src/strings/mousehoverEvent.ts +1 -1
  178. package/src/strings/mouseinEvent.ts +1 -1
  179. package/src/strings/mouseleaveEvent.ts +1 -1
  180. package/src/strings/mousemoveEvent.ts +1 -1
  181. package/src/strings/mouseoutEvent.ts +1 -1
  182. package/src/strings/mouseoverEvent.ts +1 -1
  183. package/src/strings/mouseupEvent.ts +1 -1
  184. package/src/strings/mousewheelEvent.ts +1 -1
  185. package/src/strings/moveEvent.ts +1 -1
  186. package/src/strings/nativeEvents.ts +50 -50
  187. package/src/strings/offsetHeight.ts +1 -1
  188. package/src/strings/offsetWidth.ts +1 -1
  189. package/src/strings/orientationchangeEvent.ts +1 -1
  190. package/src/strings/pointercancelEvent.ts +1 -1
  191. package/src/strings/pointerdownEvent.ts +1 -1
  192. package/src/strings/pointerleaveEvent.ts +1 -1
  193. package/src/strings/pointermoveEvent.ts +1 -1
  194. package/src/strings/pointerupEvent.ts +1 -1
  195. package/src/strings/readystatechangeEvent.ts +1 -1
  196. package/src/strings/removeEventListener.ts +1 -1
  197. package/src/strings/resetEvent.ts +1 -1
  198. package/src/strings/resizeEvent.ts +1 -1
  199. package/src/strings/scrollEvent.ts +1 -1
  200. package/src/strings/scrollHeight.ts +1 -1
  201. package/src/strings/scrollWidth.ts +1 -1
  202. package/src/strings/selectEvent.ts +1 -1
  203. package/src/strings/selectendEvent.ts +1 -1
  204. package/src/strings/selectstartEvent.ts +1 -1
  205. package/src/strings/submitEvent.ts +1 -1
  206. package/src/strings/tabindex.ts +1 -1
  207. package/src/strings/touchEvents.ts +4 -4
  208. package/src/strings/touchcancelEvent.ts +1 -1
  209. package/src/strings/touchendEvent.ts +1 -1
  210. package/src/strings/touchmoveEvent.ts +1 -1
  211. package/src/strings/touchstartEvent.ts +1 -1
  212. package/src/strings/transitionDelay.ts +1 -1
  213. package/src/strings/transitionDuration.ts +1 -1
  214. package/src/strings/transitionEndEvent.ts +1 -1
  215. package/src/strings/transitionProperty.ts +1 -1
  216. package/src/strings/unloadEvent.ts +1 -1
  217. package/src/strings/userAgentData.ts +3 -4
  218. package/test/boolean.test.ts +9 -9
  219. package/tsconfig.json +2 -1
  220. package/vite.config.mts +20 -0
  221. package/vitest.config-ui.mts +5 -0
  222. package/vitest.config.mts +5 -0
  223. package/dts.config.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"shorty.cjs","sources":["../src/strings/ariaChecked.ts","../src/strings/ariaDescription.ts","../src/strings/ariaDescribedBy.ts","../src/strings/ariaExpanded.ts","../src/strings/ariaHasPopup.ts","../src/strings/ariaHidden.ts","../src/strings/ariaLabel.ts","../src/strings/ariaLabelledBy.ts","../src/strings/ariaModal.ts","../src/strings/ariaPressed.ts","../src/strings/ariaSelected.ts","../src/strings/ariaValueMin.ts","../src/strings/ariaValueMax.ts","../src/strings/ariaValueNow.ts","../src/strings/ariaValueText.ts","../src/strings/abortEvent.ts","../src/strings/beforeunloadEvent.ts","../src/strings/blurEvent.ts","../src/strings/changeEvent.ts","../src/strings/contextmenuEvent.ts","../src/strings/DOMContentLoadedEvent.ts","../src/strings/DOMMouseScrollEvent.ts","../src/strings/errorEvent.ts","../src/strings/focusEvent.ts","../src/strings/focusinEvent.ts","../src/strings/focusoutEvent.ts","../src/strings/gesturechangeEvent.ts","../src/strings/gestureendEvent.ts","../src/strings/gesturestartEvent.ts","../src/strings/keydownEvent.ts","../src/strings/keypressEvent.ts","../src/strings/keyupEvent.ts","../src/strings/loadEvent.ts","../src/strings/mouseclickEvent.ts","../src/strings/mousedblclickEvent.ts","../src/strings/mousedownEvent.ts","../src/strings/mouseupEvent.ts","../src/strings/mousehoverEvent.ts","../src/strings/mouseenterEvent.ts","../src/strings/mouseleaveEvent.ts","../src/strings/mouseinEvent.ts","../src/strings/mouseoutEvent.ts","../src/strings/mouseoverEvent.ts","../src/strings/mousemoveEvent.ts","../src/strings/mousewheelEvent.ts","../src/strings/moveEvent.ts","../src/strings/orientationchangeEvent.ts","../src/strings/pointercancelEvent.ts","../src/strings/pointerdownEvent.ts","../src/strings/pointerleaveEvent.ts","../src/strings/pointermoveEvent.ts","../src/strings/pointerupEvent.ts","../src/strings/readystatechangeEvent.ts","../src/strings/resetEvent.ts","../src/strings/resizeEvent.ts","../src/strings/selectEvent.ts","../src/strings/selectendEvent.ts","../src/strings/selectstartEvent.ts","../src/strings/scrollEvent.ts","../src/strings/submitEvent.ts","../src/strings/touchstartEvent.ts","../src/strings/touchmoveEvent.ts","../src/strings/touchcancelEvent.ts","../src/strings/touchendEvent.ts","../src/strings/unloadEvent.ts","../src/strings/nativeEvents.ts","../src/strings/dragEvent.ts","../src/strings/dragstartEvent.ts","../src/strings/dragenterEvent.ts","../src/strings/dragleaveEvent.ts","../src/strings/dragoverEvent.ts","../src/strings/dragendEvent.ts","../src/strings/loadstartEvent.ts","../src/strings/mouseSwipeEvents.ts","../src/strings/mouseClickEvents.ts","../src/strings/mouseHoverEvents.ts","../src/strings/touchEvents.ts","../src/strings/focusEvents.ts","../src/strings/focusableSelector.ts","../src/strings/keyboardEventKeys.ts","../src/strings/keyAlt.ts","../src/strings/keyArrowDown.ts","../src/strings/keyArrowUp.ts","../src/strings/keyArrowLeft.ts","../src/strings/keyArrowRight.ts","../src/strings/keyBackspace.ts","../src/strings/keyCapsLock.ts","../src/strings/keyControl.ts","../src/strings/keyDelete.ts","../src/strings/keyEnter.ts","../src/strings/keyNumpadEnter.ts","../src/strings/keyEscape.ts","../src/strings/keyInsert.ts","../src/strings/keyMeta.ts","../src/strings/keyPause.ts","../src/strings/keyScrollLock.ts","../src/strings/keyShift.ts","../src/strings/keySpace.ts","../src/strings/keyTab.ts","../src/strings/animationDuration.ts","../src/strings/animationDelay.ts","../src/strings/animationName.ts","../src/strings/animationEndEvent.ts","../src/strings/transitionDuration.ts","../src/strings/transitionDelay.ts","../src/strings/transitionEndEvent.ts","../src/strings/transitionProperty.ts","../src/strings/addEventListener.ts","../src/strings/removeEventListener.ts","../src/strings/bezierEasings.ts","../src/strings/offsetHeight.ts","../src/strings/offsetWidth.ts","../src/strings/scrollHeight.ts","../src/strings/scrollWidth.ts","../src/strings/tabindex.ts","../src/strings/userAgentData.ts","../src/strings/userAgent.ts","../src/boolean/isMobile.ts","../src/boolean/isApple.ts","../src/boolean/isFirefox.ts","../src/blocks/documentHead.ts","../src/boolean/support3DTransform.ts","../src/event/on.ts","../src/event/off.ts","../src/event/one.ts","../src/misc/noop.ts","../src/boolean/supportPassive.ts","../src/boolean/supportTransform.ts","../src/boolean/supportTouch.ts","../src/boolean/supportAnimation.ts","../src/boolean/supportTransition.ts","../src/attr/getAttribute.ts","../src/attr/getAttributeNS.ts","../src/attr/hasAttribute.ts","../src/attr/hasAttributeNS.ts","../src/attr/setAttribute.ts","../src/attr/setAttributeNS.ts","../src/attr/removeAttribute.ts","../src/attr/removeAttributeNS.ts","../src/class/addClass.ts","../src/class/removeClass.ts","../src/class/hasClass.ts","../src/blocks/documentBody.ts","../src/blocks/documentElement.ts","../src/misc/ArrayFrom.ts","../src/is/isObject.ts","../src/is/isNode.ts","../src/is/isHTMLElement.ts","../src/misc/data.ts","../src/misc/getInstance.ts","../src/is/isString.ts","../src/is/isWindow.ts","../src/is/isDocument.ts","../src/get/getDocument.ts","../src/misc/ObjectAssign.ts","../src/misc/createElement.ts","../src/misc/createElementNS.ts","../src/misc/dispatchEvent.ts","../src/misc/distinct.ts","../src/get/getElementStyle.ts","../src/get/getElementAnimationDelay.ts","../src/get/getElementAnimationDuration.ts","../src/misc/emulateAnimationEnd.ts","../src/get/getElementTransitionDelay.ts","../src/get/getElementTransitionDuration.ts","../src/misc/emulateTransitionEnd.ts","../src/misc/Float32ArrayFrom.ts","../src/misc/Float64ArrayFrom.ts","../src/misc/focus.ts","../src/misc/normalizeValue.ts","../src/misc/ObjectEntries.ts","../src/misc/toLowerCase.ts","../src/misc/normalizeOptions.ts","../src/misc/ObjectHasOwn.ts","../src/misc/ObjectKeys.ts","../src/misc/ObjectValues.ts","../src/misc/ObjectFromEntries.ts","../src/misc/createCustomEvent.ts","../src/misc/passiveHandler.ts","../src/misc/reflow.ts","../src/misc/setElementStyle.ts","../src/is/isMap.ts","../src/is/isNumber.ts","../src/misc/timer.ts","../src/misc/toUpperCase.ts","../src/selectors/querySelectorAll.ts","../src/misc/focusTrap.ts","../src/get/getBoundingClientRect.ts","../src/get/getDocumentBody.ts","../src/get/getDocumentElement.ts","../src/get/getDocumentHead.ts","../src/get/getNodeScroll.ts","../src/is/isShadowRoot.ts","../src/get/getParentNode.ts","../src/is/isScaledElement.ts","../src/get/getRectRelativeToOffsetParent.ts","../src/get/getUID.ts","../src/get/getWindow.ts","../src/is/isArray.ts","../src/is/isCanvas.ts","../src/is/isCustomElement.ts","../src/is/isElement.ts","../src/is/isElementInScrollRange.ts","../src/is/isElementInViewport.ts","../src/is/isElementsArray.ts","../src/is/isFunction.ts","../src/is/isHTMLCollection.ts","../src/is/isHTMLImageElement.ts","../src/is/isJSON.ts","../src/is/isWeakMap.ts","../src/is/isMedia.ts","../src/is/isNodeList.ts","../src/is/isRTL.ts","../src/is/isSVGElement.ts","../src/is/isTableElement.ts","../src/selectors/closest.ts","../src/selectors/querySelector.ts","../src/selectors/getElementsByTagName.ts","../src/selectors/getCustomElements.ts","../src/selectors/getElementById.ts","../src/selectors/getElementsByClassName.ts","../src/selectors/matches.ts"],"sourcesContent":["/**\n * A global namespace for aria-checked.\n */\nconst ariaChecked = 'aria-checked';\nexport default ariaChecked;\n","/**\n * A global namespace for aria-description.\n */\nconst ariaDescription = 'aria-description';\nexport default ariaDescription;\n","/**\n * A global namespace for aria-describedby.\n */\nconst ariaDescribedBy = 'aria-describedby';\nexport default ariaDescribedBy;\n","/**\n * A global namespace for aria-expanded.\n */\nconst ariaExpanded = 'aria-expanded';\nexport default ariaExpanded;\n","/**\n * A global namespace for aria-haspopup.\n */\nconst ariaHasPopup = 'aria-haspopup';\nexport default ariaHasPopup;\n","/**\n * A global namespace for aria-hidden.\n */\nconst ariaHidden = 'aria-hidden';\nexport default ariaHidden;\n","/**\n * A global namespace for aria-label.\n */\nconst ariaLabel = 'aria-label';\nexport default ariaLabel;\n","/**\n * A global namespace for aria-labelledby.\n */\nconst ariaLabelledBy = 'aria-labelledby';\nexport default ariaLabelledBy;\n","/**\n * A global namespace for aria-modal.\n */\nconst ariaModal = 'aria-modal';\nexport default ariaModal;\n","/**\n * A global namespace for aria-pressed.\n */\nconst ariaPressed = 'aria-pressed';\nexport default ariaPressed;\n","/**\n * A global namespace for aria-selected.\n */\nconst ariaSelected = 'aria-selected';\nexport default ariaSelected;\n","/**\n * A global namespace for aria-valuemin.\n */\nconst ariaValueMin = 'aria-valuemin';\nexport default ariaValueMin;\n","/**\n * A global namespace for aria-valuemax.\n */\nconst ariaValueMax = 'aria-valuemax';\nexport default ariaValueMax;\n","/**\n * A global namespace for aria-valuenow.\n */\nconst ariaValueNow = 'aria-valuenow';\nexport default ariaValueNow;\n","/**\n * A global namespace for aria-valuetext.\n */\nconst ariaValueText = 'aria-valuetext';\nexport default ariaValueText;\n","/**\n * A global namespace for `abort` event.\n */\nconst abortEvent = 'abort';\nexport default abortEvent;\n","/**\n * A global namespace for `beforeunload` event.\n */\nconst beforeunloadEvent = 'beforeunload';\nexport default beforeunloadEvent;\n","/**\n * A global namespace for `blur` event.\n */\nconst blurEvent = 'blur';\nexport default blurEvent;\n","/**\n * A global namespace for `change` event.\n */\nconst changeEvent = 'change';\nexport default changeEvent;\n","/**\n * A global namespace for `contextmenu` event.\n */\nconst contextmenuEvent = 'contextmenu';\nexport default contextmenuEvent;\n","/**\n * A global namespace for `DOMContentLoaded` event.\n */\nconst DOMContentLoadedEvent = 'DOMContentLoaded';\nexport default DOMContentLoadedEvent;\n","/**\n * A global namespace for `DOMMouseScroll` event.\n */\nconst DOMMouseScrollEvent = 'DOMMouseScroll';\nexport default DOMMouseScrollEvent;\n","/**\n * A global namespace for `error` event.\n */\nconst errorEvent = 'error';\nexport default errorEvent;\n","/**\n * A global namespace for `focus` event.\n */\nconst focusEvent = 'focus';\nexport default focusEvent;\n","/**\n * A global namespace for `focusin` event.\n */\nconst focusinEvent = 'focusin';\nexport default focusinEvent;\n","/**\n * A global namespace for `focusout` event.\n */\nconst focusoutEvent = 'focusout';\nexport default focusoutEvent;\n","/**\n * A global namespace for `gesturechange` event.\n */\nconst gesturechangeEvent = 'gesturechange';\nexport default gesturechangeEvent;\n","/**\n * A global namespace for `gestureend` event.\n */\nconst gestureendEvent = 'gestureend';\nexport default gestureendEvent;\n","/**\n * A global namespace for `gesturestart` event.\n */\nconst gesturestartEvent = 'gesturestart';\nexport default gesturestartEvent;\n","/**\n * A global namespace for `keydown` event.\n */\nconst keydownEvent = 'keydown';\nexport default keydownEvent;\n","/**\n * A global namespace for `keypress` event.\n */\nconst keypressEvent = 'keypress';\nexport default keypressEvent;\n","/**\n * A global namespace for `keyup` event.\n */\nconst keyupEvent = 'keyup';\nexport default keyupEvent;\n","/**\n * A global namespace for `load` event.\n */\nconst loadEvent = 'load';\nexport default loadEvent;\n","/**\n * A global namespace for `click` event.\n */\nconst mouseclickEvent = 'click';\nexport default mouseclickEvent;\n","/**\n * A global namespace for `dblclick` event.\n */\nconst mousedblclickEvent = 'dblclick';\nexport default mousedblclickEvent;\n","/**\n * A global namespace for `mousedown` event.\n */\nconst mousedownEvent = 'mousedown';\nexport default mousedownEvent;\n","/**\n * A global namespace for `mouseup` event.\n */\nconst mouseupEvent = 'mouseup';\nexport default mouseupEvent;\n","/**\n * A global namespace for `hover` event.\n */\nconst mousehoverEvent = 'hover';\nexport default mousehoverEvent;\n","/**\n * A global namespace for `mouseenter` event.\n */\nconst mouseenterEvent = 'mouseenter';\nexport default mouseenterEvent;\n","/**\n * A global namespace for `mouseleave` event.\n */\nconst mouseleaveEvent = 'mouseleave';\nexport default mouseleaveEvent;\n","/**\n * A global namespace for `mousein` event.\n */\nconst mouseinEvent = 'mousein';\nexport default mouseinEvent;\n","/**\n * A global namespace for `mouseout` event.\n */\nconst mouseoutEvent = 'mouseout';\nexport default mouseoutEvent;\n","/**\n * A global namespace for `mouseover` event.\n */\nconst mouseoverEvent = 'mouseover';\nexport default mouseoverEvent;\n","/**\n * A global namespace for `mousemove` event.\n */\nconst mousemoveEvent = 'mousemove';\nexport default mousemoveEvent;\n","/**\n * A global namespace for `mousewheel` event.\n */\nconst mousewheelEvent = 'mousewheel';\nexport default mousewheelEvent;\n","/**\n * A global namespace for `move` event.\n */\nconst moveEvent = 'move';\nexport default moveEvent;\n","/**\n * A global namespace for `orientationchange` event.\n */\nconst orientationchangeEvent = 'orientationchange';\nexport default orientationchangeEvent;\n","/**\n * A global namespace for `pointercancel` event.\n */\nconst pointercancelEvent = 'pointercancel';\nexport default pointercancelEvent;\n","/**\n * A global namespace for `pointerdown` event.\n */\nconst pointerdownEvent = 'pointerdown';\nexport default pointerdownEvent;\n","/**\n * A global namespace for `pointerleave` event.\n */\nconst pointerleaveEvent = 'pointerleave';\nexport default pointerleaveEvent;\n","/**\n * A global namespace for `pointermove` event.\n */\nconst pointermoveEvent = 'pointermove';\nexport default pointermoveEvent;\n","/**\n * A global namespace for `pointerup` event.\n */\nconst pointerupEvent = 'pointerup';\nexport default pointerupEvent;\n","/**\n * A global namespace for `readystatechange` event.\n */\nconst readystatechangeEvent = 'readystatechange';\nexport default readystatechangeEvent;\n","/**\n * A global namespace for `reset` event.\n */\nconst resetEvent = 'reset';\nexport default resetEvent;\n","/**\n * A global namespace for `resize` event.\n */\nconst resizeEvent = 'resize';\nexport default resizeEvent;\n","/**\n * A global namespace for `select` event.\n */\nconst selectEvent = 'select';\nexport default selectEvent;\n","/**\n * A global namespace for the `selectend` event.\n */\nconst selectendEvent = 'selectend';\nexport default selectendEvent;\n","/**\n * A global namespace for the `selectstart` event.\n */\nconst selectstartEvent = 'selectstart';\nexport default selectstartEvent;\n","/**\n * A global namespace for `scroll` event.\n */\nconst scrollEvent = 'scroll';\nexport default scrollEvent;\n","/**\n * A global namespace for `submit` event.\n */\nconst submitEvent = 'submit';\nexport default submitEvent;\n","/**\n * A global namespace for `touchstart` event.\n */\nconst touchstartEvent = 'touchstart';\nexport default touchstartEvent;\n","/**\n * A global namespace for `touchmove` event.\n */\nconst touchmoveEvent = 'touchmove';\nexport default touchmoveEvent;\n","/**\n * A global namespace for `touchcancel` event.\n */\nconst touchcancelEvent = 'touchcancel';\nexport default touchcancelEvent;\n","/**\n * A global namespace for `touchend` event.\n */\nconst touchendEvent = 'touchend';\nexport default touchendEvent;\n","/**\n * A global namespace for `unload` event.\n */\nconst unloadEvent = 'unload';\nexport default unloadEvent;\n","import abort from './abortEvent';\nimport beforeunload from './beforeunloadEvent';\nimport blur from './blurEvent';\nimport change from './changeEvent';\nimport contextmenu from './contextmenuEvent';\nimport DOMContentLoaded from './DOMContentLoadedEvent';\nimport DOMMouseScroll from './DOMMouseScrollEvent';\nimport error from './errorEvent';\nimport focus from './focusEvent';\nimport focusin from './focusinEvent';\nimport focusout from './focusoutEvent';\nimport gesturechange from './gesturechangeEvent';\nimport gestureend from './gestureendEvent';\nimport gesturestart from './gesturestartEvent';\nimport keydown from './keydownEvent';\nimport keypress from './keypressEvent';\nimport keyup from './keyupEvent';\nimport load from './loadEvent';\nimport click from './mouseclickEvent';\nimport dblclick from './mousedblclickEvent';\nimport mousedown from './mousedownEvent';\nimport mouseup from './mouseupEvent';\nimport hover from './mousehoverEvent';\nimport mouseenter from './mouseenterEvent';\nimport mouseleave from './mouseleaveEvent';\nimport mousein from './mouseinEvent';\nimport mouseout from './mouseoutEvent';\nimport mouseover from './mouseoverEvent';\nimport mousemove from './mousemoveEvent';\nimport mousewheel from './mousewheelEvent';\nimport move from './moveEvent';\nimport orientationchange from './orientationchangeEvent';\nimport pointercancel from './pointercancelEvent';\nimport pointerdown from './pointerdownEvent';\nimport pointerleave from './pointerleaveEvent';\nimport pointermove from './pointermoveEvent';\nimport pointerup from './pointerupEvent';\nimport readystatechange from './readystatechangeEvent';\nimport reset from './resetEvent';\nimport resize from './resizeEvent';\nimport select from './selectEvent';\nimport selectend from './selectendEvent';\nimport selectstart from './selectstartEvent';\nimport scroll from './scrollEvent';\nimport submit from './submitEvent';\nimport touchstart from './touchstartEvent';\nimport touchmove from './touchmoveEvent';\nimport touchcancel from './touchcancelEvent';\nimport touchend from './touchendEvent';\nimport unload from './unloadEvent';\n\n/**\n * A global namespace for all browser native events.\n */\nconst nativeEvents = {\n DOMContentLoaded,\n DOMMouseScroll,\n abort,\n beforeunload,\n blur,\n change,\n click,\n contextmenu,\n dblclick,\n error,\n focus,\n focusin,\n focusout,\n gesturechange,\n gestureend,\n gesturestart,\n hover,\n keydown,\n keypress,\n keyup,\n load,\n mousedown,\n mousemove,\n mousein,\n mouseout,\n mouseenter,\n mouseleave,\n mouseover,\n mouseup,\n mousewheel,\n move,\n orientationchange,\n pointercancel,\n pointerdown,\n pointerleave,\n pointermove,\n pointerup,\n readystatechange,\n reset,\n resize,\n scroll,\n select,\n selectend,\n selectstart,\n submit,\n touchcancel,\n touchend,\n touchmove,\n touchstart,\n unload,\n};\n\nexport default nativeEvents;\n","/**\n * A global namespace for `drag` event.\n */\nconst dragEvent = 'drag';\nexport default dragEvent;\n","/**\n * A global namespace for `dragstart` event.\n */\nconst dragstartEvent = 'dragstart';\nexport default dragstartEvent;\n","/**\n * A global namespace for `dragenter` event.\n */\nconst dragenterEvent = 'dragenter';\nexport default dragenterEvent;\n","/**\n * A global namespace for `dragleave` event.\n */\nconst dragleaveEvent = 'dragleave';\nexport default dragleaveEvent;\n","/**\n * A global namespace for `dragover` event.\n */\nconst dragoverEvent = 'dragover';\nexport default dragoverEvent;\n","/**\n * A global namespace for `dragend` event.\n */\nconst dragendEvent = 'dragend';\nexport default dragendEvent;\n","/**\n * A global namespace for `loadstart` event.\n */\nconst loadstartEvent = 'loadstart';\nexport default loadstartEvent;\n","/**\n * A global namespace for mouse events equivalent to touch events.\n */\nconst mouseSwipeEvents = {\n start: 'mousedown',\n end: 'mouseup',\n move: 'mousemove',\n cancel: 'mouseleave',\n};\nexport default mouseSwipeEvents;\n","/**\n * A global namespace for mouse click events.\n */\nconst mouseClickEvents = { down: 'mousedown', up: 'mouseup' };\nexport default mouseClickEvents;\n","/**\n * A global namespace for mouse hover events.\n */\nconst mouseHoverEvents =\n 'onmouseleave' in document\n ? ['mouseenter', 'mouseleave']\n : /* istanbul ignore next */ ['mouseover', 'mouseout'];\nexport default mouseHoverEvents;\n","/**\n * A global namespace for touch events.\n */\nconst touchEvents = {\n start: 'touchstart',\n end: 'touchend',\n move: 'touchmove',\n cancel: 'touchcancel',\n};\nexport default touchEvents;\n","/**\n * A global namespace for focus event names.\n */\nconst focusEvents = { in: 'focusin', out: 'focusout' };\nexport default focusEvents;\n","const focusableSelector =\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]';\n\nexport default focusableSelector;\n","/**\n * A global namespace for keyboard event keys.\n */\nconst keyboardEventKeys = {\n Backspace: 'Backspace', // 8\n Tab: 'Tab', // 9\n Enter: 'Enter', // 13\n Shift: 'Shift', // 16\n Control: 'Control', // 17\n Alt: 'Alt', // 18\n Pause: 'Pause', // 19\n CapsLock: 'CapsLock', // 20\n Escape: 'Escape', // 27\n Scape: 'Space', // 32\n ArrowLeft: 'ArrowLeft', // 37\n ArrowUp: 'ArrowUp', // 38\n ArrowRight: 'ArrowRight', // 39\n ArrowDown: 'ArrowDown', // 40\n Insert: 'Insert', // 45\n Delete: 'Delete', // 46\n Meta: 'Meta', // 91 windows key\n ContextMenu: 'ContextMenu', // 93\n ScrollLock: 'ScrollLock', // 145\n};\n\nexport default keyboardEventKeys;\n","/**\n * A global namespace for `Alt` key.\n * e.which = 18\n */\nconst keyAlt = 'Alt';\n\nexport default keyAlt;\n","/**\n * A global namespace for `ArrowDown` key.\n * e.which = 40 equivalent\n */\nconst keyArrowDown = 'ArrowDown';\n\nexport default keyArrowDown;\n","/**\n * A global namespace for `ArrowUp` key.\n * e.which = 38 equivalent\n */\nconst keyArrowUp = 'ArrowUp';\n\nexport default keyArrowUp;\n","/**\n * A global namespace for `ArrowLeft` key.\n * e.which = 37 equivalent\n */\nconst keyArrowLeft = 'ArrowLeft';\n\nexport default keyArrowLeft;\n","/**\n * A global namespace for `ArrowRight` key.\n * e.which = 39 equivalent\n */\nconst keyArrowRight = 'ArrowRight';\n\nexport default keyArrowRight;\n","/**\n * A global namespace for `Backspace` key.\n * e.which === 8 equivalent\n */\nconst keyBackspace = 'Backspace';\n\nexport default keyBackspace;\n","/**\n * A global namespace for `CapsLock` key.\n * e.which = 20 equivalent\n */\nconst keyCapsLock = 'CapsLock';\n\nexport default keyCapsLock;\n","/**\n * A global namespace for `Control` key.\n * e.which = 17\n */\nconst keyControl = 'Control';\n\nexport default keyControl;\n","/**\n * A global namespace for `Delete` key.\n * e.which = 46 equivalent\n */\nconst keyDelete = 'Delete';\n\nexport default keyDelete;\n","/**\n * A global namespace for `Enter` key.\n * e.which = 13 equivalent\n */\nconst keyEnter = 'Enter';\n\nexport default keyEnter;\n","/**\n * A global namespace for `Enter` key.\n * e.which = 13 equivalent\n */\nconst keyNumpadEnter = 'NumpadEnter';\n\nexport default keyNumpadEnter;\n","/**\n * A global namespace for `Escape` key.\n * e.which = 27 equivalent\n */\nconst keyEscape = 'Escape';\n\nexport default keyEscape;\n","/**\n * A global namespace for `Insert` key.\n * e.which = 45 equivalent\n */\nconst keyInsert = 'Insert';\n\nexport default keyInsert;\n","/**\n * A global namespace for `Meta` key.\n * e.which = 93 equivalent\n */\nconst keyMeta = 'Meta';\n\nexport default keyMeta;\n","/**\n * A global namespace for `Pause` key.\n * e.which = 19\n */\nconst keyPause = 'Pause';\n\nexport default keyPause;\n","/**\n * A global namespace for `ScrollLock` key.\n * e.which = 145 equivalent\n */\nconst keyScrollLock = 'ScrollLock';\n\nexport default keyScrollLock;\n","/**\n * A global namespace for `Shift` key.\n * e.which = 16\n */\nconst keyShift = 'Shift';\n\nexport default keyShift;\n","/**\n * A global namespace for `Space` key.\n * e.which = 32 equivalent\n */\nconst keySpace = 'Space';\n\nexport default keySpace;\n","/**\n * A global namespace for `Tab` key.\n * e.which = 9 equivalent\n */\nconst keyTab = 'Tab';\n\nexport default keyTab;\n","/**\n * A global namespace for 'animationDuration' string.\n */\nconst animationDuration = 'animationDuration';\nexport default animationDuration;\n","/**\n * A global namespace for 'animationDelay' string.\n */\nconst animationDelay = 'animationDelay';\nexport default animationDelay;\n","/**\n * A global namespace for 'animationName' string.\n */\nconst animationName = 'animationName';\nexport default animationName;\n","/**\n * A global namespace for 'animationend' string.\n */\nconst animationEndEvent = 'animationend';\nexport default animationEndEvent;\n","/**\n * A global namespace for 'transitionDuration' string.\n */\nconst transitionDuration = 'transitionDuration';\nexport default transitionDuration;\n","/**\n * A global namespace for 'transitionDelay' string.\n */\nconst transitionDelay = 'transitionDelay';\nexport default transitionDelay;\n","/**\n * A global namespace for 'transitionend' string.\n */\nconst transitionEndEvent = 'transitionend';\nexport default transitionEndEvent;\n","/**\n * A global namespace for `transitionProperty` string for modern browsers.\n */\nconst transitionProperty = 'transitionProperty';\nexport default transitionProperty;\n","/**\n * A global namespace for 'addEventListener' string.\n */\nconst addEventListener = 'addEventListener';\nexport default addEventListener;\n","/**\n * A global namespace for 'removeEventListener' string.\n */\nconst removeEventListener = 'removeEventListener';\nexport default removeEventListener;\n","/**\n * A global namespace for predefined\n * CSS3 'cubic-bezier()' easing functions.\n */\nconst bezierEasings = {\n linear: 'linear',\n easingSinusoidalIn: 'cubic-bezier(0.47,0,0.745,0.715)',\n easingSinusoidalOut: 'cubic-bezier(0.39,0.575,0.565,1)',\n easingSinusoidalInOut: 'cubic-bezier(0.445,0.05,0.55,0.95)',\n easingQuadraticIn: 'cubic-bezier(0.550,0.085,0.680,0.530)',\n easingQuadraticOut: 'cubic-bezier(0.250,0.460,0.450,0.940)',\n easingQuadraticInOut: 'cubic-bezier(0.455,0.030,0.515,0.955)',\n easingCubicIn: 'cubic-bezier(0.55,0.055,0.675,0.19)',\n easingCubicOut: 'cubic-bezier(0.215,0.61,0.355,1)',\n easingCubicInOut: 'cubic-bezier(0.645,0.045,0.355,1)',\n easingQuarticIn: 'cubic-bezier(0.895,0.03,0.685,0.22)',\n easingQuarticOut: 'cubic-bezier(0.165,0.84,0.44,1)',\n easingQuarticInOut: 'cubic-bezier(0.77,0,0.175,1)',\n easingQuinticIn: 'cubic-bezier(0.755,0.05,0.855,0.06)',\n easingQuinticOut: 'cubic-bezier(0.23,1,0.32,1)',\n easingQuinticInOut: 'cubic-bezier(0.86,0,0.07,1)',\n easingExponentialIn: 'cubic-bezier(0.95,0.05,0.795,0.035)',\n easingExponentialOut: 'cubic-bezier(0.19,1,0.22,1)',\n easingExponentialInOut: 'cubic-bezier(1,0,0,1)',\n easingCircularIn: 'cubic-bezier(0.6,0.04,0.98,0.335)',\n easingCircularOut: 'cubic-bezier(0.075,0.82,0.165,1)',\n easingCircularInOut: 'cubic-bezier(0.785,0.135,0.15,0.86)',\n easingBackIn: 'cubic-bezier(0.6,-0.28,0.735,0.045)',\n easingBackOut: 'cubic-bezier(0.175,0.885,0.32,1.275)',\n easingBackInOut: 'cubic-bezier(0.68,-0.55,0.265,1.55)',\n};\nexport default bezierEasings;\n","/**\n * A global namespace for `offsetHeight` property.\n */\nconst offsetHeight = 'offsetHeight';\nexport default offsetHeight;\n","/**\n * A global namespace for `offsetWidth` property.\n */\nconst offsetWidth = 'offsetWidth';\nexport default offsetWidth;\n","/**\n * A global namespace for `scrollHeight` property.\n */\nconst scrollHeight = 'scrollHeight';\nexport default scrollHeight;\n","/**\n * A global namespace for `scrollWidth` property.\n */\nconst scrollWidth = 'scrollWidth';\nexport default scrollWidth;\n","/**\n * A global namespace for `touchcancel` event.\n */\nconst tabindex = 'tabindex';\nexport default tabindex;\n","import type { NavigatorUA } from '../interface/navigatorUA';\n\nconst uaDATA = (navigator as NavigatorUA).userAgentData;\n\n/**\n * A global namespace for `userAgentData` object.\n */\nconst userAgentData: NavigatorUA['userAgentData'] = uaDATA;\nexport default userAgentData;\n","const { userAgent: userAgentString } = navigator;\n\n/**\n * A global namespace for `navigator.userAgent` string.\n */\nconst userAgent = userAgentString;\nexport default userAgent;\n","import userAgentData from '../strings/userAgentData';\nimport userAgent from '../strings/userAgent';\n\nconst mobileBrands = /iPhone|iPad|iPod|Android/i;\nlet isMobileCheck = false;\n\n// istanbul ignore else @preserve\nif (userAgentData) {\n isMobileCheck = userAgentData.brands.some(x => mobileBrands.test(x.brand));\n} else {\n isMobileCheck = mobileBrands.test(userAgent);\n}\n\n/**\n * A global `boolean` for mobile detection.\n */\nconst isMobile = isMobileCheck;\n\nexport default isMobile;\n","import type { NavigatorUABrand } from '../interface/navigatorUA';\nimport userAgentData from '../strings/userAgentData';\nimport userAgent from '../strings/userAgent';\n\nconst appleBrands = /(iPhone|iPod|iPad)/;\n\n/**\n * A global `boolean` for Apple browsers.\n */\nconst isApple: boolean = userAgentData\n ? userAgentData.brands.some((x: NavigatorUABrand) => appleBrands.test(x.brand))\n : /* istanbul ignore next @preserve */ appleBrands.test(userAgent);\n\nexport default isApple;\n","import userAgent from '../strings/userAgent';\n\n/**\n * A global boolean for Gecko browsers. When writing this file,\n * Gecko was not supporting `userAgentData`.\n */\nconst isFirefox = userAgent\n ? userAgent.includes('Firefox')\n : /* istanbul ignore next @preserve */ false;\n\nexport default isFirefox;\n","/**\n * A global namespace for `document.head`.\n */\nconst { head: documentHead } = document;\nexport default documentHead;\n","import documentHead from '../blocks/documentHead';\n\n/**\n * A global `boolean` for CSS3 3D transform support.\n */\nconst support3DTransform = ['webkitPerspective', 'perspective'].some(p => p in documentHead.style);\n\nexport default support3DTransform;\n","/**\n * Add eventListener to an `EventTarget` object.\n */\nconst on = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n const ops = options || false;\n element.addEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);\n};\n\nexport default on;\n","/**\n * Remove eventListener from an `EventTarget` object.\n */\nconst off = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n const ops = options || false;\n element.removeEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);\n};\n\nexport default off;\n","import on from './on';\nimport off from './off';\nimport { NativeEventHandler } from '../interface/event';\n\n/**\n * Add an `eventListener` to an `EventTarget`\n * element and remove it once callback is called.\n */\nconst one = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n /** Wrap the listener for easy on -> off */\n const handlerWrapper: NativeEventHandler<T> = e => {\n /* istanbul ignore else @preserve */\n if (e.target === element || e.currentTarget === element) {\n (listener as NativeEventHandler<T>).apply(element, [e]);\n off(element, eventName, handlerWrapper, options);\n }\n };\n on(element, eventName, handlerWrapper, options);\n};\n\nexport default one;\n","/** A generic function with empty body. */\nconst noop = () => {\n // this is a noop\n};\n\nexport default noop;\n","import DOMContentLoadedEvent from '../strings/DOMContentLoadedEvent';\nimport one from '../event/one';\nimport noop from '../misc/noop';\n\n/**\n * A global `boolean` for passive events support,\n * in general event options are not suited for scroll prevention.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\nconst supportPassive = (() => {\n let result = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get: () => {\n result = true;\n return result;\n },\n });\n // istanbul ignore next @preserve\n one(document, DOMContentLoadedEvent, noop, opts);\n } catch (e) {\n // throw Error('Passive events are not supported');\n }\n\n return result;\n})();\n\nexport default supportPassive;\n","import documentHead from '../blocks/documentHead';\n\n/**\n * A global `boolean` for CSS3 transform support.\n */\nconst supportTransform = ['webkitTransform', 'transform'].some(p => p in documentHead.style);\n\nexport default supportTransform;\n","/**\n * A global `boolean` for touch events support.\n */\nconst supportTouch =\n 'ontouchstart' in window || /* istanbul ignore next */ 'msMaxTouchPoints' in navigator;\n\nexport default supportTouch;\n","import documentHead from '../blocks/documentHead';\n\n/**\n * A global `boolean` for CSS3 animation support.\n */\nconst supportAnimation = ['webkitAnimation', 'animation'].some(p => p in documentHead.style);\n\nexport default supportAnimation;\n","import documentHead from '../blocks/documentHead';\n\n/**\n * A global `boolean` for CSS3 transition support.\n */\nconst supportTransition = ['webkitTransition', 'transition'].some(p => p in documentHead.style);\n\nexport default supportTransition;\n","/**\n * Shortcut for `HTMLElement.getAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @returns attribute value\n */\nconst getAttribute = (element: HTMLElement, att: string): string | null =>\n element.getAttribute(att);\n\nexport default getAttribute;\n","/**\n * Shortcut for `HTMLElement.getAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @returns attribute value\n */\nconst getAttributeNS = (ns: string, element: HTMLElement, att: string) =>\n element.getAttributeNS(ns, att);\n\nexport default getAttributeNS;\n","/**\n * Shortcut for `HTMLElement.hasAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @returns the query result\n */\nconst hasAttribute = (element: HTMLElement, att: string): boolean => element.hasAttribute(att);\n\nexport default hasAttribute;\n","/**\n * Shortcut for `HTMLElement.hasAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @returns the query result\n */\nconst hasAttributeNS = (ns: string, element: HTMLElement, att: string): boolean =>\n element.hasAttributeNS(ns, att);\n\nexport default hasAttributeNS;\n","/**\n * Shortcut for `HTMLElement.setAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @param value attribute value\n */\nconst setAttribute = (element: HTMLElement, att: string, value: string) =>\n element.setAttribute(att, value);\n\nexport default setAttribute;\n","/**\n * Shortcut for `SVGElement.setAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @param value attribute value\n */\nconst setAttributeNS = (ns: string, element: HTMLElement, att: string, value: string): void =>\n element.setAttributeNS(ns, att, value);\n\nexport default setAttributeNS;\n","/**\n * Shortcut for `HTMLElement.removeAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n */\nconst removeAttribute = (element: HTMLElement, att: string): void => element.removeAttribute(att);\n\nexport default removeAttribute;\n","/**\n * Shortcut for `HTMLElement.removeAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n */\nconst removeAttributeNS = (ns: string, element: HTMLElement, att: string): void =>\n element.removeAttributeNS(ns, att);\n\nexport default removeAttributeNS;\n","/**\n * Add one or more CSS classes to `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to add\n */\nconst addClass = (element: HTMLElement, ...classNAME: string[]): void => {\n element.classList.add(...classNAME);\n};\n\nexport default addClass;\n","/**\n * Remove one or more classes from `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to remove\n */\nconst removeClass = (element: HTMLElement, ...classNAME: string[]): void => {\n element.classList.remove(...classNAME);\n};\n\nexport default removeClass;\n","/**\n * Check class in `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to check\n */\nconst hasClass = (element: HTMLElement, classNAME: string): boolean => {\n return element.classList.contains(classNAME);\n};\n\nexport default hasClass;\n","/**\n * A global namespace for `document.body`.\n */\nconst { body: documentBody } = document;\nexport default documentBody;\n","/**\n * A global namespace for `document.documentElement` or the `<HTML>`.\n */\nconst { documentElement } = document;\nexport default documentElement;\n","/**\n * Shortie for `Array.from()` static method.\n * The utility should also work with any typed arrays\n * like Float64Array or Int32Array.\n *\n * @param arr array-like iterable object\n * @returns a new array from iterable object\n */\nconst ArrayFrom = <T>(arr: ArrayLike<T> | Iterable<T>): T[] => Array.from(arr);\n\nexport default ArrayFrom;\n","/**\n * Checks if a value is an `Object`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isObject = (obj?: unknown): obj is object =>\n (obj !== null && obj !== undefined && typeof obj === 'object') || false;\n\nexport default isObject;\n","import isObject from './isObject';\n\ntype NodeObject = object & { nodeType: number };\n\n/**\n * Checks if an object is a `Node`.\n *\n * @param node the target object\n * @returns the query result\n */\nconst isNode = (node?: unknown): node is Node =>\n (isObject(node) &&\n typeof (node as NodeObject).nodeType === 'number' &&\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(x => (node as NodeObject).nodeType === x)) ||\n false;\n\nexport default isNode;\n","import isNode from './isNode';\n\n/**\n * Checks if an element is an `HTMLElement`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * @param element the target object\n * @returns the query result\n */\nconst isHTMLElement = (element?: unknown): element is HTMLElement =>\n (isNode(element) && element.nodeType === 1) || false;\nexport default isHTMLElement;\n","import isHTMLElement from '../is/isHTMLElement';\n\nconst componentData = new Map<string, Map<HTMLElement, any>>();\n\n/**\n * An interface for web components background data.\n *\n * @see https://github.com/thednp/bootstrap.native/blob/master/src/components/base-component.js\n */\nconst Data = {\n data: componentData,\n /**\n * Sets web components data.\n *\n * @param element target element\n * @param component the component's name or a unique key\n * @param instance the component instance\n */\n set: <T>(element: HTMLElement, component: string, instance: T): void => {\n if (!isHTMLElement(element)) return;\n\n // istanbul ignore else @preserve\n if (!componentData.has(component)) {\n componentData.set(component, new Map<HTMLElement, T>());\n }\n\n const instanceMap = componentData.get(component) as Map<HTMLElement, T>;\n // not undefined, but defined right above\n instanceMap.set(element, instance);\n },\n\n /**\n * Returns all instances for specified component.\n *\n * @param component the component's name or a unique key\n * @returns all the component instances\n */\n getAllFor: <T>(component: string): Map<HTMLElement, T> | null => {\n const instanceMap = componentData.get(component) as Map<HTMLElement, T>;\n\n return instanceMap || null;\n },\n\n /**\n * Returns the instance associated with the target.\n *\n * @param element target element\n * @param component the component's name or a unique key\n * @returns the instance\n */\n get: <T>(element: HTMLElement, component: string): T | null => {\n if (!isHTMLElement(element) || !component) return null;\n const instanceMap = Data.getAllFor<T>(component);\n\n const instance = element && instanceMap && instanceMap.get(element);\n\n return instance || null;\n },\n\n /**\n * Removes web components data.\n *\n * @param element target element\n * @param component the component's name or a unique key\n */\n remove: <T>(element: HTMLElement, component: string): void => {\n const instanceMap = Data.getAllFor<T>(component);\n\n if (!instanceMap || !isHTMLElement(element)) return;\n\n instanceMap.delete(element);\n\n // istanbul ignore else @preserve\n if (instanceMap.size === 0) {\n componentData.delete(component);\n }\n },\n};\n\nexport default Data;\n","import Data from './data';\n\n/**\n * An alias for `Data.get()`.\n */\nconst getInstance = <T>(target: HTMLElement, component: string): T | null =>\n Data.get(target, component);\n\nexport default getInstance;\n","/**\n * Shortie for `typeof SOMETHING === \"string\"`.\n *\n * @param str input value\n * @returns the query result\n */\nconst isString = (str?: unknown): str is string => typeof str === 'string' || false;\n\nexport default isString;\n","import isObject from './isObject';\n\n/**\n * Check if a target object is `Window`.\n * => equivalent to `object instanceof Window`\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isWindow = (obj?: unknown): obj is Window =>\n (isObject(obj) && obj.constructor.name === 'Window') || false;\n\nexport default isWindow;\n","import isNode from './isNode';\n\n/**\n * Checks if an object is a `Document`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isDocument = (obj?: unknown): obj is Document => (isNode(obj) && obj.nodeType === 9) || false;\n\nexport default isDocument;\n","import isNode from '../is/isNode';\nimport isWindow from '../is/isWindow';\nimport isDocument from '../is/isDocument';\n\n/**\n * Returns the `document` or the `#document` element.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param node the reference node\n * @returns the parent document of the given node\n */\nconst getDocument = (node?: Node | Document | Window): Document => {\n // node instanceof Window\n if (isWindow(node)) return node.document;\n // node instanceof Document\n if (isDocument(node)) return node;\n // node instanceof Node\n if (isNode(node)) return node.ownerDocument as Document;\n // node is undefined | NULL\n return window.document;\n};\n\nexport default getDocument;\n","/**\n * Overloads for Object.assign.\n *\n * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/object-assign/index.d.ts\n */\ndeclare function ObjectAssignTyped<T, U>(target: T, source: U): T & U;\ndeclare function ObjectAssignTyped<T, U, V>(target: T, source1: U, source2: V): T & U & V;\ndeclare function ObjectAssignTyped<T, U, V, W>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n): T & U & V & W;\ndeclare function ObjectAssignTyped<T, U, V, W, Q>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n source4: Q,\n): T & U & V & W & Q;\ndeclare function ObjectAssignTyped<T, U, V, W, Q, R>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n source4: Q,\n source5: R,\n): T & U & V & W & Q & R;\ndeclare function ObjectAssignTyped(target: any, ...sources: any[]): any;\n\n/**\n * Shortcut for `Object.assign()` static method.\n *\n * @param obj a target object\n * @param source source object(s)\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectAssign: typeof ObjectAssignTyped = <A extends Record<string, any>, B>(\n obj: A,\n ...source: B[]\n): B extends Record<string, any>[] ? any : A & B => Object.assign(obj, ...source);\n\nexport default ObjectAssign;\n","import isString from '../is/isString';\nimport getDocument from '../get/getDocument';\nimport ObjectAssign from './ObjectAssign';\n\n/**\n * Shortie for `document.createElement` method\n * which allows you to create a new `HTMLElement` for a given `tagName`\n * or based on an object with specific non-readonly attributes with string values:\n * `id`, `className`, `textContent`, `style`, etc.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement\n *\n * @param param `tagName` or object\n * @return a new `HTMLElement`\n */\nconst createElement = <T extends HTMLElement>(param?: string | Partial<T>): T | undefined => {\n if (!param) return undefined;\n\n if (isString(param)) {\n return getDocument().createElement(param) as T;\n }\n\n const { tagName } = param;\n const newElement = createElement(tagName as string);\n\n if (!newElement) return undefined;\n\n const attr = { ...(param as Record<string, unknown>) };\n delete attr.tagName;\n\n return ObjectAssign(newElement, attr) as unknown as T;\n};\n\nexport default createElement;\n","import getDocument from '../get/getDocument';\nimport ObjectAssign from './ObjectAssign';\nimport isString from '../is/isString';\n\n/**\n * Shortie for `document.createElementNS` method\n * which allows you to create a new `HTMLElement` for a given `tagName`\n * or based on an object with specific non-readonly attributes with string values:\n * `id`, `className`, `textContent`, `style`, etc.\n * Note: some elements resulted from this function call may not be compatible with\n * some attributes.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS\n *\n * @param ns `namespaceURI` to associate with the new `HTMLElement`\n * @param param `tagName` or object\n * @return a new `HTMLElement`\n */\nconst createElementNS = <T extends Element = HTMLElement>(\n ns: string,\n param?: string | Partial<T>,\n): T | undefined => {\n if (!ns || !param) return undefined;\n\n if (isString(param)) {\n return getDocument().createElementNS(ns, param) as T;\n }\n\n const { tagName } = param;\n const newElement = createElementNS(ns, tagName);\n\n if (!newElement) return undefined;\n\n const attr = { ...(param as Record<string, unknown>) };\n delete attr.tagName;\n\n return ObjectAssign(newElement, attr) as unknown as T;\n};\n\nexport default createElementNS;\n","/**\n * Shortcut for the `Element.dispatchEvent(Event)` method.\n *\n * @param element is the target\n * @param event is the `Event` object\n */\nconst dispatchEvent = (element: EventTarget, event: Event): boolean => element.dispatchEvent(event);\n\nexport default dispatchEvent;\n","/**\n * JavaScript `Array` distinct.\n *\n * @see https://codeburst.io/javascript-array-distinct-5edc93501dc4\n *\n * @example\n * ```\n * [0,1,1,2].filter(distinct)\n * // => [0,1,2]\n * ```\n * @param value array item value\n * @param index array item index\n * @param arr a clone of the target array\n * @returns the query result\n */\nconst distinct = <T>(value: T, index: number, arr: T[]): boolean => arr.indexOf(value) === index;\n\nexport default distinct;\n","// import CSS4Declaration from \"../interface/css4Declaration\";\n\n/**\n * Shortcut for `window.getComputedStyle(element).propertyName`\n * static method.\n *\n * * If `element` parameter is not an `HTMLElement`, `getComputedStyle`\n * throws a `ReferenceError`.\n *\n * @param element target\n * @param property the css property\n * @return the css property value\n */\nconst getElementStyle = (element: HTMLElement, property: string): string => {\n const computedStyle = getComputedStyle(element);\n const prop = property\n .replace('webkit', 'Webkit')\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase();\n\n // modern browsers only\n return computedStyle.getPropertyValue(prop);\n};\n\nexport default getElementStyle;\n","import animationDelay from '../strings/animationDelay';\nimport animationName from '../strings/animationName';\nimport getElementStyle from './getElementStyle';\n\n/**\n * Utility to get the computed `animationDelay`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `animationDelay` value in miliseconds\n */\nconst getElementAnimationDelay = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, animationName);\n const durationValue = getElementStyle(element, animationDelay);\n const durationScale = durationValue.includes('ms') ? /* istanbul ignore next */ 1 : 1000;\n const duration =\n propertyValue && propertyValue !== 'none' ? parseFloat(durationValue) * durationScale : 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementAnimationDelay;\n","import animationDuration from '../strings/animationDuration';\nimport animationName from '../strings/animationName';\nimport getElementStyle from './getElementStyle';\n\n/**\n * Utility to get the computed `animationDuration`\n * from `HTMLElement` in miliseconds.\n *\n * @param element target\n * @return the `animationDuration` value in miliseconds\n */\nconst getElementAnimationDuration = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, animationName);\n const durationValue = getElementStyle(element, animationDuration);\n const durationScale = durationValue.includes('ms') ? /* istanbul ignore next */ 1 : 1000;\n const duration =\n propertyValue && propertyValue !== 'none' ? parseFloat(durationValue) * durationScale : 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementAnimationDuration;\n","import animationEndEvent from '../strings/animationEndEvent';\nimport getElementAnimationDelay from '../get/getElementAnimationDelay';\nimport getElementAnimationDuration from '../get/getElementAnimationDuration';\nimport dispatchEvent from './dispatchEvent';\n\n/**\n * Utility to make sure callbacks are consistently\n * called when animation ends.\n *\n * @param element target\n * @param handler `animationend` callback\n */\nconst emulateAnimationEnd = (element: HTMLElement, handler: EventListener): void => {\n let called = 0;\n const endEvent = new Event(animationEndEvent);\n const duration = getElementAnimationDuration(element);\n const delay = getElementAnimationDelay(element);\n\n if (duration) {\n // Wrap the handler in on -> off callback\n const animationEndWrapper = (e: Event): void => {\n // istanbul ignore else @preserve\n if (e.target === element) {\n handler.apply(element, [e]);\n element.removeEventListener(animationEndEvent, animationEndWrapper);\n called = 1;\n }\n };\n element.addEventListener(animationEndEvent, animationEndWrapper);\n setTimeout(() => {\n // istanbul ignore next @preserve\n if (!called) dispatchEvent(element, endEvent);\n }, duration + delay + 17);\n } else {\n // istanbul ignore next @preserve\n handler.apply(element, [endEvent]);\n }\n};\n\nexport default emulateAnimationEnd;\n","import transitionDelay from '../strings/transitionDelay';\nimport transitionProperty from '../strings/transitionProperty';\nimport getElementStyle from './getElementStyle';\n\n/**\n * Utility to get the computed `transitionDelay`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `transitionDelay` value in miliseconds\n */\nconst getElementTransitionDelay = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, transitionProperty);\n const delayValue = getElementStyle(element, transitionDelay);\n const delayScale = delayValue.includes('ms') ? /* istanbul ignore next */ 1 : 1000;\n const duration =\n propertyValue && propertyValue !== 'none'\n ? parseFloat(delayValue) * delayScale\n : /* istanbul ignore next */ 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementTransitionDelay;\n","import transitionDuration from '../strings/transitionDuration';\nimport transitionProperty from '../strings/transitionProperty';\nimport getElementStyle from './getElementStyle';\n\n/**\n * Utility to get the computed `transitionDuration`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `transitionDuration` value in miliseconds\n */\nconst getElementTransitionDuration = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, transitionProperty);\n const durationValue = getElementStyle(element, transitionDuration);\n const durationScale = durationValue.includes('ms') ? /* istanbul ignore next */ 1 : 1000;\n const duration =\n propertyValue && propertyValue !== 'none'\n ? parseFloat(durationValue) * durationScale\n : /* istanbul ignore next */ 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementTransitionDuration;\n","import transitionEndEvent from '../strings/transitionEndEvent';\nimport getElementTransitionDelay from '../get/getElementTransitionDelay';\nimport getElementTransitionDuration from '../get/getElementTransitionDuration';\nimport dispatchEvent from './dispatchEvent';\n\n/**\n * Utility to make sure callbacks are consistently\n * called when transition ends.\n *\n * @param element event target\n * @param handler `transitionend` callback\n */\nconst emulateTransitionEnd = (element: HTMLElement, handler: EventListener): void => {\n let called = 0;\n const endEvent = new Event(transitionEndEvent);\n const duration = getElementTransitionDuration(element);\n const delay = getElementTransitionDelay(element);\n\n if (duration) {\n // Wrap the handler in on -> off callback\n const transitionEndWrapper = (e: Event): void => {\n // istanbul ignore else @preserve\n if (e.target === element) {\n handler.apply(element, [e]);\n element.removeEventListener(transitionEndEvent, transitionEndWrapper);\n called = 1;\n }\n };\n element.addEventListener(transitionEndEvent, transitionEndWrapper);\n setTimeout(() => {\n // istanbul ignore next @preserve\n if (!called) dispatchEvent(element, endEvent);\n }, duration + delay + 17);\n } else {\n handler.apply(element, [endEvent]);\n }\n};\n\nexport default emulateTransitionEnd;\n","/**\n * Shortcut for `Float32Array.from()` static method.\n *\n * @param arr array-like iterable object\n * @returns a new Float32Array\n */\nconst Float32ArrayFrom = (arr: ArrayLike<number> | Iterable<number>): Float32Array =>\n Float32Array.from(Array.from(arr));\n\nexport default Float32ArrayFrom;\n","/**\n * Shortcut for `Float64Array.from()` static method.\n *\n * @param arr array-like iterable object\n * @returns a new Float64Array\n */\nconst Float64ArrayFrom = (arr: ArrayLike<number> | Iterable<number>): Float64Array =>\n Float64Array.from(Array.from(arr));\n\nexport default Float64ArrayFrom;\n","/**\n * Shortie for `HTMLElement.focus()` method.\n *\n * @param element is the target\n * @param options allows to pass additional options such as `preventScroll: boolean`\n */\nconst focus = (element: HTMLOrSVGElement, options?: FocusOptions): void => element.focus(options);\n\nexport default focus;\n","type NormalValue = boolean | number | string | ((...args: any[]) => any) | null;\n\n/**\n * Utility to normalize component options\n *\n * @param value the input value\n * @return the normalized value\n */\nconst normalizeValue = (value?: boolean | number | string): NormalValue => {\n if (['true', true].includes(value as boolean)) {\n return true;\n }\n\n if (['false', false].includes(value as boolean)) {\n return false;\n }\n\n if (['null', '', null, undefined].includes(value as string | undefined)) {\n return null;\n }\n\n if (value !== '' && !Number.isNaN(+(value as string))) {\n return +(value as string);\n }\n\n // string / function / HTMLElement / object / undefined\n return value as NormalValue;\n};\n\nexport default normalizeValue;\n","/**\n * Shortcut for `Object.entries()` static method.\n *\n * @param obj a target object\n * @returns the entries of an object in an array format [key, value][]\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectEntries = <O extends Record<string, any>>(obj: O) =>\n Object.entries(obj) as [keyof O, O[keyof O]][];\n\nexport default ObjectEntries;\n","/**\n * Shortcut for `String.toLowerCase()`.\n *\n * @param source input string\n * @returns lowercase output string\n */\nconst toLowerCase = (source: string): string => source.toLowerCase();\n\nexport default toLowerCase;\n","import getAttribute from '../attr/getAttribute';\nimport normalizeValue from './normalizeValue';\nimport ObjectEntries from './ObjectEntries';\nimport toLowerCase from './toLowerCase';\n// import { optionValues } from '../types';\n\n/**\n * Utility to normalize component options.\n *\n * @param element target\n * @param defaultOps component default options\n * @param inputOps component instance options\n * @param ns component namespace\n * @return normalized component options object\n */\nconst normalizeOptions = <T extends { [key: string]: any }>(\n element: HTMLElement,\n defaultOps: T,\n inputOps: Partial<T>,\n ns?: string,\n): T => {\n const INPUT = { ...inputOps };\n const data = { ...element.dataset };\n const normalOps = { ...defaultOps };\n const dataOps: Partial<T> = {};\n const title = 'title';\n\n ObjectEntries(data).forEach(([k, v]) => {\n const key: keyof T =\n ns && typeof k === 'string' && k.includes(ns)\n ? k.replace(ns, '').replace(/[A-Z]/g, (match: string) => toLowerCase(match))\n : /* istanbul ignore next @preserve */ k;\n\n dataOps[key] = normalizeValue(v) as T[keyof T];\n });\n\n ObjectEntries(INPUT).forEach(([k, v]) => {\n INPUT[k] = normalizeValue(v) as T[keyof T];\n });\n\n ObjectEntries(defaultOps).forEach(([k, v]) => {\n // istanbul ignore else @preserve\n if (k in INPUT) {\n normalOps[k] = INPUT[k] as T[keyof T];\n } else if (k in dataOps) {\n normalOps[k] = dataOps[k] as T[keyof T];\n } else {\n normalOps[k] = (k === title ? getAttribute(element, title) : v) as T[keyof T];\n }\n });\n\n return normalOps;\n};\n\nexport default normalizeOptions;\n","import isObject from '../is/isObject';\n\n/**\n * A shortcut to `Object.hasOwn()` static method to work\n * with regular `Object` elements.\n *\n * @see https://fettblog.eu/typescript-hasownproperty/\n * @param obj the target object\n * @param prop the property to check\n * @returns the query result\n */\nconst ObjectHasOwn = <T extends object, K extends PropertyKey>(\n obj: T,\n prop: K,\n): obj is T & Record<K, unknown> => isObject(obj) && (Object.hasOwn(obj, prop) || prop in obj);\n\nexport default ObjectHasOwn;\n","/**\n * Shortcut for `Object.keys()` static method.\n *\n * @param obj a target object\n * @returns an array with object keys\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectKeys = <O extends Record<string, any>>(obj: O) => Object.keys(obj) as (keyof O)[];\n\nexport default ObjectKeys;\n","/**\n * Shortcut for `Object.values()` static method.\n *\n * @param obj a target object\n * @returns an array with the object values\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectValues = <O extends Record<string, unknown>>(obj: O): O[keyof O][] =>\n Object.values(obj) as O[keyof O][];\n\nexport default ObjectValues;\n","/**\n * Shortcut for `Object.fromEntries()` static method.\n *\n * @param entries a target entries object\n * @returns a new Object created from the specified entries in array format [key, value][]\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectFromEntries = <K extends string, V>(entries: [K, V][]) =>\n Object.fromEntries(entries) as Record<K, V>;\n\nexport default ObjectFromEntries;\n","import type { OriginalEvent } from '../interface/originalEvent';\nimport isObject from '../is/isObject';\nimport ObjectAssign from './ObjectAssign';\n\n/**\n * Returns a namespaced `CustomEvent` specific to each component.\n *\n * @param eventType Event.type\n * @param config Event.options | Event.properties\n * @returns a new namespaced event\n */\nconst createCustomEvent = <O extends unknown & Record<string, unknown>, T extends OriginalEvent>(\n eventType: string,\n config?: O,\n): T => {\n const OriginalCustomEvent = new CustomEvent<O>(eventType, {\n cancelable: true,\n bubbles: true,\n }) as T;\n\n // istanbul ignore else @preserve\n if (isObject(config)) {\n ObjectAssign(OriginalCustomEvent, config);\n }\n return OriginalCustomEvent;\n};\n\nexport default createCustomEvent;\n","/**\n * A global namespace for most scroll event listeners.\n */\nconst passiveHandler: Partial<AddEventListenerOptions> = { passive: true };\n\nexport default passiveHandler;\n","/**\n * Utility to force re-paint of an `HTMLElement` target.\n *\n * @param element is the target\n * @return the `Element.offsetHeight` value\n */\nconst reflow = (element: HTMLElement): number => element.offsetHeight;\n\nexport default reflow;\n","import ObjectAssign from './ObjectAssign';\nimport ObjectEntries from './ObjectEntries';\nimport isString from '../is/isString';\nimport type { CSS4Declaration } from '../interface/css4Declaration';\n\n/**\n * Shortcut for multiple uses of `HTMLElement.style.propertyName` method.\n *\n * @param element target element\n * @param styles attribute value\n */\nconst setElementStyle = (element: HTMLElement, styles: Partial<CSS4Declaration>): void => {\n ObjectEntries(styles).forEach(([key, value]) => {\n if (value && isString(key as string) && (key as string).includes('--')) {\n element.style.setProperty(key as string, value);\n } else {\n const propObject: Partial<CSS4Declaration> = {};\n propObject[key] = value;\n ObjectAssign(element.style, propObject);\n }\n });\n};\nexport default setElementStyle;\n","import isObject from './isObject';\n\n/**\n * Checks if an element is a `Map`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isMap = (obj?: unknown): obj is Map<any, any> =>\n (isObject(obj) && obj.constructor.name === 'Map') || false;\nexport default isMap;\n","/**\n * Shortie for `typeof SOMETHING === \"number\"`.\n *\n * @param num input value\n * @returns the query result\n */\nconst isNumber = (num?: unknown): num is number => typeof num === 'number' || false;\n\nexport default isNumber;\n","import isMap from '../is/isMap';\nimport isHTMLElement from '../is/isHTMLElement';\nimport isNumber from '../is/isNumber';\n\ntype KeyMap = Map<string, number>;\ntype TimeMap = Map<HTMLElement, number | KeyMap>;\n\nconst TimeCache: TimeMap = new Map() as TimeMap;\n/**\n * An interface for one or more `TimerHandler`s per `Element`.\n *\n * @see https://github.com/thednp/navbar/\n */\nconst Timer = {\n /**\n * Sets a new timeout timer for an element, or element -> key association.\n *\n * @param element target element\n * @param callback the callback\n * @param delay the execution delay\n * @param key a unique key\n */\n set: (element: HTMLElement, callback: TimerHandler, delay: number, key?: string): void => {\n if (!isHTMLElement(element)) return;\n\n // istanbul ignore else @preserve\n if (key && key.length) {\n // istanbul ignore else @preserve\n if (!TimeCache.has(element)) {\n TimeCache.set(element, new Map());\n }\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n (TimeCache.get(element) as KeyMap).set(key, setTimeout(callback, delay));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n TimeCache.set(element, setTimeout(callback, delay));\n }\n },\n\n /**\n * Returns the timer associated with the target.\n *\n * @param element target element\n * @param key a unique\n * @returns the timer\n */\n get: (element: HTMLElement, key?: string): number | null => {\n if (!isHTMLElement(element)) return null;\n const keyTimers = TimeCache.get(element);\n\n if (key && keyTimers && isMap(keyTimers as KeyMap)) {\n return (keyTimers as KeyMap).get(key) || /* istanbul ignore next */ null;\n } else if (isNumber(keyTimers as number)) {\n return keyTimers as number;\n }\n return null;\n },\n\n /**\n * Clears the element's timer.\n *\n * @param element target element\n * @param key a unique key\n */\n clear: (element: HTMLElement, key?: string): void => {\n if (!isHTMLElement(element)) return;\n\n const keyTimers = TimeCache.get(element);\n\n if (key && key.length && isMap(keyTimers as KeyMap)) {\n clearTimeout((keyTimers as KeyMap).get(key));\n (keyTimers as KeyMap).delete(key);\n // istanbul ignore else @preserve\n if ((keyTimers as KeyMap).size === 0) {\n TimeCache.delete(element);\n }\n } else {\n clearTimeout(keyTimers as number);\n TimeCache.delete(element);\n }\n },\n};\n\nexport default Timer;\n","/**\n * Shortcut for `String.toUpperCase()`.\n *\n * @param source input string\n * @returns uppercase output string\n */\nconst toUpperCase = (source: string): string => source.toUpperCase();\n\nexport default toUpperCase;\n","import getDocument from '../get/getDocument';\nimport isNode from '../is/isNode';\n\n/**\n * A shortcut for `(document|Element).querySelectorAll`.\n *\n * @param selector the input selector\n * @param parent optional node to look into\n * @return the query result\n */\nconst querySelectorAll = <T extends HTMLElement>(\n selector: string,\n parent?: ParentNode,\n): NodeListOf<T> => {\n const lookUp = isNode(parent) ? parent : getDocument();\n return lookUp.querySelectorAll(selector);\n};\n\nexport default querySelectorAll;\n","import ariaHidden from '../strings/ariaHidden';\nimport focusableSelector from '../strings/focusableSelector';\nimport querySelectorAll from '../selectors/querySelectorAll';\nimport getAttribute from '../attr/getAttribute';\nimport hasAttribute from '../attr/hasAttribute';\nimport off from '../event/off';\nimport on from '../event/on';\nimport getDocument from '../get/getDocument';\nimport { KeyboardEvent } from '../interface/event';\n\nconst focusTrapMap = new Map<HTMLElement, boolean>();\n\nexport type FocusableElement =\n | HTMLAnchorElement\n | HTMLButtonElement\n | HTMLInputElement\n | HTMLTextAreaElement\n | HTMLDataListElement\n | HTMLDetailsElement\n | HTMLSelectElement;\n\nfunction handleKeyboardNavigation<T extends HTMLElement & EventTarget>(\n this: T,\n event: KeyboardEvent<T>,\n) {\n const { shiftKey, code } = event;\n const doc = getDocument(this);\n const focusableElements = [...querySelectorAll<FocusableElement>(focusableSelector, this)].filter(\n el => !hasAttribute(el, 'disabled') && !getAttribute(el, ariaHidden),\n );\n\n if (!focusableElements.length) return;\n const firstFocusable = focusableElements[0];\n const lastFocusable = focusableElements[focusableElements.length - 1];\n\n // istanbul ignore else @preserve\n if (code === 'Tab') {\n if (shiftKey && doc.activeElement === firstFocusable) {\n lastFocusable.focus();\n event.preventDefault();\n } else if (!shiftKey && doc.activeElement === lastFocusable) {\n firstFocusable.focus();\n event.preventDefault();\n }\n }\n}\n\n/**\n * Utility to check if a designated element is affected by focus trap;\n * @param target\n */\nexport const hasFocusTrap = (target: HTMLElement) => focusTrapMap.has(target) === true;\n\n/**\n * Utility to toggle focus trap inside a designated target element;\n * @param target\n */\nexport const toggleFocusTrap = (target: HTMLElement) => {\n const isCurrentlyTrapped = hasFocusTrap(target);\n const action = !isCurrentlyTrapped ? on : off;\n action(target, 'keydown', handleKeyboardNavigation);\n if (isCurrentlyTrapped) focusTrapMap.delete(target);\n else focusTrapMap.set(target, true);\n};\n","import isHTMLElement from '../is/isHTMLElement';\nimport type { BoundingClientRect } from '../interface/boundingClientRect';\n\n/**\n * Returns the bounding client rect of a target `HTMLElement`.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element event.target\n * @param includeScale when *true*, the target scale is also computed\n * @returns the bounding client rect object\n */\nconst getBoundingClientRect = (\n element: HTMLElement,\n includeScale?: boolean,\n): BoundingClientRect => {\n const { width, height, top, right, bottom, left } = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n const { offsetWidth, offsetHeight } = element;\n scaleX = offsetWidth > 0 ? Math.round(width) / offsetWidth : /* istanbul ignore next */ 1;\n scaleY = offsetHeight > 0 ? Math.round(height) / offsetHeight : /* istanbul ignore next */ 1;\n }\n\n return {\n width: width / scaleX,\n height: height / scaleY,\n top: top / scaleY,\n right: right / scaleX,\n bottom: bottom / scaleY,\n left: left / scaleX,\n x: left / scaleX,\n y: top / scaleY,\n };\n};\n\nexport default getBoundingClientRect;\n","import getDocument from './getDocument';\n\n/**\n * Returns the `document.body` or the `<body>` element.\n *\n * @param node the reference node\n * @returns the parent `<body>` of the specified node\n */\nconst getDocumentBody = (node?: Node | Document | Window): HTMLElement => {\n return getDocument(node).body;\n};\n\nexport default getDocumentBody;\n","import getDocument from './getDocument';\n\n/**\n * Returns the `document.documentElement` or the `<HTML>` element.\n *\n * @param node the reference node\n * @returns the parent `<HTML>` of the node's parent document\n */\nconst getDocumentElement = (node?: Node | Document | Window): HTMLElement => {\n return getDocument(node).documentElement;\n};\n\nexport default getDocumentElement;\n","import getDocument from './getDocument';\n/**\n * Returns the `document.head` or the `<head>` element.\n *\n * @param node the reference node\n * @returns the `<head>` of the node's parent document\n */\nconst getDocumentHead = (node?: Node | Document | Window): HTMLElement & HTMLHeadElement => {\n return getDocument(node).head;\n};\n\nexport default getDocumentHead;\n","import isWindow from '../is/isWindow';\n\n/**\n * Returns an `{x,y}` object with the target\n * `HTMLElement` / `Node` scroll position.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target node / element\n * @returns the scroll tuple\n */\nconst getNodeScroll = (element: HTMLElement | Window): { x: number; y: number } => {\n const isWin = isWindow(element);\n const x = isWin ? element.scrollX : element.scrollLeft;\n const y = isWin ? element.scrollY : element.scrollTop;\n\n return { x, y };\n};\n\nexport default getNodeScroll;\n","import isNode from './isNode';\n\n/**\n * Check if target is a `ShadowRoot`.\n *\n * @param element target\n * @returns the query result\n */\nconst isShadowRoot = (element?: unknown): element is ShadowRoot =>\n (isNode(element) && element.constructor.name === 'ShadowRoot') || false;\n\nexport default isShadowRoot;\n","import getDocumentElement from './getDocumentElement';\nimport isShadowRoot from '../is/isShadowRoot';\nimport isHTMLElement from '../is/isHTMLElement';\nimport isNode from '../is/isNode';\n\n/**\n * Returns the `parentNode` also going through `ShadowRoot`.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param {Node} node the target node\n * @returns {Node} the apropriate parent node\n */\nconst getParentNode = (node: Node): Node | ParentNode => {\n if (node.nodeName === 'HTML') {\n return node;\n }\n\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n return (\n (isHTMLElement(node) && node.assignedSlot) || // step into the shadow DOM of the parent of a slotted node\n (isNode(node) && node.parentNode) || // DOM Element detected\n (isShadowRoot(node) && node.host) || // ShadowRoot detected\n getDocumentElement(node) // fallback to <HTML>\n );\n};\n\nexport default getParentNode;\n","import isHTMLElement from './isHTMLElement';\nimport getBoundingClientRect from '../get/getBoundingClientRect';\n\n/**\n * Checks if a target `HTMLElement` is affected by scale.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target\n * @returns the query result\n */\nconst isScaledElement = (element?: HTMLElement): boolean => {\n if (!isHTMLElement(element)) return false;\n const { width, height } = getBoundingClientRect(element);\n const { offsetWidth, offsetHeight } = element;\n return Math.round(width) !== offsetWidth || Math.round(height) !== offsetHeight;\n};\n\nexport default isScaledElement;\n","import type { OffsetRect } from '../interface/offsetRect';\nimport isScaledElement from '../is/isScaledElement';\nimport isHTMLElement from '../is/isHTMLElement';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n/**\n * Returns the rect relative to a given offset parent and its scroll position.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target\n * @param offsetParent the container / offset parent\n * @param scroll the offsetParent scroll position\n * @returns a DOMRect like object\n */\nconst getRectRelativeToOffsetParent = (\n element: HTMLElement,\n offsetParent: HTMLElement,\n scroll: { x: number; y: number },\n): OffsetRect => {\n const isParentAnElement = isHTMLElement(offsetParent);\n const rect = getBoundingClientRect(element, isParentAnElement && isScaledElement(offsetParent));\n const offsets = { x: 0, y: 0 };\n\n // istanbul ignore else @preserve\n if (isParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n\n return {\n x: rect.left + scroll.x - offsets.x,\n y: rect.top + scroll.y - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n};\n\nexport default getRectRelativeToOffsetParent;\n","import isMap from '../is/isMap';\n\nlet elementUID = 0;\nlet elementMapUID = 0;\n\ntype KeyIdMap = Map<string | number, number>;\ntype IDMap = Map<number | string | HTMLElement, number | KeyIdMap>;\n\nconst elementIDMap: IDMap = new Map();\n\n/**\n * Returns a unique identifier for popover, tooltip, scrollspy.\n *\n * @param element target element\n * @param key optional identifier key\n * @returns an existing or new unique ID\n */\nconst getUID = (element: HTMLElement, key?: string): number => {\n let result = key ? elementUID : elementMapUID;\n\n if (key) {\n const elID = getUID(element);\n const elMap = elementIDMap.get(elID) || (new Map() as KeyIdMap);\n if (!elementIDMap.has(elID)) {\n elementIDMap.set(elID, elMap);\n }\n if (isMap(elMap as KeyIdMap) && !(elMap as KeyIdMap).has(key)) {\n (elMap as KeyIdMap).set(key, result);\n elementUID += 1;\n } else result = (elMap as KeyIdMap).get(key) as number;\n } else {\n const elkey = element.id || element;\n\n if (!elementIDMap.has(elkey)) {\n elementIDMap.set(elkey, result);\n elementMapUID += 1;\n } else result = elementIDMap.get(elkey) as number;\n }\n return result;\n};\n\nexport default getUID;\n","import isDocument from '../is/isDocument';\nimport isNode from '../is/isNode';\n\n/**\n * Returns the `Window` object of a target node.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param node target node\n * @returns the `Window` object\n */\nconst getWindow = (node?: Node): Window => {\n // node is undefined | NULL\n if (!node) return window;\n // node instanceof Document\n if (isDocument(node)) return node.defaultView as Window;\n // node instanceof Node\n if (isNode(node)) return node?.ownerDocument?.defaultView as Window;\n // node is instanceof Window\n return node;\n};\n\nexport default getWindow;\n","/**\n * Shortie for the `Array.isArray()` static method.\n *\n * @param obj array-like iterable object\n * @returns the query result\n */\nconst isArray = (obj?: unknown): obj is any[] => Array.isArray(obj) || false;\n\nexport default isArray;\n","import isNode from './isNode';\n\n/**\n * Checks if an element is an `HTMLCanvasElement` or `<canvas>`.\n *\n * @param element the target element\n * @returns the query result\n */\n\nconst isCanvas = (element?: unknown): element is HTMLCanvasElement =>\n (isNode(element) && element.nodeName === 'CANVAS') || false;\n\nexport default isCanvas;\n","import isHTMLElement from './isHTMLElement';\nimport type { CustomElement } from '../interface/customElement';\n\n/**\n * Checks if an object is a `CustomElement`.\n *\n * @param element the target object\n * @returns the query result\n */\nconst isCustomElement = <T extends CustomElement>(element?: unknown): element is T =>\n (isHTMLElement(element) && !!(element as T).shadowRoot) || false;\n\nexport default isCustomElement;\n","import isNode from './isNode';\n\n/**\n * Checks if an object is an `Element`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * ```\n * ELEMENT_NODE = 1;\n * ATTRIBUTE_NODE = 2;\n * TEXT_NODE = 3;\n * CDATA_SECTION_NODE = 4;\n * ENTITY_REFERENCE_NODE = 5; // legacy\n * ENTITY_NODE = 6; // legacy\n * PROCESSING_INSTRUCTION_NODE = 7;\n * COMMENT_NODE = 8;\n * DOCUMENT_NODE = 9;\n * DOCUMENT_TYPE_NODE = 10;\n * DOCUMENT_FRAGMENT_NODE = 11;\n * ```\n * @param element the target object\n * @returns the query result\n */\nconst isElement = (element?: unknown): element is Element =>\n (isNode(element) && [1, 2, 3, 4, 5, 6, 7, 8].some(x => element.nodeType === x)) || false;\n\nexport default isElement;\n","import getBoundingClientRect from '../get/getBoundingClientRect';\nimport getDocumentElement from '../get/getDocumentElement';\nimport isNode from './isNode';\n\n/**\n * Utility to determine if an `HTMLElement`\n * is partially visible in viewport.\n *\n * @param element target\n * @return the query result\n */\nconst isElementInScrollRange = (element?: HTMLElement): boolean => {\n if (!isNode(element)) return false;\n\n const { top, bottom } = getBoundingClientRect(element);\n const { clientHeight } = getDocumentElement(element);\n return top <= clientHeight && bottom >= 0;\n};\n\nexport default isElementInScrollRange;\n","import getBoundingClientRect from '../get/getBoundingClientRect';\nimport getDocumentElement from '../get/getDocumentElement';\nimport isNode from './isNode';\n\n/**\n * Utility to determine if an `HTMLElement`\n * is fully visible in the viewport.\n *\n * @param element target\n * @return the query result\n */\nconst isElementInViewport = (element?: HTMLElement): boolean => {\n if (!isNode(element)) return false;\n\n const { clientWidth, clientHeight } = getDocumentElement(element);\n const { top, left, bottom, right } = getBoundingClientRect(element, true);\n\n return top >= 0 && left >= 0 && bottom <= clientHeight && right <= clientWidth;\n};\nexport default isElementInViewport;\n","import isHTMLElement from './isHTMLElement';\nimport isArray from './isArray';\n\n/**\n * Checks if an object is an `Array` in which all items are `Element`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isElementsArray = (obj?: unknown): obj is HTMLElement[] =>\n (isArray(obj) && obj.every(isHTMLElement)) || false;\n\nexport default isElementsArray;\n","/**\n * Checks if an object is a `Function`.\n *\n * @param fn the target object\n * @returns the query result\n */\nconst isFunction = (fn?: unknown): fn is (...arg0: any[]) => any =>\n typeof fn === 'function' || false;\n\nexport default isFunction;\n","import isObject from './isObject';\n\n/**\n * Checks if an object is an `HTMLCollection`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isHTMLCollection = (obj?: unknown): obj is HTMLCollection =>\n (isObject(obj) && obj.constructor.name === 'HTMLCollection') || false;\n\nexport default isHTMLCollection;\n","import isHTMLElement from './isHTMLElement';\n\n/**\n * Check if a target element is an `<img>`.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isHTMLImageElement = (element?: unknown): element is HTMLImageElement =>\n (isHTMLElement(element) && element.tagName === 'IMG') || false;\n\nexport default isHTMLImageElement;\n","import isString from './isString';\n\n/**\n * Checks if a string is a `JSON` string.\n *\n * @param str the target string\n * @returns the query result\n */\nconst isJSON = (str?: string): boolean => {\n if (!isString(str)) return false;\n\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\n\nexport default isJSON;\n","import isObject from './isObject';\n\n/**\n * Checks if an element is a `WeakMap`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isWeakMap = (obj?: unknown): obj is WeakMap<any, any> =>\n (isObject(obj) && obj.constructor.name === 'WeakMap') || false;\nexport default isWeakMap;\n","import isNode from './isNode';\n\n/**\n * Checks if an element is an `<svg>` (or any type of SVG element),\n * `<img>`, `<video>` or `<canvas>`.\n *\n * *Tooltip* / *Popover* works different with media elements.\n *\n * @param element the target element\n * @returns the query result\n */\n\nconst isMedia = (\n element?: unknown,\n): element is SVGElement | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement =>\n (isNode(element) &&\n ['SVG', 'Image', 'Video', 'Canvas'].some(s => element.constructor.name.includes(s))) ||\n false;\n\nexport default isMedia;\n","import isObject from './isObject';\n\n/**\n * Checks if an object is a `NodeList`.\n * => equivalent to `object instanceof NodeList`\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isNodeList = (obj?: unknown): obj is NodeList =>\n (isObject(obj) && obj.constructor.name === 'NodeList') || false;\n\nexport default isNodeList;\n","import getDocumentElement from '../get/getDocumentElement';\n\n/**\n * Checks if a page is Right To Left.\n *\n * @param node the target\n * @returns the query result\n */\nconst isRTL = (node?: Node): boolean => getDocumentElement(node).dir === 'rtl';\n\nexport default isRTL;\n","import isNode from './isNode';\n\n/**\n * Check if an element is an `<svg>` or any other SVG element,\n * an equivalent to `SOMETHING instanceof SVGElement`.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isSVGElement = (element?: unknown): element is SVGElement =>\n (isNode(element) && element.constructor.name.includes('SVG')) || false;\n\nexport default isSVGElement;\n","import isNode from './isNode';\n\n/**\n * Check if a target element is a `<table>`, `<td>` or `<th>`.\n * This specific check is important for determining\n * the `offsetParent` of a given element.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isTableElement = (element?: unknown): element is HTMLTableElement | HTMLTableCellElement =>\n (isNode(element) && ['TABLE', 'TD', 'TH'].includes(element.nodeName)) || false;\n\nexport default isTableElement;\n","/**\n * Shortcut for `HTMLElement.closest` method which also works\n * with children of `ShadowRoot`. The order of the parameters\n * is intentional since they're both required.\n *\n * @see https://stackoverflow.com/q/54520554/803358\n *\n * @param element Element to look into\n * @param selector the selector name\n * @return the query result\n */\nconst closest = <T extends Element = HTMLElement>(\n element: T,\n selector: string,\n): HTMLElement | null => {\n return element\n ? element.closest(selector) ||\n // break out of `ShadowRoot`\n closest((element.getRootNode() as ShadowRoot).host, selector)\n : null;\n};\n\nexport default closest;\n","import getDocument from '../get/getDocument';\nimport isNode from '../is/isNode';\nimport isHTMLElement from '../is/isHTMLElement';\n\n/**\n * Utility to check if target is typeof `HTMLElement`, `Element`, `Node`\n * or find one that matches a selector.\n *\n * @param selector the input selector or target element\n * @param parent optional node to look into\n * @return the `HTMLElement` or `querySelector` result\n */\nconst querySelector = <T extends HTMLElement>(\n selector: HTMLElement | string,\n parent?: ParentNode,\n): T | null => {\n if (isHTMLElement(selector)) {\n return selector as T;\n }\n const lookUp = isNode(parent) ? parent : getDocument();\n\n return lookUp.querySelector<T>(selector);\n};\n\nexport default querySelector;\n","import getDocument from '../get/getDocument';\nimport isNode from '../is/isNode';\n\n/**\n * Shortcut for `HTMLElement.getElementsByTagName` method. Some `Node` elements\n * like `ShadowRoot` do not support `getElementsByTagName`.\n *\n * @param selector the tag name\n * @param parent optional Element to look into\n * @return the 'HTMLCollection'\n */\nconst getElementsByTagName = <T extends HTMLElement>(selector: string, parent?: ParentNode) => {\n const lookUp = isNode(parent) ? parent : getDocument();\n return (lookUp as Document).getElementsByTagName(selector) as HTMLCollectionOf<T>;\n};\n\nexport default getElementsByTagName;\n","import isCustomElement from '../is/isCustomElement';\nimport getElementsByTagName from './getElementsByTagName';\n\n/**\n * Returns an `Array` of `Node` elements that are registered as\n * `CustomElement`.\n *\n * @see https://stackoverflow.com/questions/27334365/how-to-get-list-of-registered-custom-elements\n *\n * @param parent parent to look into\n * @returns the query result\n */\nconst getCustomElements = (parent?: ParentNode) => {\n const collection = getElementsByTagName('*', parent);\n\n return [...collection].filter(isCustomElement);\n};\n\nexport default getCustomElements;\n","import getDocument from '../get/getDocument';\n\n/**\n * Returns an `HTMLElement` that matches the id in the document.\n * Within multiple <iframe> elements, a `parent` parameter\n * would decisively locate the correct element.\n *\n * @param id the ID selector\n * @param context an element in it's document or document\n * @returns the requested element\n */\nconst getElementById = <T extends HTMLElement>(id: string, context?: Node) => {\n return (getDocument(context).getElementById(id) as T) || null;\n};\n\nexport default getElementById;\n","import getDocument from '../get/getDocument';\nimport isNode from '../is/isNode';\n\n/**\n * Shortcut for `HTMLElement.getElementsByClassName` method. Some `Node` elements\n * like `ShadowRoot` do not support `getElementsByClassName`.\n *\n * @param selector the class name\n * @param parent optional Element to look into\n * @return the 'HTMLCollection'\n */\nconst getElementsByClassName = <T extends HTMLElement>(selector: string, parent?: ParentNode) => {\n const lookUp = parent && isNode(parent) ? parent : getDocument();\n return (lookUp as HTMLElement | Document).getElementsByClassName(selector) as HTMLCollectionOf<T>;\n};\n\nexport default getElementsByClassName;\n","/**\n * Check if element matches a CSS selector.\n *\n * @param target the target element\n * @param selector the selector to match\n * @returns the query result\n */\nconst matches = (target: Element, selector: string): boolean => target.matches(selector);\n\nexport default matches;\n"],"names":["ariaChecked","ariaDescription","ariaDescribedBy","ariaExpanded","ariaHasPopup","ariaHidden","ariaLabel","ariaLabelledBy","ariaModal","ariaPressed","ariaSelected","ariaValueMin","ariaValueMax","ariaValueNow","ariaValueText","abortEvent","beforeunloadEvent","blurEvent","changeEvent","contextmenuEvent","DOMContentLoadedEvent","DOMMouseScrollEvent","errorEvent","focusEvent","focusinEvent","focusoutEvent","gesturechangeEvent","gestureendEvent","gesturestartEvent","keydownEvent","keypressEvent","keyupEvent","loadEvent","mouseclickEvent","mousedblclickEvent","mousedownEvent","mouseupEvent","mousehoverEvent","mouseenterEvent","mouseleaveEvent","mouseinEvent","mouseoutEvent","mouseoverEvent","mousemoveEvent","mousewheelEvent","moveEvent","orientationchangeEvent","pointercancelEvent","pointerdownEvent","pointerleaveEvent","pointermoveEvent","pointerupEvent","readystatechangeEvent","resetEvent","resizeEvent","selectEvent","selectendEvent","selectstartEvent","scrollEvent","submitEvent","touchstartEvent","touchmoveEvent","touchcancelEvent","touchendEvent","unloadEvent","nativeEvents","DOMContentLoaded","DOMMouseScroll","abort","beforeunload","blur","change","click","contextmenu","dblclick","error","focus","focusin","focusout","gesturechange","gestureend","gesturestart","hover","keydown","keypress","keyup","load","mousedown","mousemove","mousein","mouseout","mouseenter","mouseleave","mouseover","mouseup","mousewheel","move","orientationchange","pointercancel","pointerdown","pointerleave","pointermove","pointerup","readystatechange","reset","resize","scroll","select","selectend","selectstart","submit","touchcancel","touchend","touchmove","touchstart","unload","dragEvent","dragstartEvent","dragenterEvent","dragleaveEvent","dragoverEvent","dragendEvent","loadstartEvent","mouseSwipeEvents","mouseClickEvents","mouseHoverEvents","touchEvents","focusEvents","focusableSelector","keyboardEventKeys","keyAlt","keyArrowDown","keyArrowUp","keyArrowLeft","keyArrowRight","keyBackspace","keyCapsLock","keyControl","keyDelete","keyEnter","keyNumpadEnter","keyEscape","keyInsert","keyMeta","keyPause","keyScrollLock","keyShift","keySpace","keyTab","animationDuration","animationDelay","animationName","animationEndEvent","transitionDuration","transitionDelay","transitionEndEvent","transitionProperty","addEventListener","removeEventListener","bezierEasings","offsetHeight","offsetWidth","scrollHeight","scrollWidth","tabindex","uaDATA","userAgentData","userAgentString","userAgent","mobileBrands","isMobileCheck","x","isMobile","appleBrands","isApple","isFirefox","documentHead","support3DTransform","p","on","element","eventName","listener","options","ops","off","one","handlerWrapper","e","noop","supportPassive","result","opts","supportTransform","supportTouch","supportAnimation","supportTransition","getAttribute","att","getAttributeNS","ns","hasAttribute","hasAttributeNS","setAttribute","value","setAttributeNS","removeAttribute","removeAttributeNS","addClass","classNAME","removeClass","hasClass","documentBody","documentElement","ArrayFrom","arr","isObject","obj","isNode","node","isHTMLElement","componentData","Data","component","instance","instanceMap","getInstance","target","isString","str","isWindow","isDocument","getDocument","ObjectAssign","source","createElement","param","tagName","newElement","attr","createElementNS","dispatchEvent","event","distinct","index","getElementStyle","property","computedStyle","prop","getElementAnimationDelay","propertyValue","durationValue","durationScale","duration","getElementAnimationDuration","emulateAnimationEnd","handler","called","endEvent","delay","animationEndWrapper","getElementTransitionDelay","delayValue","delayScale","getElementTransitionDuration","emulateTransitionEnd","transitionEndWrapper","Float32ArrayFrom","Float64ArrayFrom","normalizeValue","ObjectEntries","toLowerCase","normalizeOptions","defaultOps","inputOps","INPUT","data","normalOps","dataOps","title","k","v","key","match","ObjectHasOwn","ObjectKeys","ObjectValues","ObjectFromEntries","entries","createCustomEvent","eventType","config","OriginalCustomEvent","passiveHandler","reflow","setElementStyle","styles","propObject","isMap","isNumber","num","TimeCache","Timer","callback","keyTimers","toUpperCase","querySelectorAll","selector","parent","focusTrapMap","handleKeyboardNavigation","shiftKey","code","doc","focusableElements","el","firstFocusable","lastFocusable","hasFocusTrap","toggleFocusTrap","isCurrentlyTrapped","getBoundingClientRect","includeScale","width","height","top","right","bottom","left","scaleX","scaleY","getDocumentBody","getDocumentElement","getDocumentHead","getNodeScroll","isWin","y","isShadowRoot","getParentNode","isScaledElement","getRectRelativeToOffsetParent","offsetParent","isParentAnElement","rect","offsets","offsetRect","elementUID","elementMapUID","elementIDMap","getUID","elID","elMap","elkey","getWindow","_a","isArray","isCanvas","isCustomElement","isElement","isElementInScrollRange","clientHeight","isElementInViewport","clientWidth","isElementsArray","isFunction","fn","isHTMLCollection","isHTMLImageElement","isJSON","isWeakMap","isMedia","s","isNodeList","isRTL","isSVGElement","isTableElement","closest","querySelector","getElementsByTagName","getCustomElements","getElementById","id","context","getElementsByClassName","matches"],"mappings":"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"}
1
+ {"version":3,"file":"shorty.cjs","sources":["../src/strings/ariaChecked.ts","../src/strings/ariaDescription.ts","../src/strings/ariaDescribedBy.ts","../src/strings/ariaExpanded.ts","../src/strings/ariaHasPopup.ts","../src/strings/ariaHidden.ts","../src/strings/ariaLabel.ts","../src/strings/ariaLabelledBy.ts","../src/strings/ariaModal.ts","../src/strings/ariaPressed.ts","../src/strings/ariaSelected.ts","../src/strings/ariaValueMin.ts","../src/strings/ariaValueMax.ts","../src/strings/ariaValueNow.ts","../src/strings/ariaValueText.ts","../src/strings/abortEvent.ts","../src/strings/beforeunloadEvent.ts","../src/strings/blurEvent.ts","../src/strings/changeEvent.ts","../src/strings/contextmenuEvent.ts","../src/strings/DOMContentLoadedEvent.ts","../src/strings/DOMMouseScrollEvent.ts","../src/strings/errorEvent.ts","../src/strings/focusEvent.ts","../src/strings/focusinEvent.ts","../src/strings/focusoutEvent.ts","../src/strings/gesturechangeEvent.ts","../src/strings/gestureendEvent.ts","../src/strings/gesturestartEvent.ts","../src/strings/keydownEvent.ts","../src/strings/keypressEvent.ts","../src/strings/keyupEvent.ts","../src/strings/loadEvent.ts","../src/strings/mouseclickEvent.ts","../src/strings/mousedblclickEvent.ts","../src/strings/mousedownEvent.ts","../src/strings/mouseupEvent.ts","../src/strings/mousehoverEvent.ts","../src/strings/mouseenterEvent.ts","../src/strings/mouseleaveEvent.ts","../src/strings/mouseinEvent.ts","../src/strings/mouseoutEvent.ts","../src/strings/mouseoverEvent.ts","../src/strings/mousemoveEvent.ts","../src/strings/mousewheelEvent.ts","../src/strings/moveEvent.ts","../src/strings/orientationchangeEvent.ts","../src/strings/pointercancelEvent.ts","../src/strings/pointerdownEvent.ts","../src/strings/pointerleaveEvent.ts","../src/strings/pointermoveEvent.ts","../src/strings/pointerupEvent.ts","../src/strings/readystatechangeEvent.ts","../src/strings/resetEvent.ts","../src/strings/resizeEvent.ts","../src/strings/selectEvent.ts","../src/strings/selectendEvent.ts","../src/strings/selectstartEvent.ts","../src/strings/scrollEvent.ts","../src/strings/submitEvent.ts","../src/strings/touchstartEvent.ts","../src/strings/touchmoveEvent.ts","../src/strings/touchcancelEvent.ts","../src/strings/touchendEvent.ts","../src/strings/unloadEvent.ts","../src/strings/nativeEvents.ts","../src/strings/dragEvent.ts","../src/strings/dragstartEvent.ts","../src/strings/dragenterEvent.ts","../src/strings/dragleaveEvent.ts","../src/strings/dragoverEvent.ts","../src/strings/dragendEvent.ts","../src/strings/loadstartEvent.ts","../src/strings/mouseSwipeEvents.ts","../src/strings/mouseClickEvents.ts","../src/strings/mouseHoverEvents.ts","../src/strings/touchEvents.ts","../src/strings/focusEvents.ts","../src/strings/focusableSelector.ts","../src/strings/keyboardEventKeys.ts","../src/strings/keyAlt.ts","../src/strings/keyArrowDown.ts","../src/strings/keyArrowUp.ts","../src/strings/keyArrowLeft.ts","../src/strings/keyArrowRight.ts","../src/strings/keyBackspace.ts","../src/strings/keyCapsLock.ts","../src/strings/keyControl.ts","../src/strings/keyDelete.ts","../src/strings/keyEnter.ts","../src/strings/keyNumpadEnter.ts","../src/strings/keyEscape.ts","../src/strings/keyInsert.ts","../src/strings/keyMeta.ts","../src/strings/keyPause.ts","../src/strings/keyScrollLock.ts","../src/strings/keyShift.ts","../src/strings/keySpace.ts","../src/strings/keyTab.ts","../src/strings/animationDuration.ts","../src/strings/animationDelay.ts","../src/strings/animationName.ts","../src/strings/animationEndEvent.ts","../src/strings/transitionDuration.ts","../src/strings/transitionDelay.ts","../src/strings/transitionEndEvent.ts","../src/strings/transitionProperty.ts","../src/strings/addEventListener.ts","../src/strings/removeEventListener.ts","../src/strings/bezierEasings.ts","../src/strings/offsetHeight.ts","../src/strings/offsetWidth.ts","../src/strings/scrollHeight.ts","../src/strings/scrollWidth.ts","../src/strings/tabindex.ts","../src/strings/userAgentData.ts","../src/strings/userAgent.ts","../src/boolean/isMobile.ts","../src/boolean/isApple.ts","../src/boolean/isFirefox.ts","../src/boolean/support3DTransform.ts","../src/misc/noop.ts","../src/event/on.ts","../src/event/off.ts","../src/event/one.ts","../src/boolean/supportPassive.ts","../src/boolean/supportTransform.ts","../src/boolean/supportTouch.ts","../src/boolean/supportAnimation.ts","../src/boolean/supportTransition.ts","../src/attr/getAttribute.ts","../src/attr/getAttributeNS.ts","../src/attr/hasAttribute.ts","../src/attr/hasAttributeNS.ts","../src/attr/setAttribute.ts","../src/attr/setAttributeNS.ts","../src/attr/removeAttribute.ts","../src/attr/removeAttributeNS.ts","../src/class/addClass.ts","../src/class/removeClass.ts","../src/class/hasClass.ts","../src/blocks/documentBody.ts","../src/blocks/documentElement.ts","../src/blocks/documentHead.ts","../src/misc/ArrayFrom.ts","../src/is/isObject.ts","../src/is/isNode.ts","../src/is/isHTMLElement.ts","../src/misc/data.ts","../src/misc/getInstance.ts","../src/is/isString.ts","../src/is/isWindow.ts","../src/is/isDocument.ts","../src/get/getDocument.ts","../src/misc/ObjectAssign.ts","../src/misc/createElement.ts","../src/misc/createElementNS.ts","../src/misc/dispatchEvent.ts","../src/misc/distinct.ts","../src/get/getElementStyle.ts","../src/get/getElementAnimationDelay.ts","../src/get/getElementAnimationDuration.ts","../src/misc/emulateAnimationEnd.ts","../src/get/getElementTransitionDelay.ts","../src/get/getElementTransitionDuration.ts","../src/misc/emulateTransitionEnd.ts","../src/misc/Float32ArrayFrom.ts","../src/misc/Float64ArrayFrom.ts","../src/misc/focus.ts","../src/misc/normalizeValue.ts","../src/misc/ObjectEntries.ts","../src/misc/toLowerCase.ts","../src/misc/normalizeOptions.ts","../src/misc/ObjectHasOwn.ts","../src/misc/ObjectKeys.ts","../src/misc/ObjectValues.ts","../src/misc/ObjectFromEntries.ts","../src/misc/createCustomEvent.ts","../src/misc/passiveHandler.ts","../src/misc/reflow.ts","../src/misc/setElementStyle.ts","../src/is/isMap.ts","../src/is/isNumber.ts","../src/misc/timer.ts","../src/misc/toUpperCase.ts","../src/selectors/querySelectorAll.ts","../src/misc/focusTrap.ts","../src/get/getBoundingClientRect.ts","../src/get/getDocumentBody.ts","../src/get/getDocumentElement.ts","../src/get/getDocumentHead.ts","../src/get/getNodeScroll.ts","../src/is/isShadowRoot.ts","../src/get/getParentNode.ts","../src/is/isScaledElement.ts","../src/get/getRectRelativeToOffsetParent.ts","../src/get/getUID.ts","../src/get/getWindow.ts","../src/is/isArray.ts","../src/is/isCanvas.ts","../src/is/isCustomElement.ts","../src/is/isElement.ts","../src/is/isElementInScrollRange.ts","../src/is/isElementInViewport.ts","../src/is/isElementsArray.ts","../src/is/isFunction.ts","../src/is/isHTMLCollection.ts","../src/is/isHTMLImageElement.ts","../src/is/isJSON.ts","../src/is/isWeakMap.ts","../src/is/isMedia.ts","../src/is/isNodeList.ts","../src/is/isRTL.ts","../src/is/isSVGElement.ts","../src/is/isTableElement.ts","../src/selectors/closest.ts","../src/selectors/querySelector.ts","../src/selectors/getElementsByTagName.ts","../src/selectors/getCustomElements.ts","../src/selectors/getElementById.ts","../src/selectors/getElementsByClassName.ts","../src/selectors/matches.ts"],"sourcesContent":["/**\n * A global namespace for aria-checked.\n */\nconst ariaChecked = \"aria-checked\";\nexport default ariaChecked;\n","/**\n * A global namespace for aria-description.\n */\nconst ariaDescription = \"aria-description\";\nexport default ariaDescription;\n","/**\n * A global namespace for aria-describedby.\n */\nconst ariaDescribedBy = \"aria-describedby\";\nexport default ariaDescribedBy;\n","/**\n * A global namespace for aria-expanded.\n */\nconst ariaExpanded = \"aria-expanded\";\nexport default ariaExpanded;\n","/**\n * A global namespace for aria-haspopup.\n */\nconst ariaHasPopup = \"aria-haspopup\";\nexport default ariaHasPopup;\n","/**\n * A global namespace for aria-hidden.\n */\nconst ariaHidden = \"aria-hidden\";\nexport default ariaHidden;\n","/**\n * A global namespace for aria-label.\n */\nconst ariaLabel = \"aria-label\";\nexport default ariaLabel;\n","/**\n * A global namespace for aria-labelledby.\n */\nconst ariaLabelledBy = \"aria-labelledby\";\nexport default ariaLabelledBy;\n","/**\n * A global namespace for aria-modal.\n */\nconst ariaModal = \"aria-modal\";\nexport default ariaModal;\n","/**\n * A global namespace for aria-pressed.\n */\nconst ariaPressed = \"aria-pressed\";\nexport default ariaPressed;\n","/**\n * A global namespace for aria-selected.\n */\nconst ariaSelected = \"aria-selected\";\nexport default ariaSelected;\n","/**\n * A global namespace for aria-valuemin.\n */\nconst ariaValueMin = \"aria-valuemin\";\nexport default ariaValueMin;\n","/**\n * A global namespace for aria-valuemax.\n */\nconst ariaValueMax = \"aria-valuemax\";\nexport default ariaValueMax;\n","/**\n * A global namespace for aria-valuenow.\n */\nconst ariaValueNow = \"aria-valuenow\";\nexport default ariaValueNow;\n","/**\n * A global namespace for aria-valuetext.\n */\nconst ariaValueText = \"aria-valuetext\";\nexport default ariaValueText;\n","/**\n * A global namespace for `abort` event.\n */\nconst abortEvent = \"abort\";\nexport default abortEvent;\n","/**\n * A global namespace for `beforeunload` event.\n */\nconst beforeunloadEvent = \"beforeunload\";\nexport default beforeunloadEvent;\n","/**\n * A global namespace for `blur` event.\n */\nconst blurEvent = \"blur\";\nexport default blurEvent;\n","/**\n * A global namespace for `change` event.\n */\nconst changeEvent = \"change\";\nexport default changeEvent;\n","/**\n * A global namespace for `contextmenu` event.\n */\nconst contextmenuEvent = \"contextmenu\";\nexport default contextmenuEvent;\n","/**\n * A global namespace for `DOMContentLoaded` event.\n */\nconst DOMContentLoadedEvent = \"DOMContentLoaded\";\nexport default DOMContentLoadedEvent;\n","/**\n * A global namespace for `DOMMouseScroll` event.\n */\nconst DOMMouseScrollEvent = \"DOMMouseScroll\";\nexport default DOMMouseScrollEvent;\n","/**\n * A global namespace for `error` event.\n */\nconst errorEvent = \"error\";\nexport default errorEvent;\n","/**\n * A global namespace for `focus` event.\n */\nconst focusEvent = \"focus\";\nexport default focusEvent;\n","/**\n * A global namespace for `focusin` event.\n */\nconst focusinEvent = \"focusin\";\nexport default focusinEvent;\n","/**\n * A global namespace for `focusout` event.\n */\nconst focusoutEvent = \"focusout\";\nexport default focusoutEvent;\n","/**\n * A global namespace for `gesturechange` event.\n */\nconst gesturechangeEvent = \"gesturechange\";\nexport default gesturechangeEvent;\n","/**\n * A global namespace for `gestureend` event.\n */\nconst gestureendEvent = \"gestureend\";\nexport default gestureendEvent;\n","/**\n * A global namespace for `gesturestart` event.\n */\nconst gesturestartEvent = \"gesturestart\";\nexport default gesturestartEvent;\n","/**\n * A global namespace for `keydown` event.\n */\nconst keydownEvent = \"keydown\";\nexport default keydownEvent;\n","/**\n * A global namespace for `keypress` event.\n */\nconst keypressEvent = \"keypress\";\nexport default keypressEvent;\n","/**\n * A global namespace for `keyup` event.\n */\nconst keyupEvent = \"keyup\";\nexport default keyupEvent;\n","/**\n * A global namespace for `load` event.\n */\nconst loadEvent = \"load\";\nexport default loadEvent;\n","/**\n * A global namespace for `click` event.\n */\nconst mouseclickEvent = \"click\";\nexport default mouseclickEvent;\n","/**\n * A global namespace for `dblclick` event.\n */\nconst mousedblclickEvent = \"dblclick\";\nexport default mousedblclickEvent;\n","/**\n * A global namespace for `mousedown` event.\n */\nconst mousedownEvent = \"mousedown\";\nexport default mousedownEvent;\n","/**\n * A global namespace for `mouseup` event.\n */\nconst mouseupEvent = \"mouseup\";\nexport default mouseupEvent;\n","/**\n * A global namespace for `hover` event.\n */\nconst mousehoverEvent = \"hover\";\nexport default mousehoverEvent;\n","/**\n * A global namespace for `mouseenter` event.\n */\nconst mouseenterEvent = \"mouseenter\";\nexport default mouseenterEvent;\n","/**\n * A global namespace for `mouseleave` event.\n */\nconst mouseleaveEvent = \"mouseleave\";\nexport default mouseleaveEvent;\n","/**\n * A global namespace for `mousein` event.\n */\nconst mouseinEvent = \"mousein\";\nexport default mouseinEvent;\n","/**\n * A global namespace for `mouseout` event.\n */\nconst mouseoutEvent = \"mouseout\";\nexport default mouseoutEvent;\n","/**\n * A global namespace for `mouseover` event.\n */\nconst mouseoverEvent = \"mouseover\";\nexport default mouseoverEvent;\n","/**\n * A global namespace for `mousemove` event.\n */\nconst mousemoveEvent = \"mousemove\";\nexport default mousemoveEvent;\n","/**\n * A global namespace for `mousewheel` event.\n */\nconst mousewheelEvent = \"mousewheel\";\nexport default mousewheelEvent;\n","/**\n * A global namespace for `move` event.\n */\nconst moveEvent = \"move\";\nexport default moveEvent;\n","/**\n * A global namespace for `orientationchange` event.\n */\nconst orientationchangeEvent = \"orientationchange\";\nexport default orientationchangeEvent;\n","/**\n * A global namespace for `pointercancel` event.\n */\nconst pointercancelEvent = \"pointercancel\";\nexport default pointercancelEvent;\n","/**\n * A global namespace for `pointerdown` event.\n */\nconst pointerdownEvent = \"pointerdown\";\nexport default pointerdownEvent;\n","/**\n * A global namespace for `pointerleave` event.\n */\nconst pointerleaveEvent = \"pointerleave\";\nexport default pointerleaveEvent;\n","/**\n * A global namespace for `pointermove` event.\n */\nconst pointermoveEvent = \"pointermove\";\nexport default pointermoveEvent;\n","/**\n * A global namespace for `pointerup` event.\n */\nconst pointerupEvent = \"pointerup\";\nexport default pointerupEvent;\n","/**\n * A global namespace for `readystatechange` event.\n */\nconst readystatechangeEvent = \"readystatechange\";\nexport default readystatechangeEvent;\n","/**\n * A global namespace for `reset` event.\n */\nconst resetEvent = \"reset\";\nexport default resetEvent;\n","/**\n * A global namespace for `resize` event.\n */\nconst resizeEvent = \"resize\";\nexport default resizeEvent;\n","/**\n * A global namespace for `select` event.\n */\nconst selectEvent = \"select\";\nexport default selectEvent;\n","/**\n * A global namespace for the `selectend` event.\n */\nconst selectendEvent = \"selectend\";\nexport default selectendEvent;\n","/**\n * A global namespace for the `selectstart` event.\n */\nconst selectstartEvent = \"selectstart\";\nexport default selectstartEvent;\n","/**\n * A global namespace for `scroll` event.\n */\nconst scrollEvent = \"scroll\";\nexport default scrollEvent;\n","/**\n * A global namespace for `submit` event.\n */\nconst submitEvent = \"submit\";\nexport default submitEvent;\n","/**\n * A global namespace for `touchstart` event.\n */\nconst touchstartEvent = \"touchstart\";\nexport default touchstartEvent;\n","/**\n * A global namespace for `touchmove` event.\n */\nconst touchmoveEvent = \"touchmove\";\nexport default touchmoveEvent;\n","/**\n * A global namespace for `touchcancel` event.\n */\nconst touchcancelEvent = \"touchcancel\";\nexport default touchcancelEvent;\n","/**\n * A global namespace for `touchend` event.\n */\nconst touchendEvent = \"touchend\";\nexport default touchendEvent;\n","/**\n * A global namespace for `unload` event.\n */\nconst unloadEvent = \"unload\";\nexport default unloadEvent;\n","import abort from \"./abortEvent\";\nimport beforeunload from \"./beforeunloadEvent\";\nimport blur from \"./blurEvent\";\nimport change from \"./changeEvent\";\nimport contextmenu from \"./contextmenuEvent\";\nimport DOMContentLoaded from \"./DOMContentLoadedEvent\";\nimport DOMMouseScroll from \"./DOMMouseScrollEvent\";\nimport error from \"./errorEvent\";\nimport focus from \"./focusEvent\";\nimport focusin from \"./focusinEvent\";\nimport focusout from \"./focusoutEvent\";\nimport gesturechange from \"./gesturechangeEvent\";\nimport gestureend from \"./gestureendEvent\";\nimport gesturestart from \"./gesturestartEvent\";\nimport keydown from \"./keydownEvent\";\nimport keypress from \"./keypressEvent\";\nimport keyup from \"./keyupEvent\";\nimport load from \"./loadEvent\";\nimport click from \"./mouseclickEvent\";\nimport dblclick from \"./mousedblclickEvent\";\nimport mousedown from \"./mousedownEvent\";\nimport mouseup from \"./mouseupEvent\";\nimport hover from \"./mousehoverEvent\";\nimport mouseenter from \"./mouseenterEvent\";\nimport mouseleave from \"./mouseleaveEvent\";\nimport mousein from \"./mouseinEvent\";\nimport mouseout from \"./mouseoutEvent\";\nimport mouseover from \"./mouseoverEvent\";\nimport mousemove from \"./mousemoveEvent\";\nimport mousewheel from \"./mousewheelEvent\";\nimport move from \"./moveEvent\";\nimport orientationchange from \"./orientationchangeEvent\";\nimport pointercancel from \"./pointercancelEvent\";\nimport pointerdown from \"./pointerdownEvent\";\nimport pointerleave from \"./pointerleaveEvent\";\nimport pointermove from \"./pointermoveEvent\";\nimport pointerup from \"./pointerupEvent\";\nimport readystatechange from \"./readystatechangeEvent\";\nimport reset from \"./resetEvent\";\nimport resize from \"./resizeEvent\";\nimport select from \"./selectEvent\";\nimport selectend from \"./selectendEvent\";\nimport selectstart from \"./selectstartEvent\";\nimport scroll from \"./scrollEvent\";\nimport submit from \"./submitEvent\";\nimport touchstart from \"./touchstartEvent\";\nimport touchmove from \"./touchmoveEvent\";\nimport touchcancel from \"./touchcancelEvent\";\nimport touchend from \"./touchendEvent\";\nimport unload from \"./unloadEvent\";\n\n/**\n * A global namespace for all browser native events.\n */\nconst nativeEvents = {\n DOMContentLoaded,\n DOMMouseScroll,\n abort,\n beforeunload,\n blur,\n change,\n click,\n contextmenu,\n dblclick,\n error,\n focus,\n focusin,\n focusout,\n gesturechange,\n gestureend,\n gesturestart,\n hover,\n keydown,\n keypress,\n keyup,\n load,\n mousedown,\n mousemove,\n mousein,\n mouseout,\n mouseenter,\n mouseleave,\n mouseover,\n mouseup,\n mousewheel,\n move,\n orientationchange,\n pointercancel,\n pointerdown,\n pointerleave,\n pointermove,\n pointerup,\n readystatechange,\n reset,\n resize,\n scroll,\n select,\n selectend,\n selectstart,\n submit,\n touchcancel,\n touchend,\n touchmove,\n touchstart,\n unload,\n};\n\nexport default nativeEvents;\n","/**\n * A global namespace for `drag` event.\n */\nconst dragEvent = \"drag\";\nexport default dragEvent;\n","/**\n * A global namespace for `dragstart` event.\n */\nconst dragstartEvent = \"dragstart\";\nexport default dragstartEvent;\n","/**\n * A global namespace for `dragenter` event.\n */\nconst dragenterEvent = \"dragenter\";\nexport default dragenterEvent;\n","/**\n * A global namespace for `dragleave` event.\n */\nconst dragleaveEvent = \"dragleave\";\nexport default dragleaveEvent;\n","/**\n * A global namespace for `dragover` event.\n */\nconst dragoverEvent = \"dragover\";\nexport default dragoverEvent;\n","/**\n * A global namespace for `dragend` event.\n */\nconst dragendEvent = \"dragend\";\nexport default dragendEvent;\n","/**\n * A global namespace for `loadstart` event.\n */\nconst loadstartEvent = \"loadstart\";\nexport default loadstartEvent;\n","/**\n * A global namespace for mouse events equivalent to touch events.\n */\nconst mouseSwipeEvents = {\n start: \"mousedown\",\n end: \"mouseup\",\n move: \"mousemove\",\n cancel: \"mouseleave\",\n};\nexport default mouseSwipeEvents;\n","/**\n * A global namespace for mouse click events.\n */\nconst mouseClickEvents = { down: \"mousedown\", up: \"mouseup\" };\nexport default mouseClickEvents;\n","/**\n * A global namespace for mouse hover events.\n */\nconst mouseHoverEvents = \"onmouseleave\" in document\n ? [\"mouseenter\", \"mouseleave\"]\n : /* istanbul ignore next @preserve */ [\"mouseover\", \"mouseout\"];\nexport default mouseHoverEvents;\n","/**\n * A global namespace for touch events.\n */\nconst touchEvents = {\n start: \"touchstart\",\n end: \"touchend\",\n move: \"touchmove\",\n cancel: \"touchcancel\",\n};\nexport default touchEvents;\n","/**\n * A global namespace for focus event names.\n */\nconst focusEvents = { in: \"focusin\", out: \"focusout\" };\nexport default focusEvents;\n","const focusableSelector =\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]';\n\nexport default focusableSelector;\n","/**\n * A global namespace for keyboard event keys.\n */\nconst keyboardEventKeys = {\n Backspace: \"Backspace\", // 8\n Tab: \"Tab\", // 9\n Enter: \"Enter\", // 13\n Shift: \"Shift\", // 16\n Control: \"Control\", // 17\n Alt: \"Alt\", // 18\n Pause: \"Pause\", // 19\n CapsLock: \"CapsLock\", // 20\n Escape: \"Escape\", // 27\n Scape: \"Space\", // 32\n ArrowLeft: \"ArrowLeft\", // 37\n ArrowUp: \"ArrowUp\", // 38\n ArrowRight: \"ArrowRight\", // 39\n ArrowDown: \"ArrowDown\", // 40\n Insert: \"Insert\", // 45\n Delete: \"Delete\", // 46\n Meta: \"Meta\", // 91 windows key\n ContextMenu: \"ContextMenu\", // 93\n ScrollLock: \"ScrollLock\", // 145\n};\n\nexport default keyboardEventKeys;\n","/**\n * A global namespace for `Alt` key.\n * e.which = 18\n */\nconst keyAlt = \"Alt\";\n\nexport default keyAlt;\n","/**\n * A global namespace for `ArrowDown` key.\n * e.which = 40 equivalent\n */\nconst keyArrowDown = \"ArrowDown\";\n\nexport default keyArrowDown;\n","/**\n * A global namespace for `ArrowUp` key.\n * e.which = 38 equivalent\n */\nconst keyArrowUp = \"ArrowUp\";\n\nexport default keyArrowUp;\n","/**\n * A global namespace for `ArrowLeft` key.\n * e.which = 37 equivalent\n */\nconst keyArrowLeft = \"ArrowLeft\";\n\nexport default keyArrowLeft;\n","/**\n * A global namespace for `ArrowRight` key.\n * e.which = 39 equivalent\n */\nconst keyArrowRight = \"ArrowRight\";\n\nexport default keyArrowRight;\n","/**\n * A global namespace for `Backspace` key.\n * e.which === 8 equivalent\n */\nconst keyBackspace = \"Backspace\";\n\nexport default keyBackspace;\n","/**\n * A global namespace for `CapsLock` key.\n * e.which = 20 equivalent\n */\nconst keyCapsLock = \"CapsLock\";\n\nexport default keyCapsLock;\n","/**\n * A global namespace for `Control` key.\n * e.which = 17\n */\nconst keyControl = \"Control\";\n\nexport default keyControl;\n","/**\n * A global namespace for `Delete` key.\n * e.which = 46 equivalent\n */\nconst keyDelete = \"Delete\";\n\nexport default keyDelete;\n","/**\n * A global namespace for `Enter` key.\n * e.which = 13 equivalent\n */\nconst keyEnter = \"Enter\";\n\nexport default keyEnter;\n","/**\n * A global namespace for `Enter` key.\n * e.which = 13 equivalent\n */\nconst keyNumpadEnter = \"NumpadEnter\";\n\nexport default keyNumpadEnter;\n","/**\n * A global namespace for `Escape` key.\n * e.which = 27 equivalent\n */\nconst keyEscape = \"Escape\";\n\nexport default keyEscape;\n","/**\n * A global namespace for `Insert` key.\n * e.which = 45 equivalent\n */\nconst keyInsert = \"Insert\";\n\nexport default keyInsert;\n","/**\n * A global namespace for `Meta` key.\n * e.which = 93 equivalent\n */\nconst keyMeta = \"Meta\";\n\nexport default keyMeta;\n","/**\n * A global namespace for `Pause` key.\n * e.which = 19\n */\nconst keyPause = \"Pause\";\n\nexport default keyPause;\n","/**\n * A global namespace for `ScrollLock` key.\n * e.which = 145 equivalent\n */\nconst keyScrollLock = \"ScrollLock\";\n\nexport default keyScrollLock;\n","/**\n * A global namespace for `Shift` key.\n * e.which = 16\n */\nconst keyShift = \"Shift\";\n\nexport default keyShift;\n","/**\n * A global namespace for `Space` key.\n * e.which = 32 equivalent\n */\nconst keySpace = \"Space\";\n\nexport default keySpace;\n","/**\n * A global namespace for `Tab` key.\n * e.which = 9 equivalent\n */\nconst keyTab = \"Tab\";\n\nexport default keyTab;\n","/**\n * A global namespace for 'animationDuration' string.\n */\nconst animationDuration = \"animationDuration\";\nexport default animationDuration;\n","/**\n * A global namespace for 'animationDelay' string.\n */\nconst animationDelay = \"animationDelay\";\nexport default animationDelay;\n","/**\n * A global namespace for 'animationName' string.\n */\nconst animationName = \"animationName\";\nexport default animationName;\n","/**\n * A global namespace for 'animationend' string.\n */\nconst animationEndEvent = \"animationend\";\nexport default animationEndEvent;\n","/**\n * A global namespace for 'transitionDuration' string.\n */\nconst transitionDuration = \"transitionDuration\";\nexport default transitionDuration;\n","/**\n * A global namespace for 'transitionDelay' string.\n */\nconst transitionDelay = \"transitionDelay\";\nexport default transitionDelay;\n","/**\n * A global namespace for 'transitionend' string.\n */\nconst transitionEndEvent = \"transitionend\";\nexport default transitionEndEvent;\n","/**\n * A global namespace for `transitionProperty` string for modern browsers.\n */\nconst transitionProperty = \"transitionProperty\";\nexport default transitionProperty;\n","/**\n * A global namespace for 'addEventListener' string.\n */\nconst addEventListener = \"addEventListener\";\nexport default addEventListener;\n","/**\n * A global namespace for 'removeEventListener' string.\n */\nconst removeEventListener = \"removeEventListener\";\nexport default removeEventListener;\n","/**\n * A global namespace for predefined\n * CSS3 'cubic-bezier()' easing functions.\n */\nconst bezierEasings = {\n linear: \"linear\",\n easingSinusoidalIn: \"cubic-bezier(0.47,0,0.745,0.715)\",\n easingSinusoidalOut: \"cubic-bezier(0.39,0.575,0.565,1)\",\n easingSinusoidalInOut: \"cubic-bezier(0.445,0.05,0.55,0.95)\",\n easingQuadraticIn: \"cubic-bezier(0.550,0.085,0.680,0.530)\",\n easingQuadraticOut: \"cubic-bezier(0.250,0.460,0.450,0.940)\",\n easingQuadraticInOut: \"cubic-bezier(0.455,0.030,0.515,0.955)\",\n easingCubicIn: \"cubic-bezier(0.55,0.055,0.675,0.19)\",\n easingCubicOut: \"cubic-bezier(0.215,0.61,0.355,1)\",\n easingCubicInOut: \"cubic-bezier(0.645,0.045,0.355,1)\",\n easingQuarticIn: \"cubic-bezier(0.895,0.03,0.685,0.22)\",\n easingQuarticOut: \"cubic-bezier(0.165,0.84,0.44,1)\",\n easingQuarticInOut: \"cubic-bezier(0.77,0,0.175,1)\",\n easingQuinticIn: \"cubic-bezier(0.755,0.05,0.855,0.06)\",\n easingQuinticOut: \"cubic-bezier(0.23,1,0.32,1)\",\n easingQuinticInOut: \"cubic-bezier(0.86,0,0.07,1)\",\n easingExponentialIn: \"cubic-bezier(0.95,0.05,0.795,0.035)\",\n easingExponentialOut: \"cubic-bezier(0.19,1,0.22,1)\",\n easingExponentialInOut: \"cubic-bezier(1,0,0,1)\",\n easingCircularIn: \"cubic-bezier(0.6,0.04,0.98,0.335)\",\n easingCircularOut: \"cubic-bezier(0.075,0.82,0.165,1)\",\n easingCircularInOut: \"cubic-bezier(0.785,0.135,0.15,0.86)\",\n easingBackIn: \"cubic-bezier(0.6,-0.28,0.735,0.045)\",\n easingBackOut: \"cubic-bezier(0.175,0.885,0.32,1.275)\",\n easingBackInOut: \"cubic-bezier(0.68,-0.55,0.265,1.55)\",\n};\nexport default bezierEasings;\n","/**\n * A global namespace for `offsetHeight` property.\n */\nconst offsetHeight = \"offsetHeight\";\nexport default offsetHeight;\n","/**\n * A global namespace for `offsetWidth` property.\n */\nconst offsetWidth = \"offsetWidth\";\nexport default offsetWidth;\n","/**\n * A global namespace for `scrollHeight` property.\n */\nconst scrollHeight = \"scrollHeight\";\nexport default scrollHeight;\n","/**\n * A global namespace for `scrollWidth` property.\n */\nconst scrollWidth = \"scrollWidth\";\nexport default scrollWidth;\n","/**\n * A global namespace for `touchcancel` event.\n */\nconst tabindex = \"tabindex\";\nexport default tabindex;\n","import type { NavigatorUA } from \"../interface/navigatorUA\";\n\n/**\n * A global namespace for `userAgentData` object.\n */\nconst userAgentData: NavigatorUA[\"userAgentData\"] =\n (navigator as NavigatorUA).userAgentData;\nexport default userAgentData;\n","const { userAgent: userAgentString } = navigator;\n\n/**\n * A global namespace for `navigator.userAgent` string.\n */\nconst userAgent = userAgentString;\nexport default userAgent;\n","import type { NavigatorUA } from \"../interface/navigatorUA\";\n\n/**\n * A global `boolean` for mobile detection.\n */\nconst isMobile = () => {\n const mobileBrands = /iPhone|iPad|iPod|Android/i;\n\n return (navigator as NavigatorUA)?.userAgentData?.brands.some((x) =>\n mobileBrands.test(x.brand)\n ) ||\n mobileBrands.test(navigator?.userAgent) || false;\n};\nexport default isMobile;\n","import type { NavigatorUA } from \"../interface/navigatorUA\";\n\n/**\n * A global `boolean` getter for Apple browsers.\n */\nconst isApple = () => {\n const appleBrands = /(iPhone|iPod|iPad)/;\n return (navigator as NavigatorUA)?.userAgentData?.brands.some((x) =>\n appleBrands.test(x.brand)\n ) || /* istanbul ignore next @preserve */\n appleBrands.test(\n navigator?.userAgent,\n ) || false;\n};\nexport default isApple;\n","/**\n * A global boolean for Gecko browsers. When writing this file,\n * Gecko was not supporting `userAgentData`.\n */\nconst isFirefox = () =>\n navigator?.userAgent?.includes(\"Firefox\") ||\n /* istanbul ignore next @preserve */ false;\n\nexport default isFirefox;\n","/**\n * A global `boolean` for CSS3 3D transform support.\n */\nconst support3DTransform = () =>\n [\"webkitPerspective\", \"perspective\"].some((p) => p in document.head.style);\n\nexport default support3DTransform;\n","/** A generic function with empty body. */\nconst noop = () => {\n // this is a noop\n};\n\nexport default noop;\n","/**\n * Add eventListener to an `EventTarget` object.\n */\nconst on = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n const ops = options || false;\n element.addEventListener(\n eventName,\n listener as EventListenerOrEventListenerObject,\n ops,\n );\n};\n\nexport default on;\n","/**\n * Remove eventListener from an `EventTarget` object.\n */\nconst off = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n const ops = options || false;\n element.removeEventListener(\n eventName,\n listener as EventListenerOrEventListenerObject,\n ops,\n );\n};\n\nexport default off;\n","import on from \"./on\";\nimport off from \"./off\";\nimport { NativeEventHandler } from \"../interface/event\";\n\n/**\n * Add an `eventListener` to an `EventTarget`\n * element and remove it once callback is called.\n */\nconst one = <T extends EventTarget, L = EventListener>(\n element: T,\n eventName: string,\n listener: L,\n options?: AddEventListenerOptions,\n) => {\n /** Wrap the listener for easy on -> off */\n const handlerWrapper: NativeEventHandler<T> = (e) => {\n // istanbul ignore else @preserve\n if (e.target === element || e.currentTarget === element) {\n (listener as NativeEventHandler<T>).apply(element, [e]);\n off(element, eventName, handlerWrapper, options);\n }\n };\n on(element, eventName, handlerWrapper, options);\n};\n\nexport default one;\n","import noop from \"../misc/noop\";\nimport one from \"../event/one\";\nimport DOMContentLoadedEvent from \"../strings/DOMContentLoadedEvent\";\n\n/**\n * A global `boolean` for passive events support,\n * in general event options are not suited for scroll prevention.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\nconst supportPassive = () => {\n let result = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n get: () => {\n result = true;\n return result;\n },\n });\n // istanbul ignore next @preserve\n one(document, DOMContentLoadedEvent, noop, opts);\n } catch (_e) {\n // throw Error('Passive events are not supported');\n }\n\n return result;\n};\n\nexport default supportPassive;\n","/**\n * A global `boolean` for CSS3 transform support.\n */\nconst supportTransform = () =>\n [\"webkitTransform\", \"transform\"].some((p) => p in document.head.style);\n\nexport default supportTransform;\n","/**\n * A global `boolean` for touch events support.\n */\nconst supportTouch = () =>\n \"ontouchstart\" in window ||\n /* istanbul ignore next @preserve */\n \"msMaxTouchPoints\" in navigator;\n\nexport default supportTouch;\n","/**\n * A global `boolean` for CSS3 animation support.\n */\nconst supportAnimation = () =>\n [\"webkitAnimation\", \"animation\"].some((p) => p in document.head.style);\n\nexport default supportAnimation;\n","/**\n * A global `boolean` for CSS3 transition support.\n */\nconst supportTransition = () =>\n [\"webkitTransition\", \"transition\"].some((p) => p in document.head.style);\n\nexport default supportTransition;\n","/**\n * Shortcut for `HTMLElement.getAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @returns attribute value\n */\nconst getAttribute = (element: HTMLElement, att: string): string | null =>\n element.getAttribute(att);\n\nexport default getAttribute;\n","/**\n * Shortcut for `HTMLElement.getAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @returns attribute value\n */\nconst getAttributeNS = (ns: string, element: HTMLElement, att: string) =>\n element.getAttributeNS(ns, att);\n\nexport default getAttributeNS;\n","/**\n * Shortcut for `HTMLElement.hasAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @returns the query result\n */\nconst hasAttribute = (element: HTMLElement, att: string): boolean =>\n element.hasAttribute(att);\n\nexport default hasAttribute;\n","/**\n * Shortcut for `HTMLElement.hasAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @returns the query result\n */\nconst hasAttributeNS = (\n ns: string,\n element: HTMLElement,\n att: string,\n): boolean => element.hasAttributeNS(ns, att);\n\nexport default hasAttributeNS;\n","/**\n * Shortcut for `HTMLElement.setAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n * @param value attribute value\n */\nconst setAttribute = (element: HTMLElement, att: string, value: string) =>\n element.setAttribute(att, value);\n\nexport default setAttribute;\n","/**\n * Shortcut for `SVGElement.setAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n * @param value attribute value\n */\nconst setAttributeNS = (\n ns: string,\n element: HTMLElement,\n att: string,\n value: string,\n): void => element.setAttributeNS(ns, att, value);\n\nexport default setAttributeNS;\n","/**\n * Shortcut for `HTMLElement.removeAttribute()` method.\n *\n * @param element target element\n * @param att attribute name\n */\nconst removeAttribute = (element: HTMLElement, att: string): void =>\n element.removeAttribute(att);\n\nexport default removeAttribute;\n","/**\n * Shortcut for `HTMLElement.removeAttributeNS()` method.\n *\n * @param ns attribute namespace\n * @param element target element\n * @param att attribute name\n */\nconst removeAttributeNS = (\n ns: string,\n element: HTMLElement,\n att: string,\n): void => element.removeAttributeNS(ns, att);\n\nexport default removeAttributeNS;\n","/**\n * Add one or more CSS classes to `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to add\n */\nconst addClass = (element: HTMLElement, ...classNAME: string[]): void => {\n element.classList.add(...classNAME);\n};\n\nexport default addClass;\n","/**\n * Remove one or more classes from `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to remove\n */\nconst removeClass = (element: HTMLElement, ...classNAME: string[]): void => {\n element.classList.remove(...classNAME);\n};\n\nexport default removeClass;\n","/**\n * Check class in `HTMLElement.classList`.\n *\n * @param element target\n * @param classNAME to check\n */\nconst hasClass = (element: HTMLElement, classNAME: string): boolean => {\n return element.classList.contains(classNAME);\n};\n\nexport default hasClass;\n","/**\n * A global namespace for `document.body`.\n */\nconst { body: documentBody } = document;\nexport default documentBody;\n","/**\n * A global namespace for `document.documentElement` or the `<HTML>`.\n */\nconst { documentElement } = document;\nexport default documentElement;\n","/**\n * A global namespace for `document.head`.\n */\nconst { head: documentHead } = document;\nexport default documentHead;\n","/**\n * Shortie for `Array.from()` static method.\n * The utility should also work with any typed arrays\n * like Float64Array or Int32Array.\n *\n * @param arr array-like iterable object\n * @returns a new array from iterable object\n */\nconst ArrayFrom = <T>(arr: ArrayLike<T> | Iterable<T>): T[] => Array.from(arr);\n\nexport default ArrayFrom;\n","/**\n * Checks if a value is an `Object`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isObject = (obj?: unknown): obj is object =>\n (obj !== null && obj !== undefined && typeof obj === \"object\") || false;\n\nexport default isObject;\n","import isObject from \"./isObject\";\n\ntype NodeObject = object & { nodeType: number };\n\n/**\n * Checks if an object is a `Node`.\n *\n * @param node the target object\n * @returns the query result\n */\nconst isNode = (node?: unknown): node is Node =>\n (isObject(node) &&\n typeof (node as NodeObject).nodeType === \"number\" &&\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some((x) =>\n (node as NodeObject).nodeType === x\n )) ||\n false;\n\nexport default isNode;\n","import isNode from \"./isNode\";\n\n/**\n * Checks if an element is an `HTMLElement`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * @param element the target object\n * @returns the query result\n */\nconst isHTMLElement = (element?: unknown): element is HTMLElement =>\n (isNode(element) && element.nodeType === 1) || false;\nexport default isHTMLElement;\n","import isHTMLElement from \"../is/isHTMLElement\";\n\nconst componentData = new Map<string, Map<HTMLElement, unknown>>();\n\n/**\n * An interface for web components background data.\n *\n * @see https://github.com/thednp/bootstrap.native/blob/master/src/components/base-component.js\n */\nconst Data = {\n data: componentData,\n /**\n * Sets web components data.\n *\n * @param element target element\n * @param component the component's name or a unique key\n * @param instance the component instance\n */\n set: <T>(element: HTMLElement, component: string, instance: T): void => {\n if (!isHTMLElement(element)) return;\n\n // istanbul ignore else @preserve\n if (!componentData.has(component)) {\n componentData.set(component, new Map<HTMLElement, T>());\n }\n\n const instanceMap = componentData.get(component) as Map<HTMLElement, T>;\n // not undefined, but defined right above\n instanceMap.set(element, instance);\n },\n\n /**\n * Returns all instances for specified component.\n *\n * @param component the component's name or a unique key\n * @returns all the component instances\n */\n getAllFor: <T>(component: string): Map<HTMLElement, T> | null => {\n const instanceMap = componentData.get(component) as Map<HTMLElement, T>;\n\n return instanceMap || null;\n },\n\n /**\n * Returns the instance associated with the target.\n *\n * @param element target element\n * @param component the component's name or a unique key\n * @returns the instance\n */\n get: <T>(element: HTMLElement, component: string): T | null => {\n if (!isHTMLElement(element) || !component) return null;\n const instanceMap = Data.getAllFor<T>(component);\n\n const instance = element && instanceMap && instanceMap.get(element);\n\n return instance || null;\n },\n\n /**\n * Removes web components data.\n *\n * @param element target element\n * @param component the component's name or a unique key\n */\n remove: <T>(element: HTMLElement, component: string): void => {\n const instanceMap = Data.getAllFor<T>(component);\n\n if (!instanceMap || !isHTMLElement(element)) return;\n\n instanceMap.delete(element);\n\n // istanbul ignore else @preserve\n if (instanceMap.size === 0) {\n componentData.delete(component);\n }\n },\n};\n\nexport default Data;\n","import Data from \"./data\";\n\n/**\n * An alias for `Data.get()`.\n */\nconst getInstance = <T>(target: HTMLElement, component: string): T | null =>\n Data.get(target, component);\n\nexport default getInstance;\n","/**\n * Shortie for `typeof SOMETHING === \"string\"`.\n *\n * @param str input value\n * @returns the query result\n */\nconst isString = (str?: unknown): str is string =>\n typeof str === \"string\" || false;\n\nexport default isString;\n","import isObject from \"./isObject\";\n\n/**\n * Check if a target object is `Window`.\n * => equivalent to `object instanceof Window`\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isWindow = (obj?: unknown): obj is Window =>\n (isObject(obj) && obj.constructor.name === \"Window\") || false;\n\nexport default isWindow;\n","import isNode from \"./isNode\";\n\n/**\n * Checks if an object is a `Document`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isDocument = (obj?: unknown): obj is Document =>\n (isNode(obj) && obj.nodeType === 9) || false;\n\nexport default isDocument;\n","import isNode from \"../is/isNode\";\nimport isWindow from \"../is/isWindow\";\nimport isDocument from \"../is/isDocument\";\n\n/**\n * Returns the `document` or the `#document` element.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param node the reference node\n * @returns the parent document of the given node\n */\nconst getDocument = (node?: Node | Document | Window): Document => {\n // node instanceof Window\n if (isWindow(node)) return node.document;\n // node instanceof Document\n if (isDocument(node)) return node;\n // node instanceof Node\n if (isNode(node)) return node.ownerDocument as Document;\n // node is undefined | NULL\n return globalThis.document;\n};\n\nexport default getDocument;\n","/**\n * Overloads for Object.assign.\n *\n * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/object-assign/index.d.ts\n */\ndeclare function ObjectAssignTyped<T, U>(target: T, source: U): T & U;\ndeclare function ObjectAssignTyped<T, U, V>(\n target: T,\n source1: U,\n source2: V,\n): T & U & V;\ndeclare function ObjectAssignTyped<T, U, V, W>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n): T & U & V & W;\ndeclare function ObjectAssignTyped<T, U, V, W, Q>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n source4: Q,\n): T & U & V & W & Q;\ndeclare function ObjectAssignTyped<T, U, V, W, Q, R>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n source4: Q,\n source5: R,\n): T & U & V & W & Q & R;\ndeclare function ObjectAssignTyped(\n target: unknown,\n ...sources: unknown[]\n): unknown;\n\n/**\n * Shortcut for `Object.assign()` static method.\n *\n * @param obj a target object\n * @param source source object(s)\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectAssign: typeof ObjectAssignTyped = <\n A extends Record<string, unknown>,\n B,\n>(\n obj: A,\n ...source: B[]\n): B extends Record<string, unknown>[] ? unknown : A & B =>\n Object.assign(obj, ...source);\n\nexport default ObjectAssign;\n","import isString from \"../is/isString\";\nimport getDocument from \"../get/getDocument\";\nimport ObjectAssign from \"./ObjectAssign\";\n\n/**\n * Shortie for `document.createElement` method\n * which allows you to create a new `HTMLElement` for a given `tagName`\n * or based on an object with specific non-readonly attributes with string values:\n * `id`, `className`, `textContent`, `style`, etc.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement\n *\n * @param param `tagName` or object\n * @return a new `HTMLElement`\n */\nconst createElement = <T extends HTMLElement>(\n param?: string | Partial<T>,\n): T | undefined => {\n if (!param) return undefined;\n\n if (isString(param)) {\n return getDocument().createElement(param) as T;\n }\n\n const { tagName } = param;\n const newElement = createElement(tagName as string);\n\n if (!newElement) return undefined;\n\n const attr = { ...(param as Record<string, unknown>) };\n delete attr.tagName;\n\n return ObjectAssign(newElement, attr) as unknown as T;\n};\n\nexport default createElement;\n","import getDocument from \"../get/getDocument\";\nimport ObjectAssign from \"./ObjectAssign\";\nimport isString from \"../is/isString\";\n\n/**\n * Shortie for `document.createElementNS` method\n * which allows you to create a new `HTMLElement` for a given `tagName`\n * or based on an object with specific non-readonly attributes with string values:\n * `id`, `className`, `textContent`, `style`, etc.\n * Note: some elements resulted from this function call may not be compatible with\n * some attributes.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS\n *\n * @param ns `namespaceURI` to associate with the new `HTMLElement`\n * @param param `tagName` or object\n * @return a new `HTMLElement`\n */\nconst createElementNS = <T extends Element = HTMLElement>(\n ns: string,\n param?: string | Partial<T>,\n): T | undefined => {\n if (!ns || !param) return undefined;\n\n if (isString(param)) {\n return getDocument().createElementNS(ns, param) as T;\n }\n\n const { tagName } = param;\n const newElement = createElementNS(ns, tagName);\n\n if (!newElement) return undefined;\n\n const attr = { ...(param as Record<string, unknown>) };\n delete attr.tagName;\n\n return ObjectAssign(newElement, attr) as unknown as T;\n};\n\nexport default createElementNS;\n","/**\n * Shortcut for the `Element.dispatchEvent(Event)` method.\n *\n * @param element is the target\n * @param event is the `Event` object\n */\nconst dispatchEvent = (element: EventTarget, event: Event): boolean =>\n element.dispatchEvent(event);\n\nexport default dispatchEvent;\n","/**\n * JavaScript `Array` distinct.\n *\n * @see https://codeburst.io/javascript-array-distinct-5edc93501dc4\n *\n * @example\n * ```\n * [0,1,1,2].filter(distinct)\n * // => [0,1,2]\n * ```\n * @param value array item value\n * @param index array item index\n * @param arr a clone of the target array\n * @returns the query result\n */\nconst distinct = <T>(value: T, index: number, arr: T[]): boolean =>\n arr.indexOf(value) === index;\n\nexport default distinct;\n","// import CSS4Declaration from \"../interface/css4Declaration\";\n\n/**\n * Shortcut for `window.getComputedStyle(element).propertyName`\n * static method.\n *\n * * If `element` parameter is not an `HTMLElement`, `getComputedStyle`\n * throws a `ReferenceError`.\n *\n * @param element target\n * @param property the css property\n * @return the css property value\n */\nconst getElementStyle = (element: HTMLElement, property: string): string => {\n const computedStyle = getComputedStyle(element);\n const prop = property\n .replace(\"webkit\", \"Webkit\")\n .replace(/([A-Z])/g, \"-$1\")\n .toLowerCase();\n\n // modern browsers only\n return computedStyle.getPropertyValue(prop);\n};\n\nexport default getElementStyle;\n","import animationDelay from \"../strings/animationDelay\";\nimport animationName from \"../strings/animationName\";\nimport getElementStyle from \"./getElementStyle\";\n\n/**\n * Utility to get the computed `animationDelay`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `animationDelay` value in miliseconds\n */\nconst getElementAnimationDelay = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, animationName);\n const durationValue = getElementStyle(element, animationDelay);\n const durationScale = durationValue.includes(\"ms\")\n ? /* istanbul ignore next */ 1\n : 1000;\n const duration = propertyValue && propertyValue !== \"none\"\n ? parseFloat(durationValue) * durationScale\n : 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementAnimationDelay;\n","import animationDuration from \"../strings/animationDuration\";\nimport animationName from \"../strings/animationName\";\nimport getElementStyle from \"./getElementStyle\";\n\n/**\n * Utility to get the computed `animationDuration`\n * from `HTMLElement` in miliseconds.\n *\n * @param element target\n * @return the `animationDuration` value in miliseconds\n */\nconst getElementAnimationDuration = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, animationName);\n const durationValue = getElementStyle(element, animationDuration);\n const durationScale = durationValue.includes(\"ms\")\n ? /* istanbul ignore next */ 1\n : 1000;\n const duration = propertyValue && propertyValue !== \"none\"\n ? parseFloat(durationValue) * durationScale\n : 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementAnimationDuration;\n","import animationEndEvent from \"../strings/animationEndEvent\";\nimport getElementAnimationDelay from \"../get/getElementAnimationDelay\";\nimport getElementAnimationDuration from \"../get/getElementAnimationDuration\";\nimport dispatchEvent from \"./dispatchEvent\";\n\n/**\n * Utility to make sure callbacks are consistently\n * called when animation ends.\n *\n * @param element target\n * @param handler `animationend` callback\n */\nconst emulateAnimationEnd = (\n element: HTMLElement,\n handler: EventListener,\n): void => {\n let called = 0;\n const endEvent = new Event(animationEndEvent);\n const duration = getElementAnimationDuration(element);\n const delay = getElementAnimationDelay(element);\n\n if (duration) {\n // Wrap the handler in on -> off callback\n const animationEndWrapper = (e: Event): void => {\n // istanbul ignore else @preserve\n if (e.target === element) {\n handler.apply(element, [e]);\n element.removeEventListener(animationEndEvent, animationEndWrapper);\n called = 1;\n }\n };\n element.addEventListener(animationEndEvent, animationEndWrapper);\n setTimeout(() => {\n // istanbul ignore next @preserve\n if (!called) dispatchEvent(element, endEvent);\n }, duration + delay + 17);\n } else {\n // istanbul ignore next @preserve\n handler.apply(element, [endEvent]);\n }\n};\n\nexport default emulateAnimationEnd;\n","import transitionDelay from \"../strings/transitionDelay\";\nimport transitionProperty from \"../strings/transitionProperty\";\nimport getElementStyle from \"./getElementStyle\";\n\n/**\n * Utility to get the computed `transitionDelay`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `transitionDelay` value in miliseconds\n */\nconst getElementTransitionDelay = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, transitionProperty);\n const delayValue = getElementStyle(element, transitionDelay);\n const delayScale = delayValue.includes(\"ms\")\n ? /* istanbul ignore next */ 1\n : 1000;\n const duration = propertyValue && propertyValue !== \"none\"\n ? parseFloat(delayValue) * delayScale\n : /* istanbul ignore next */ 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementTransitionDelay;\n","import transitionDuration from \"../strings/transitionDuration\";\nimport transitionProperty from \"../strings/transitionProperty\";\nimport getElementStyle from \"./getElementStyle\";\n\n/**\n * Utility to get the computed `transitionDuration`\n * from Element in miliseconds.\n *\n * @param element target\n * @return the `transitionDuration` value in miliseconds\n */\nconst getElementTransitionDuration = (element: HTMLElement): number => {\n const propertyValue = getElementStyle(element, transitionProperty);\n const durationValue = getElementStyle(element, transitionDuration);\n const durationScale = durationValue.includes(\"ms\")\n ? /* istanbul ignore next */ 1\n : 1000;\n const duration = propertyValue && propertyValue !== \"none\"\n ? parseFloat(durationValue) * durationScale\n : /* istanbul ignore next */ 0;\n\n return !Number.isNaN(duration) ? duration : /* istanbul ignore next */ 0;\n};\n\nexport default getElementTransitionDuration;\n","import transitionEndEvent from \"../strings/transitionEndEvent\";\nimport getElementTransitionDelay from \"../get/getElementTransitionDelay\";\nimport getElementTransitionDuration from \"../get/getElementTransitionDuration\";\nimport dispatchEvent from \"./dispatchEvent\";\n\n/**\n * Utility to make sure callbacks are consistently\n * called when transition ends.\n *\n * @param element event target\n * @param handler `transitionend` callback\n */\nconst emulateTransitionEnd = (\n element: HTMLElement,\n handler: EventListener,\n): void => {\n let called = 0;\n const endEvent = new Event(transitionEndEvent);\n const duration = getElementTransitionDuration(element);\n const delay = getElementTransitionDelay(element);\n\n if (duration) {\n // Wrap the handler in on -> off callback\n const transitionEndWrapper = (e: Event): void => {\n // istanbul ignore else @preserve\n if (e.target === element) {\n handler.apply(element, [e]);\n element.removeEventListener(transitionEndEvent, transitionEndWrapper);\n called = 1;\n }\n };\n element.addEventListener(transitionEndEvent, transitionEndWrapper);\n setTimeout(() => {\n // istanbul ignore next @preserve\n if (!called) dispatchEvent(element, endEvent);\n }, duration + delay + 17);\n } else {\n handler.apply(element, [endEvent]);\n }\n};\n\nexport default emulateTransitionEnd;\n","/**\n * Shortcut for `Float32Array.from()` static method.\n *\n * @param arr array-like iterable object\n * @returns a new Float32Array\n */\nconst Float32ArrayFrom = (\n arr: ArrayLike<number> | Iterable<number>,\n): Float32Array => Float32Array.from(Array.from(arr));\n\nexport default Float32ArrayFrom;\n","/**\n * Shortcut for `Float64Array.from()` static method.\n *\n * @param arr array-like iterable object\n * @returns a new Float64Array\n */\nconst Float64ArrayFrom = (\n arr: ArrayLike<number> | Iterable<number>,\n): Float64Array => Float64Array.from(Array.from(arr));\n\nexport default Float64ArrayFrom;\n","/**\n * Shortie for `HTMLElement.focus()` method.\n *\n * @param element is the target\n * @param options allows to pass additional options such as `preventScroll: boolean`\n */\nconst focus = (element: HTMLOrSVGElement, options?: FocusOptions): void =>\n element.focus(options);\n\nexport default focus;\n","import { Fn } from \"../interface/fn\";\n\ntype NormalValue = boolean | number | string | Fn | null;\n\n/**\n * Utility to normalize component options\n *\n * @param value the input value\n * @return the normalized value\n */\nconst normalizeValue = (value?: unknown): NormalValue => {\n if ([\"true\", true].includes(value as boolean)) {\n return true;\n }\n\n if ([\"false\", false].includes(value as boolean)) {\n return false;\n }\n\n if ([\"null\", \"\", null, undefined].includes(value as string | undefined)) {\n return null;\n }\n\n if (value !== \"\" && !Number.isNaN(+(value as string))) {\n return +(value as string);\n }\n\n // string / function / HTMLElement / object / undefined\n return value as NormalValue;\n};\n\nexport default normalizeValue;\n","/**\n * Shortcut for `Object.entries()` static method.\n *\n * @param obj a target object\n * @returns the entries of an object in an array format [key, value][]\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectEntries = <O extends Record<keyof O, unknown>>(obj: O) =>\n Object.entries(obj) as [keyof O, O[keyof O]][];\n\nexport default ObjectEntries;\n","/**\n * Shortcut for `String.toLowerCase()`.\n *\n * @param source input string\n * @returns lowercase output string\n */\nconst toLowerCase = (source: string): string => source.toLowerCase();\n\nexport default toLowerCase;\n","import getAttribute from \"../attr/getAttribute\";\nimport normalizeValue from \"./normalizeValue\";\nimport ObjectEntries from \"./ObjectEntries\";\nimport toLowerCase from \"./toLowerCase\";\n// import { optionValues } from '../types';\n\n/**\n * Utility to normalize component options.\n *\n * @param element target\n * @param defaultOps component default options\n * @param inputOps component instance options\n * @param ns component namespace\n * @return normalized component options object\n */\nconst normalizeOptions = <T extends { [key: string]: unknown }>(\n element: HTMLElement,\n defaultOps: T,\n inputOps: Partial<T>,\n ns?: string,\n): T => {\n const INPUT = { ...inputOps } as T;\n const data = { ...element.dataset };\n const normalOps = { ...defaultOps };\n const dataOps: Partial<T> = {};\n const title = \"title\";\n\n ObjectEntries(data).forEach(([k, v]) => {\n const key: keyof T = ns && typeof k === \"string\" && k.includes(ns)\n ? k.replace(ns, \"\").replace(\n /[A-Z]/g,\n (match: string) => toLowerCase(match),\n )\n : /* istanbul ignore next @preserve */ k;\n\n dataOps[key] = normalizeValue(v) as T[keyof T];\n });\n\n ObjectEntries(INPUT).forEach(([k, v]) => {\n INPUT[k] = normalizeValue(v) as T[keyof T];\n });\n\n ObjectEntries(defaultOps).forEach(([k, v]) => {\n // istanbul ignore else @preserve\n if (k in INPUT) {\n normalOps[k] = INPUT[k] as T[keyof T];\n } else if (k in dataOps) {\n normalOps[k] = dataOps[k] as T[keyof T];\n } else {\n normalOps[k] =\n (k === title ? getAttribute(element, title) : v) as T[keyof T];\n }\n });\n\n return normalOps;\n};\n\nexport default normalizeOptions;\n","import isObject from \"../is/isObject\";\n\n/**\n * A shortcut to `Object.hasOwn()` static method to work\n * with regular `Object` elements.\n *\n * @see https://fettblog.eu/typescript-hasownproperty/\n * @param obj the target object\n * @param prop the property to check\n * @returns the query result\n */\nconst ObjectHasOwn = <T extends object, K extends PropertyKey>(\n obj: T,\n prop: K,\n): obj is T & Record<K, unknown> =>\n isObject(obj) && (Object.hasOwn(obj, prop) || prop in obj);\n\nexport default ObjectHasOwn;\n","/**\n * Shortcut for `Object.keys()` static method.\n *\n * @param obj a target object\n * @returns an array with object keys\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectKeys = <O extends Record<keyof O, unknown>>(obj: O) =>\n Object.keys(obj) as (keyof O)[];\n\nexport default ObjectKeys;\n","/**\n * Shortcut for `Object.values()` static method.\n *\n * @param obj a target object\n * @returns an array with the object values\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectValues = <O extends Record<string, unknown>>(\n obj: O,\n): O[keyof O][] => Object.values(obj) as O[keyof O][];\n\nexport default ObjectValues;\n","/**\n * Shortcut for `Object.fromEntries()` static method.\n *\n * @param entries a target entries object\n * @returns a new Object created from the specified entries in array format [key, value][]\n * @see https://github.com/devinrhode2/ObjectTyped/blob/master/src/index.ts\n */\nconst ObjectFromEntries = <K extends string, V>(entries: [K, V][]) =>\n Object.fromEntries(entries) as Record<K, V>;\n\nexport default ObjectFromEntries;\n","import type { OriginalEvent } from \"../interface/originalEvent\";\nimport isObject from \"../is/isObject\";\nimport ObjectAssign from \"./ObjectAssign\";\n\n/**\n * Returns a namespaced `CustomEvent` specific to each component.\n *\n * @param eventType Event.type\n * @param config Event.options | Event.properties\n * @returns a new namespaced event\n */\nconst createCustomEvent = <\n O extends unknown & Record<string, unknown>,\n T extends OriginalEvent,\n>(\n eventType: string,\n config?: O,\n): T => {\n const OriginalCustomEvent = new CustomEvent<O>(eventType, {\n cancelable: true,\n bubbles: true,\n }) as T;\n\n // istanbul ignore else @preserve\n if (isObject(config)) {\n ObjectAssign(OriginalCustomEvent, config);\n }\n return OriginalCustomEvent;\n};\n\nexport default createCustomEvent;\n","/**\n * A global namespace for most scroll event listeners.\n */\nconst passiveHandler: Partial<AddEventListenerOptions> = { passive: true };\n\nexport default passiveHandler;\n","/**\n * Utility to force re-paint of an `HTMLElement` target.\n *\n * @param element is the target\n * @return the `Element.offsetHeight` value\n */\nconst reflow = (element: HTMLElement): number => element.offsetHeight;\n\nexport default reflow;\n","import ObjectAssign from \"./ObjectAssign\";\nimport ObjectEntries from \"./ObjectEntries\";\nimport isString from \"../is/isString\";\nimport type { CSS4Declaration } from \"../interface/css4Declaration\";\n\n/**\n * Shortcut for multiple uses of `HTMLElement.style.propertyName` method.\n *\n * @param element target element\n * @param styles attribute value\n */\nconst setElementStyle = (\n element: HTMLElement,\n styles: Partial<CSS4Declaration>,\n): void => {\n ObjectEntries(styles).forEach(([key, value]) => {\n if (value && isString(key as string) && (key as string).includes(\"--\")) {\n element.style.setProperty(key as string, value);\n } else {\n const propObject: Partial<CSS4Declaration> = {};\n propObject[key] = value;\n ObjectAssign(element.style, propObject);\n }\n });\n};\nexport default setElementStyle;\n","import isObject from \"./isObject\";\n\n/**\n * Checks if an element is a `Map`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isMap = (obj?: unknown): obj is Map<unknown, unknown> =>\n (isObject(obj) && obj.constructor.name === \"Map\") || false;\nexport default isMap;\n","/**\n * Shortie for `typeof SOMETHING === \"number\"`.\n *\n * @param num input value\n * @returns the query result\n */\nconst isNumber = (num?: unknown): num is number =>\n typeof num === \"number\" || false;\n\nexport default isNumber;\n","import isMap from \"../is/isMap\";\nimport isHTMLElement from \"../is/isHTMLElement\";\nimport isNumber from \"../is/isNumber\";\n\ntype KeyMap = Map<string, number>;\ntype TimeMap = Map<HTMLElement, number | KeyMap>;\n\nconst TimeCache: TimeMap = new Map() as TimeMap;\n/**\n * An interface for one or more `TimerHandler`s per `Element`.\n *\n * @see https://github.com/thednp/navbar/\n */\nconst Timer = {\n /**\n * Sets a new timeout timer for an element, or element -> key association.\n *\n * @param element target element\n * @param callback the callback\n * @param delay the execution delay\n * @param key a unique key\n */\n set: (\n element: HTMLElement,\n callback: TimerHandler,\n delay: number,\n key?: string,\n ): void => {\n if (!isHTMLElement(element)) return;\n\n // istanbul ignore else @preserve\n if (key && key.length) {\n // istanbul ignore else @preserve\n if (!TimeCache.has(element)) {\n TimeCache.set(element, new Map());\n }\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n (TimeCache.get(element) as KeyMap).set(key, setTimeout(callback, delay));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n TimeCache.set(element, setTimeout(callback, delay));\n }\n },\n\n /**\n * Returns the timer associated with the target.\n *\n * @param element target element\n * @param key a unique\n * @returns the timer\n */\n get: (element: HTMLElement, key?: string): number | null => {\n if (!isHTMLElement(element)) return null;\n const keyTimers = TimeCache.get(element);\n\n if (key && keyTimers && isMap(keyTimers as KeyMap)) {\n return (keyTimers as KeyMap).get(key) ||\n /* istanbul ignore next @preserve */\n null;\n } else if (isNumber(keyTimers as number)) {\n return keyTimers as number;\n }\n return null;\n },\n\n /**\n * Clears the element's timer.\n *\n * @param element target element\n * @param key a unique key\n */\n clear: (element: HTMLElement, key?: string): void => {\n if (!isHTMLElement(element)) return;\n\n const keyTimers = TimeCache.get(element);\n\n if (key && key.length && isMap(keyTimers as KeyMap)) {\n clearTimeout((keyTimers as KeyMap).get(key));\n (keyTimers as KeyMap).delete(key);\n // istanbul ignore else @preserve\n if ((keyTimers as KeyMap).size === 0) {\n TimeCache.delete(element);\n }\n } else {\n clearTimeout(keyTimers as number);\n TimeCache.delete(element);\n }\n },\n};\n\nexport default Timer;\n","/**\n * Shortcut for `String.toUpperCase()`.\n *\n * @param source input string\n * @returns uppercase output string\n */\nconst toUpperCase = (source: string): string => source.toUpperCase();\n\nexport default toUpperCase;\n","import getDocument from \"../get/getDocument\";\nimport isNode from \"../is/isNode\";\n\n/**\n * A shortcut for `(document|Element).querySelectorAll`.\n *\n * @param selector the input selector\n * @param parent optional node to look into\n * @return the query result\n */\nconst querySelectorAll = <T extends HTMLElement>(\n selector: string,\n parent?: ParentNode,\n): NodeListOf<T> => {\n const lookUp = isNode(parent) ? parent : getDocument();\n return lookUp.querySelectorAll(selector);\n};\n\nexport default querySelectorAll;\n","import ariaHidden from \"../strings/ariaHidden\";\nimport focusableSelector from \"../strings/focusableSelector\";\nimport querySelectorAll from \"../selectors/querySelectorAll\";\nimport getAttribute from \"../attr/getAttribute\";\nimport hasAttribute from \"../attr/hasAttribute\";\nimport off from \"../event/off\";\nimport on from \"../event/on\";\nimport getDocument from \"../get/getDocument\";\nimport { KeyboardEvent } from \"../interface/event\";\n\nconst focusTrapMap = new Map<HTMLElement, boolean>();\n\nexport type FocusableElement =\n | HTMLAnchorElement\n | HTMLButtonElement\n | HTMLInputElement\n | HTMLTextAreaElement\n | HTMLDataListElement\n | HTMLDetailsElement\n | HTMLSelectElement;\n\nfunction handleKeyboardNavigation<T extends HTMLElement & EventTarget>(\n this: T,\n event: KeyboardEvent<T>,\n) {\n const { shiftKey, code } = event;\n const doc = getDocument(this);\n const focusableElements = [\n ...querySelectorAll<FocusableElement>(focusableSelector, this),\n ].filter(\n (el) => !hasAttribute(el, \"disabled\") && !getAttribute(el, ariaHidden),\n );\n\n if (!focusableElements.length) return;\n const firstFocusable = focusableElements[0];\n const lastFocusable = focusableElements[focusableElements.length - 1];\n\n // istanbul ignore else @preserve\n if (code === \"Tab\") {\n if (shiftKey && doc.activeElement === firstFocusable) {\n lastFocusable.focus();\n event.preventDefault();\n } else if (!shiftKey && doc.activeElement === lastFocusable) {\n firstFocusable.focus();\n event.preventDefault();\n }\n }\n}\n\n/**\n * Utility to check if a designated element is affected by focus trap;\n * @param target\n */\nexport const hasFocusTrap = (target: HTMLElement) =>\n focusTrapMap.has(target) === true;\n\n/**\n * Utility to toggle focus trap inside a designated target element;\n * @param target\n */\nexport const toggleFocusTrap = (target: HTMLElement) => {\n const isCurrentlyTrapped = hasFocusTrap(target);\n const action = !isCurrentlyTrapped ? on : off;\n action(target, \"keydown\", handleKeyboardNavigation);\n if (isCurrentlyTrapped) focusTrapMap.delete(target);\n else focusTrapMap.set(target, true);\n};\n","import isHTMLElement from \"../is/isHTMLElement\";\nimport type { BoundingClientRect } from \"../interface/boundingClientRect\";\n\n/**\n * Returns the bounding client rect of a target `HTMLElement`.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element event.target\n * @param includeScale when *true*, the target scale is also computed\n * @returns the bounding client rect object\n */\nconst getBoundingClientRect = (\n element: HTMLElement,\n includeScale?: boolean,\n): BoundingClientRect => {\n const { width, height, top, right, bottom, left } = element\n .getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n const { offsetWidth, offsetHeight } = element;\n scaleX = offsetWidth > 0\n ? Math.round(width) / offsetWidth\n : /* istanbul ignore next @preserve */ 1;\n scaleY = offsetHeight > 0\n ? Math.round(height) / offsetHeight\n : /* istanbul ignore next @preserve */ 1;\n }\n\n return {\n width: width / scaleX,\n height: height / scaleY,\n top: top / scaleY,\n right: right / scaleX,\n bottom: bottom / scaleY,\n left: left / scaleX,\n x: left / scaleX,\n y: top / scaleY,\n };\n};\n\nexport default getBoundingClientRect;\n","import getDocument from \"./getDocument\";\n\n/**\n * Returns the `document.body` or the `<body>` element.\n *\n * @param node the reference node\n * @returns the parent `<body>` of the specified node\n */\nconst getDocumentBody = (node?: Node | Document | Window): HTMLElement => {\n return getDocument(node).body;\n};\n\nexport default getDocumentBody;\n","import getDocument from \"./getDocument\";\n\n/**\n * Returns the `document.documentElement` or the `<HTML>` element.\n *\n * @param node the reference node\n * @returns the parent `<HTML>` of the node's parent document\n */\nconst getDocumentElement = (node?: Node | Document | Window): HTMLElement => {\n return getDocument(node).documentElement;\n};\n\nexport default getDocumentElement;\n","import getDocument from \"./getDocument\";\n/**\n * Returns the `document.head` or the `<head>` element.\n *\n * @param node the reference node\n * @returns the `<head>` of the node's parent document\n */\nconst getDocumentHead = (\n node?: Node | Document | Window,\n): HTMLElement & HTMLHeadElement => {\n return getDocument(node).head;\n};\n\nexport default getDocumentHead;\n","import isWindow from \"../is/isWindow\";\n\n/**\n * Returns an `{x,y}` object with the target\n * `HTMLElement` / `Node` scroll position.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target node / element\n * @returns the scroll tuple\n */\nconst getNodeScroll = (\n element: HTMLElement | Window,\n): { x: number; y: number } => {\n const isWin = isWindow(element);\n const x = isWin ? element.scrollX : element.scrollLeft;\n const y = isWin ? element.scrollY : element.scrollTop;\n\n return { x, y };\n};\n\nexport default getNodeScroll;\n","import isNode from \"./isNode\";\n\n/**\n * Check if target is a `ShadowRoot`.\n *\n * @param element target\n * @returns the query result\n */\nconst isShadowRoot = (element?: unknown): element is ShadowRoot =>\n (isNode(element) && element.constructor.name === \"ShadowRoot\") || false;\n\nexport default isShadowRoot;\n","import getDocumentElement from \"./getDocumentElement\";\nimport isShadowRoot from \"../is/isShadowRoot\";\nimport isHTMLElement from \"../is/isHTMLElement\";\nimport isNode from \"../is/isNode\";\n\n/**\n * Returns the `parentNode` also going through `ShadowRoot`.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param {Node} node the target node\n * @returns {Node} the apropriate parent node\n */\nconst getParentNode = (node: Node): Node | ParentNode => {\n if (node.nodeName === \"HTML\") {\n return node;\n }\n\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n return (\n (isHTMLElement(node) && node.assignedSlot) || // step into the shadow DOM of the parent of a slotted node\n (isNode(node) && node.parentNode) || // DOM Element detected\n (isShadowRoot(node) && node.host) || // ShadowRoot detected\n getDocumentElement(node) // fallback to <HTML>\n );\n};\n\nexport default getParentNode;\n","import isHTMLElement from \"./isHTMLElement\";\nimport getBoundingClientRect from \"../get/getBoundingClientRect\";\n\n/**\n * Checks if a target `HTMLElement` is affected by scale.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target\n * @returns the query result\n */\nconst isScaledElement = (element?: HTMLElement): boolean => {\n if (!isHTMLElement(element)) return false;\n const { width, height } = getBoundingClientRect(element);\n const { offsetWidth, offsetHeight } = element;\n return Math.round(width) !== offsetWidth ||\n Math.round(height) !== offsetHeight;\n};\n\nexport default isScaledElement;\n","import type { OffsetRect } from \"../interface/offsetRect\";\nimport isScaledElement from \"../is/isScaledElement\";\nimport isHTMLElement from \"../is/isHTMLElement\";\nimport getBoundingClientRect from \"./getBoundingClientRect\";\n\n/**\n * Returns the rect relative to a given offset parent and its scroll position.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param element target\n * @param offsetParent the container / offset parent\n * @param scroll the offsetParent scroll position\n * @returns a DOMRect like object\n */\nconst getRectRelativeToOffsetParent = (\n element: HTMLElement,\n offsetParent: HTMLElement,\n scroll: { x: number; y: number },\n): OffsetRect => {\n const isParentAnElement = isHTMLElement(offsetParent);\n const rect = getBoundingClientRect(\n element,\n isParentAnElement && isScaledElement(offsetParent),\n );\n const offsets = { x: 0, y: 0 };\n\n // istanbul ignore else @preserve\n if (isParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n\n return {\n x: rect.left + scroll.x - offsets.x,\n y: rect.top + scroll.y - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n};\n\nexport default getRectRelativeToOffsetParent;\n","import isMap from \"../is/isMap\";\n\nlet elementUID = 0;\nlet elementMapUID = 0;\n\ntype KeyIdMap = Map<string | number, number>;\ntype IDMap = Map<number | string | HTMLElement, number | KeyIdMap>;\n\nconst elementIDMap: IDMap = new Map();\n\n/**\n * Returns a unique identifier for popover, tooltip, scrollspy.\n *\n * @param element target element\n * @param key optional identifier key\n * @returns an existing or new unique ID\n */\nconst getUID = (element: HTMLElement, key?: string): number => {\n let result = key ? elementUID : elementMapUID;\n\n if (key) {\n const elID = getUID(element);\n const elMap = elementIDMap.get(elID) || (new Map() as KeyIdMap);\n if (!elementIDMap.has(elID)) {\n elementIDMap.set(elID, elMap);\n }\n if (isMap(elMap as KeyIdMap) && !(elMap as KeyIdMap).has(key)) {\n (elMap as KeyIdMap).set(key, result);\n elementUID += 1;\n } else result = (elMap as KeyIdMap).get(key) as number;\n } else {\n const elkey = element.id || element;\n\n if (!elementIDMap.has(elkey)) {\n elementIDMap.set(elkey, result);\n elementMapUID += 1;\n } else result = elementIDMap.get(elkey) as number;\n }\n return result;\n};\n\nexport default getUID;\n","import isDocument from \"../is/isDocument\";\nimport isNode from \"../is/isNode\";\n\n/**\n * Returns the `Window` object of a target node.\n *\n * @see https://github.com/floating-ui/floating-ui\n *\n * @param node target node\n * @returns the `Window` object\n */\nconst getWindow = (node?: Node): Window => {\n // node is undefined | NULL\n if (!node) return window;\n // node instanceof Document\n if (isDocument(node)) return node.defaultView as Window;\n // node instanceof Node\n if (isNode(node)) return node?.ownerDocument?.defaultView as Window;\n // node is instanceof Window\n return node;\n};\n\nexport default getWindow;\n","/**\n * Shortie for the `Array.isArray()` static method.\n *\n * @param obj array-like iterable object\n * @returns the query result\n */\nconst isArray = (obj?: unknown): obj is unknown[] =>\n Array.isArray(obj) || false;\n\nexport default isArray;\n","import isNode from \"./isNode\";\n\n/**\n * Checks if an element is an `HTMLCanvasElement` or `<canvas>`.\n *\n * @param element the target element\n * @returns the query result\n */\n\nconst isCanvas = (element?: unknown): element is HTMLCanvasElement =>\n (isNode(element) && element.nodeName === \"CANVAS\") || false;\n\nexport default isCanvas;\n","import isHTMLElement from \"./isHTMLElement\";\nimport type { CustomElement } from \"../interface/customElement\";\n\n/**\n * Checks if an object is a `CustomElement`.\n *\n * @param element the target object\n * @returns the query result\n */\nconst isCustomElement = <T extends CustomElement>(\n element?: unknown,\n): element is T =>\n (isHTMLElement(element) && !!(element as T).shadowRoot) || false;\n\nexport default isCustomElement;\n","import isNode from \"./isNode\";\n\n/**\n * Checks if an object is an `Element`.\n *\n * @see https://dom.spec.whatwg.org/#node\n *\n * ```\n * ELEMENT_NODE = 1;\n * ATTRIBUTE_NODE = 2;\n * TEXT_NODE = 3;\n * CDATA_SECTION_NODE = 4;\n * ENTITY_REFERENCE_NODE = 5; // legacy\n * ENTITY_NODE = 6; // legacy\n * PROCESSING_INSTRUCTION_NODE = 7;\n * COMMENT_NODE = 8;\n * DOCUMENT_NODE = 9;\n * DOCUMENT_TYPE_NODE = 10;\n * DOCUMENT_FRAGMENT_NODE = 11;\n * ```\n * @param element the target object\n * @returns the query result\n */\nconst isElement = (element?: unknown): element is Element =>\n (isNode(element) &&\n [1, 2, 3, 4, 5, 6, 7, 8].some((x) => element.nodeType === x)) || false;\n\nexport default isElement;\n","import getBoundingClientRect from \"../get/getBoundingClientRect\";\nimport getDocumentElement from \"../get/getDocumentElement\";\nimport isNode from \"./isNode\";\n\n/**\n * Utility to determine if an `HTMLElement`\n * is partially visible in viewport.\n *\n * @param element target\n * @return the query result\n */\nconst isElementInScrollRange = (element?: HTMLElement): boolean => {\n if (!isNode(element)) return false;\n\n const { top, bottom } = getBoundingClientRect(element);\n const { clientHeight } = getDocumentElement(element);\n return top <= clientHeight && bottom >= 0;\n};\n\nexport default isElementInScrollRange;\n","import getBoundingClientRect from \"../get/getBoundingClientRect\";\nimport getDocumentElement from \"../get/getDocumentElement\";\nimport isNode from \"./isNode\";\n\n/**\n * Utility to determine if an `HTMLElement`\n * is fully visible in the viewport.\n *\n * @param element target\n * @return the query result\n */\nconst isElementInViewport = (element?: HTMLElement): boolean => {\n if (!isNode(element)) return false;\n\n const { clientWidth, clientHeight } = getDocumentElement(element);\n const { top, left, bottom, right } = getBoundingClientRect(element, true);\n\n return top >= 0 && left >= 0 && bottom <= clientHeight &&\n right <= clientWidth;\n};\nexport default isElementInViewport;\n","import isHTMLElement from \"./isHTMLElement\";\nimport isArray from \"./isArray\";\n\n/**\n * Checks if an object is an `Array` in which all items are `Element`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isElementsArray = (obj?: unknown): obj is HTMLElement[] =>\n (isArray(obj) && obj.every(isHTMLElement)) || false;\n\nexport default isElementsArray;\n","import { Fn } from \"../interface/fn\";\n\n/**\n * Checks if an object is a `Function`.\n *\n * @param fn the target object\n * @returns the query result\n */\nconst isFunction = (fn?: unknown): fn is Fn =>\n typeof fn === \"function\" || false;\n\nexport default isFunction;\n","import isObject from \"./isObject\";\n\n/**\n * Checks if an object is an `HTMLCollection`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isHTMLCollection = (obj?: unknown): obj is HTMLCollection =>\n (isObject(obj) && obj.constructor.name === \"HTMLCollection\") || false;\n\nexport default isHTMLCollection;\n","import isHTMLElement from \"./isHTMLElement\";\n\n/**\n * Check if a target element is an `<img>`.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isHTMLImageElement = (element?: unknown): element is HTMLImageElement =>\n (isHTMLElement(element) && element.tagName === \"IMG\") || false;\n\nexport default isHTMLImageElement;\n","import isString from \"./isString\";\n\n/**\n * Checks if a string is a `JSON` string.\n *\n * @param str the target string\n * @returns the query result\n */\nconst isJSON = (str?: string): boolean => {\n if (!isString(str)) return false;\n\n try {\n JSON.parse(str);\n } catch (_e) {\n return false;\n }\n return true;\n};\n\nexport default isJSON;\n","import isObject from \"./isObject\";\n\n/**\n * Checks if an element is a `WeakMap`.\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isWeakMap = (obj?: unknown): obj is WeakMap<WeakKey, unknown> =>\n (isObject(obj) && obj.constructor.name === \"WeakMap\") || false;\nexport default isWeakMap;\n","import isNode from \"./isNode\";\n\n/**\n * Checks if an element is an `<svg>` (or any type of SVG element),\n * `<img>`, `<video>` or `<canvas>`.\n *\n * *Tooltip* / *Popover* works different with media elements.\n *\n * @param element the target element\n * @returns the query result\n */\n\nconst isMedia = (\n element?: unknown,\n): element is\n | SVGElement\n | HTMLImageElement\n | HTMLVideoElement\n | HTMLCanvasElement =>\n (isNode(element) &&\n [\"SVG\", \"Image\", \"Video\", \"Canvas\"].some((s) =>\n element.constructor.name.includes(s)\n )) ||\n false;\n\nexport default isMedia;\n","import isObject from \"./isObject\";\n\n/**\n * Checks if an object is a `NodeList`.\n * => equivalent to `object instanceof NodeList`\n *\n * @param obj the target object\n * @returns the query result\n */\nconst isNodeList = (obj?: unknown): obj is NodeList =>\n (isObject(obj) && obj.constructor.name === \"NodeList\") || false;\n\nexport default isNodeList;\n","import getDocumentElement from \"../get/getDocumentElement\";\n\n/**\n * Checks if a page is Right To Left.\n *\n * @param node the target\n * @returns the query result\n */\nconst isRTL = (node?: Node): boolean => getDocumentElement(node).dir === \"rtl\";\n\nexport default isRTL;\n","import isNode from \"./isNode\";\n\n/**\n * Check if an element is an `<svg>` or any other SVG element,\n * an equivalent to `SOMETHING instanceof SVGElement`.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isSVGElement = (element?: unknown): element is SVGElement =>\n (isNode(element) && element.constructor.name.includes(\"SVG\")) || false;\n\nexport default isSVGElement;\n","import isNode from \"./isNode\";\n\n/**\n * Check if a target element is a `<table>`, `<td>` or `<th>`.\n * This specific check is important for determining\n * the `offsetParent` of a given element.\n *\n * @param element the target element\n * @returns the query result\n */\nconst isTableElement = (\n element?: unknown,\n): element is HTMLTableElement | HTMLTableCellElement =>\n (isNode(element) && [\"TABLE\", \"TD\", \"TH\"].includes(element.nodeName)) ||\n false;\n\nexport default isTableElement;\n","/**\n * Shortcut for `HTMLElement.closest` method which also works\n * with children of `ShadowRoot`. The order of the parameters\n * is intentional since they're both required.\n *\n * @see https://stackoverflow.com/q/54520554/803358\n *\n * @param element Element to look into\n * @param selector the selector name\n * @return the query result\n */\nconst closest = <T extends Element = HTMLElement>(\n element: T,\n selector: string,\n): HTMLElement | null => {\n return element\n ? element.closest(selector) ||\n // break out of `ShadowRoot`\n closest((element.getRootNode() as ShadowRoot).host, selector)\n : null;\n};\n\nexport default closest;\n","import getDocument from \"../get/getDocument\";\nimport isNode from \"../is/isNode\";\nimport isHTMLElement from \"../is/isHTMLElement\";\n\n/**\n * Utility to check if target is typeof `HTMLElement`, `Element`, `Node`\n * or find one that matches a selector.\n *\n * @param selector the input selector or target element\n * @param parent optional node to look into\n * @return the `HTMLElement` or `querySelector` result\n */\nconst querySelector = <T extends HTMLElement>(\n selector: HTMLElement | string,\n parent?: ParentNode,\n): T | null => {\n if (isHTMLElement(selector)) {\n return selector as T;\n }\n const lookUp = isNode(parent) ? parent : getDocument();\n\n return lookUp.querySelector<T>(selector);\n};\n\nexport default querySelector;\n","import getDocument from \"../get/getDocument\";\nimport isNode from \"../is/isNode\";\n\n/**\n * Shortcut for `HTMLElement.getElementsByTagName` method. Some `Node` elements\n * like `ShadowRoot` do not support `getElementsByTagName`.\n *\n * @param selector the tag name\n * @param parent optional Element to look into\n * @return the 'HTMLCollection'\n */\nconst getElementsByTagName = <T extends HTMLElement>(\n selector: string,\n parent?: ParentNode,\n) => {\n const lookUp = isNode(parent) ? parent : getDocument();\n return (lookUp as Document).getElementsByTagName(\n selector,\n ) as HTMLCollectionOf<T>;\n};\n\nexport default getElementsByTagName;\n","import isCustomElement from \"../is/isCustomElement\";\nimport getElementsByTagName from \"./getElementsByTagName\";\n\n/**\n * Returns an `Array` of `Node` elements that are registered as\n * `CustomElement`.\n *\n * @see https://stackoverflow.com/questions/27334365/how-to-get-list-of-registered-custom-elements\n *\n * @param parent parent to look into\n * @returns the query result\n */\nconst getCustomElements = (parent?: ParentNode) => {\n const collection = getElementsByTagName(\"*\", parent);\n\n return [...collection].filter(isCustomElement);\n};\n\nexport default getCustomElements;\n","import getDocument from \"../get/getDocument\";\n\n/**\n * Returns an `HTMLElement` that matches the id in the document.\n * Within multiple <iframe> elements, a `parent` parameter\n * would decisively locate the correct element.\n *\n * @param id the ID selector\n * @param context an element in it's document or document\n * @returns the requested element\n */\nconst getElementById = <T extends HTMLElement>(id: string, context?: Node) => {\n return (getDocument(context).getElementById(id) as T) || null;\n};\n\nexport default getElementById;\n","import getDocument from \"../get/getDocument\";\nimport isNode from \"../is/isNode\";\n\n/**\n * Shortcut for `HTMLElement.getElementsByClassName` method. Some `Node` elements\n * like `ShadowRoot` do not support `getElementsByClassName`.\n *\n * @param selector the class name\n * @param parent optional Element to look into\n * @return the 'HTMLCollection'\n */\nconst getElementsByClassName = <T extends HTMLElement>(\n selector: string,\n parent?: ParentNode,\n) => {\n const lookUp = parent && isNode(parent) ? parent : getDocument();\n return (lookUp as HTMLElement | Document).getElementsByClassName(\n selector,\n ) as HTMLCollectionOf<T>;\n};\n\nexport default getElementsByClassName;\n","/**\n * Check if element matches a CSS selector.\n *\n * @param target the target element\n * @param selector the selector to match\n * @returns the query result\n */\nconst matches = (target: Element, selector: string): boolean =>\n target.matches(selector);\n\nexport default matches;\n"],"names":["DOMContentLoaded","DOMMouseScroll","abort","beforeunload","blur","change","click","contextmenu","dblclick","error","focus","focusin","focusout","gesturechange","gestureend","gesturestart","hover","keydown","keypress","keyup","load","mousedown","mousemove","mousein","mouseout","mouseenter","mouseleave","mouseover","mouseup","mousewheel","move","orientationchange","pointercancel","pointerdown","pointerleave","pointermove","pointerup","readystatechange","reset","resize","scroll","select","selectend","selectstart","submit","touchcancel","touchend","touchmove","touchstart","unload","offsetWidth","offsetHeight"],"mappings":"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"}