@thednp/shorty 1.0.3 → 2.0.0-alpha10

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 (353) hide show
  1. package/.eslintrc.cjs +224 -0
  2. package/.lgtm.yml +9 -0
  3. package/.prettierrc.json +15 -0
  4. package/README.md +195 -198
  5. package/cypress/e2e/att.cy.ts +46 -0
  6. package/cypress/e2e/boolean.cy.ts +44 -0
  7. package/cypress/e2e/class.cy.ts +28 -0
  8. package/cypress/e2e/event.cy.ts +51 -0
  9. package/cypress/e2e/get.cy.ts +168 -0
  10. package/cypress/e2e/is.cy.ts +233 -0
  11. package/cypress/e2e/misc.cy.ts +331 -0
  12. package/cypress/e2e/selectors.cy.ts +85 -0
  13. package/cypress/fixtures/custom-elem.js +18 -0
  14. package/cypress/plugins/esbuild-istanbul.ts +50 -0
  15. package/cypress/plugins/tsCompile.ts +34 -0
  16. package/cypress/support/commands.ts +37 -0
  17. package/cypress/support/e2e.ts +21 -0
  18. package/cypress/support/index.js +22 -0
  19. package/cypress/test.html +63 -0
  20. package/cypress.config.ts +30 -0
  21. package/dist/shorty.cjs +2 -0
  22. package/dist/shorty.cjs.map +1 -0
  23. package/dist/shorty.d.ts +1502 -0
  24. package/dist/shorty.js +2 -2628
  25. package/dist/shorty.js.map +1 -0
  26. package/dist/shorty.mjs +552 -0
  27. package/dist/shorty.mjs.map +1 -0
  28. package/dts.config.ts +22 -0
  29. package/package.json +33 -38
  30. package/src/attr/getAttribute.ts +11 -0
  31. package/src/attr/getAttributeNS.ts +12 -0
  32. package/src/attr/hasAttribute.ts +10 -0
  33. package/src/attr/hasAttributeNS.ts +12 -0
  34. package/src/attr/removeAttribute.ts +9 -0
  35. package/src/attr/removeAttributeNS.ts +11 -0
  36. package/src/attr/setAttribute.ts +11 -0
  37. package/src/attr/setAttributeNS.ts +12 -0
  38. package/src/blocks/{documentBody.js → documentBody.ts} +0 -0
  39. package/src/blocks/{documentElement.js → documentElement.ts} +0 -0
  40. package/src/blocks/{documentHead.js → documentHead.ts} +0 -0
  41. package/src/boolean/isApple.ts +14 -0
  42. package/src/boolean/{isFirefox.js → isFirefox.ts} +2 -3
  43. package/src/boolean/{isMobile.js → isMobile.ts} +1 -2
  44. package/src/boolean/support3DTransform.ts +8 -0
  45. package/src/boolean/supportAnimation.ts +8 -0
  46. package/src/boolean/{supportPassive.js → supportPassive.ts} +3 -3
  47. package/src/boolean/supportTouch.ts +7 -0
  48. package/src/boolean/supportTransform.ts +8 -0
  49. package/src/boolean/supportTransition.ts +8 -0
  50. package/src/class/addClass.ts +11 -0
  51. package/src/class/hasClass.ts +11 -0
  52. package/src/class/removeClass.ts +11 -0
  53. package/src/event/off.ts +14 -0
  54. package/src/event/on.ts +14 -0
  55. package/src/event/one.ts +25 -0
  56. package/src/get/{getBoundingClientRect.js → getBoundingClientRect.ts} +14 -12
  57. package/src/get/{getDocument.js → getDocument.ts} +11 -7
  58. package/src/get/getDocumentBody.ts +13 -0
  59. package/src/get/getDocumentElement.ts +13 -0
  60. package/src/get/getDocumentHead.ts +12 -0
  61. package/src/get/{getElementAnimationDelay.js → getElementAnimationDelay.ts} +10 -9
  62. package/src/get/{getElementAnimationDuration.js → getElementAnimationDuration.ts} +10 -8
  63. package/src/get/getElementStyle.ts +25 -0
  64. package/src/get/{getElementTransitionDelay.js → getElementTransitionDelay.ts} +12 -8
  65. package/src/get/{getElementTransitionDuration.js → getElementTransitionDuration.ts} +12 -8
  66. package/src/get/{getNodeScroll.js → getNodeScroll.ts} +9 -5
  67. package/src/get/{getParentNode.js → getParentNode.ts} +11 -6
  68. package/src/get/{getRectRelativeToOffsetParent.js → getRectRelativeToOffsetParent.ts} +15 -7
  69. package/src/get/getUID.ts +42 -0
  70. package/src/get/{getWindow.js → getWindow.ts} +9 -6
  71. package/src/{index.js → index.ts} +37 -43
  72. package/src/interface/boundingClientRect.d.ts +10 -0
  73. package/src/interface/css4Declaration.d.ts +4 -0
  74. package/src/interface/customElement.d.ts +8 -0
  75. package/src/interface/navigatorUA.d.ts +15 -0
  76. package/src/interface/offsetRect.d.ts +6 -0
  77. package/src/interface/originalEvent.d.ts +4 -0
  78. package/src/is/isArray.ts +9 -0
  79. package/src/is/isCanvas.ts +13 -0
  80. package/src/is/isCustomElement.ts +13 -0
  81. package/src/is/isDocument.ts +13 -0
  82. package/src/is/{isElement.js → isElement.ts} +10 -5
  83. package/src/is/{isElementInScrollRange.js → isElementInScrollRange.ts} +4 -4
  84. package/src/is/{isElementInViewport.js → isElementInViewport.ts} +6 -12
  85. package/src/is/isElementsArray.ts +13 -0
  86. package/src/is/isFunction.ts +10 -0
  87. package/src/is/isHTMLCollection.ts +12 -0
  88. package/src/is/isHTMLElement.ts +13 -0
  89. package/src/is/isHTMLImageElement.ts +12 -0
  90. package/src/is/isJSON.ts +20 -0
  91. package/src/is/isMap.ts +11 -0
  92. package/src/is/isMedia.ts +20 -0
  93. package/src/is/isNode.ts +17 -0
  94. package/src/is/isNodeList.ts +13 -0
  95. package/src/is/isNumber.ts +9 -0
  96. package/src/is/isObject.ts +10 -0
  97. package/src/is/isRTL.ts +11 -0
  98. package/src/is/isSVGElement.ts +13 -0
  99. package/src/is/{isScaledElement.js → isScaledElement.ts} +9 -7
  100. package/src/is/isShadowRoot.ts +12 -0
  101. package/src/is/isString.ts +9 -0
  102. package/src/is/isTableElement.ts +14 -0
  103. package/src/is/isWeakMap.ts +11 -0
  104. package/src/is/isWindow.ts +13 -0
  105. package/src/misc/ArrayFrom.ts +11 -0
  106. package/src/misc/Float32ArrayFrom.ts +10 -0
  107. package/src/misc/Float64ArrayFrom.ts +10 -0
  108. package/src/misc/ObjectAssign.ts +43 -0
  109. package/src/misc/ObjectEntries.ts +11 -0
  110. package/src/misc/ObjectHasOwn.ts +17 -0
  111. package/src/misc/ObjectKeys.ts +10 -0
  112. package/src/misc/ObjectValues.ts +11 -0
  113. package/src/misc/createCustomEvent.ts +28 -0
  114. package/src/misc/createElement.ts +40 -0
  115. package/src/misc/createElementNS.ts +45 -0
  116. package/src/misc/data.ts +82 -0
  117. package/src/misc/dispatchEvent.ts +9 -0
  118. package/src/misc/distinct.ts +18 -0
  119. package/src/misc/{emulateAnimationEnd.js → emulateAnimationEnd.ts} +8 -9
  120. package/src/misc/{emulateTransitionEnd.js → emulateTransitionEnd.ts} +8 -9
  121. package/src/misc/focus.ts +9 -0
  122. package/src/misc/getInstance.ts +9 -0
  123. package/src/misc/{noop.js → noop.ts} +4 -1
  124. package/src/misc/normalizeOptions.ts +55 -0
  125. package/src/misc/normalizeValue.ts +30 -0
  126. package/src/misc/{passiveHandler.js → passiveHandler.ts} +1 -2
  127. package/src/misc/reflow.ts +9 -0
  128. package/src/misc/setElementStyle.ts +23 -0
  129. package/src/misc/timer.ts +84 -0
  130. package/src/misc/toLowerCase.ts +9 -0
  131. package/src/misc/toUpperCase.ts +9 -0
  132. package/src/selectors/closest.ts +20 -0
  133. package/src/selectors/{getCustomElements.js → getCustomElements.ts} +8 -4
  134. package/src/selectors/getElementById.ts +16 -0
  135. package/src/selectors/getElementsByClassName.ts +22 -0
  136. package/src/selectors/getElementsByTagName.ts +20 -0
  137. package/src/selectors/matches.ts +10 -0
  138. package/src/selectors/querySelector.ts +22 -0
  139. package/src/selectors/{querySelectorAll.js → querySelectorAll.ts} +7 -5
  140. package/src/strings/{DOMContentLoadedEvent.js → DOMContentLoadedEvent.ts} +0 -1
  141. package/src/strings/{DOMMouseScrollEvent.js → DOMMouseScrollEvent.ts} +0 -1
  142. package/src/strings/{abortEvent.js → abortEvent.ts} +0 -1
  143. package/src/strings/{addEventListener.js → addEventListener.ts} +0 -1
  144. package/src/strings/{animationDelay.js → animationDelay.ts} +0 -1
  145. package/src/strings/{animationDuration.js → animationDuration.ts} +0 -1
  146. package/src/strings/{animationEndEvent.js → animationEndEvent.ts} +0 -1
  147. package/src/strings/{animationName.js → animationName.ts} +0 -1
  148. package/src/strings/{ariaChecked.js → ariaChecked.ts} +0 -1
  149. package/src/strings/{ariaDescribedBy.js → ariaDescribedBy.ts} +0 -1
  150. package/src/strings/{ariaDescription.js → ariaDescription.ts} +0 -1
  151. package/src/strings/{ariaExpanded.js → ariaExpanded.ts} +0 -1
  152. package/src/strings/{ariaHasPopup.js → ariaHasPopup.ts} +0 -1
  153. package/src/strings/{ariaHidden.js → ariaHidden.ts} +0 -1
  154. package/src/strings/{ariaLabel.js → ariaLabel.ts} +0 -1
  155. package/src/strings/{ariaLabelledBy.js → ariaLabelledBy.ts} +0 -1
  156. package/src/strings/{ariaModal.js → ariaModal.ts} +0 -1
  157. package/src/strings/{ariaPressed.js → ariaPressed.ts} +0 -1
  158. package/src/strings/{ariaSelected.js → ariaSelected.ts} +0 -1
  159. package/src/strings/{ariaValueMax.js → ariaValueMax.ts} +0 -1
  160. package/src/strings/{ariaValueMin.js → ariaValueMin.ts} +0 -1
  161. package/src/strings/{ariaValueNow.js → ariaValueNow.ts} +0 -1
  162. package/src/strings/{ariaValueText.js → ariaValueText.ts} +0 -1
  163. package/src/strings/{beforeunloadEvent.js → beforeunloadEvent.ts} +0 -1
  164. package/src/strings/{bezierEasings.js → bezierEasings.ts} +0 -1
  165. package/src/strings/{blurEvent.js → blurEvent.ts} +0 -1
  166. package/src/strings/{changeEvent.js → changeEvent.ts} +0 -1
  167. package/src/strings/{contextmenuEvent.js → contextmenuEvent.ts} +0 -1
  168. package/src/strings/dragEvent.ts +5 -0
  169. package/src/strings/dragendEvent.ts +5 -0
  170. package/src/strings/dragenterEvent.ts +5 -0
  171. package/src/strings/dragleaveEvent.ts +5 -0
  172. package/src/strings/dragoverEvent.ts +5 -0
  173. package/src/strings/dragstartEvent.ts +5 -0
  174. package/src/strings/{errorEvent.js → errorEvent.ts} +0 -1
  175. package/src/strings/{focusEvent.js → focusEvent.ts} +0 -1
  176. package/src/strings/{focusEvents.js → focusEvents.ts} +0 -1
  177. package/src/strings/{focusinEvent.js → focusinEvent.ts} +0 -1
  178. package/src/strings/{focusoutEvent.js → focusoutEvent.ts} +0 -1
  179. package/src/strings/{gesturechangeEvent.js → gesturechangeEvent.ts} +0 -1
  180. package/src/strings/{gestureendEvent.js → gestureendEvent.ts} +0 -1
  181. package/src/strings/{gesturestartEvent.js → gesturestartEvent.ts} +0 -1
  182. package/src/strings/{keyAlt.js → keyAlt.ts} +1 -1
  183. package/src/strings/{keyArrowDown.js → keyArrowDown.ts} +1 -1
  184. package/src/strings/{keyArrowLeft.js → keyArrowLeft.ts} +1 -1
  185. package/src/strings/{keyArrowRight.js → keyArrowRight.ts} +1 -1
  186. package/src/strings/{keyArrowUp.js → keyArrowUp.ts} +1 -1
  187. package/src/strings/{keyBackspace.js → keyBackspace.ts} +1 -1
  188. package/src/strings/{keyCapsLock.js → keyCapsLock.ts} +1 -1
  189. package/src/strings/{keyControl.js → keyControl.ts} +1 -1
  190. package/src/strings/{keyDelete.js → keyDelete.ts} +1 -1
  191. package/src/strings/{keyEnter.js → keyEnter.ts} +1 -1
  192. package/src/strings/{keyEscape.js → keyEscape.ts} +1 -1
  193. package/src/strings/{keyInsert.js → keyInsert.ts} +1 -1
  194. package/src/strings/{keyMeta.js → keyMeta.ts} +1 -1
  195. package/src/strings/{keyPause.js → keyPause.ts} +1 -1
  196. package/src/strings/{keyScrollLock.js → keyScrollLock.ts} +1 -1
  197. package/src/strings/{keyShift.js → keyShift.ts} +1 -1
  198. package/src/strings/{keySpace.js → keySpace.ts} +1 -1
  199. package/src/strings/{keyTab.js → keyTab.ts} +1 -1
  200. package/src/strings/{keyboardEventKeys.js → keyboardEventKeys.ts} +0 -1
  201. package/src/strings/{keydownEvent.js → keydownEvent.ts} +0 -1
  202. package/src/strings/{keypressEvent.js → keypressEvent.ts} +0 -1
  203. package/src/strings/{keyupEvent.js → keyupEvent.ts} +0 -1
  204. package/src/strings/{loadEvent.js → loadEvent.ts} +0 -1
  205. package/src/strings/{loadstartEvent.js → loadstartEvent.ts} +0 -1
  206. package/src/strings/{mouseClickEvents.js → mouseClickEvents.ts} +0 -1
  207. package/src/strings/mouseHoverEvents.ts +8 -0
  208. package/src/strings/{mouseSwipeEvents.js → mouseSwipeEvents.ts} +4 -2
  209. package/src/strings/{mouseclickEvent.js → mouseclickEvent.ts} +0 -1
  210. package/src/strings/{mousedblclickEvent.js → mousedblclickEvent.ts} +0 -1
  211. package/src/strings/{mousedownEvent.js → mousedownEvent.ts} +0 -1
  212. package/src/strings/{mouseenterEvent.js → mouseenterEvent.ts} +0 -1
  213. package/src/strings/{mousehoverEvent.js → mousehoverEvent.ts} +0 -1
  214. package/src/strings/{mouseinEvent.js → mouseinEvent.ts} +0 -1
  215. package/src/strings/{mouseleaveEvent.js → mouseleaveEvent.ts} +0 -1
  216. package/src/strings/{mousemoveEvent.js → mousemoveEvent.ts} +0 -1
  217. package/src/strings/{mouseoutEvent.js → mouseoutEvent.ts} +0 -1
  218. package/src/strings/{mouseoverEvent.js → mouseoverEvent.ts} +0 -1
  219. package/src/strings/{mouseupEvent.js → mouseupEvent.ts} +0 -1
  220. package/src/strings/{mousewheelEvent.js → mousewheelEvent.ts} +0 -1
  221. package/src/strings/{moveEvent.js → moveEvent.ts} +0 -1
  222. package/src/strings/{nativeEvents.js → nativeEvents.ts} +0 -0
  223. package/src/strings/{offsetHeight.js → offsetHeight.ts} +0 -1
  224. package/src/strings/{offsetWidth.js → offsetWidth.ts} +0 -1
  225. package/src/strings/{orientationchangeEvent.js → orientationchangeEvent.ts} +0 -1
  226. package/src/strings/{pointercancelEvent.js → pointercancelEvent.ts} +0 -1
  227. package/src/strings/{pointerdownEvent.js → pointerdownEvent.ts} +0 -1
  228. package/src/strings/{pointerleaveEvent.js → pointerleaveEvent.ts} +0 -1
  229. package/src/strings/{pointermoveEvent.js → pointermoveEvent.ts} +0 -1
  230. package/src/strings/{pointerupEvent.js → pointerupEvent.ts} +0 -1
  231. package/src/strings/{readystatechangeEvent.js → readystatechangeEvent.ts} +0 -1
  232. package/src/strings/{removeEventListener.js → removeEventListener.ts} +0 -1
  233. package/src/strings/{resetEvent.js → resetEvent.ts} +0 -1
  234. package/src/strings/{resizeEvent.js → resizeEvent.ts} +0 -1
  235. package/src/strings/{scrollEvent.js → scrollEvent.ts} +0 -1
  236. package/src/strings/{scrollHeight.js → scrollHeight.ts} +0 -1
  237. package/src/strings/{scrollWidth.js → scrollWidth.ts} +0 -1
  238. package/src/strings/{selectEvent.js → selectEvent.ts} +0 -1
  239. package/src/strings/{selectendEvent.js → selectendEvent.ts} +0 -1
  240. package/src/strings/{selectstartEvent.js → selectstartEvent.ts} +0 -1
  241. package/src/strings/{submitEvent.js → submitEvent.ts} +0 -1
  242. package/src/strings/tabindex.ts +5 -0
  243. package/src/strings/touchEvents.ts +10 -0
  244. package/src/strings/{touchcancelEvent.js → touchcancelEvent.ts} +0 -1
  245. package/src/strings/{touchendEvent.js → touchendEvent.ts} +0 -1
  246. package/src/strings/{touchmoveEvent.js → touchmoveEvent.ts} +0 -1
  247. package/src/strings/{touchstartEvent.js → touchstartEvent.ts} +0 -1
  248. package/src/strings/{transitionDelay.js → transitionDelay.ts} +0 -1
  249. package/src/strings/{transitionDuration.js → transitionDuration.ts} +0 -1
  250. package/src/strings/{transitionEndEvent.js → transitionEndEvent.ts} +0 -1
  251. package/src/strings/{transitionProperty.js → transitionProperty.ts} +0 -2
  252. package/src/strings/{unloadEvent.js → unloadEvent.ts} +0 -1
  253. package/src/strings/{userAgent.js → userAgent.ts} +0 -0
  254. package/src/strings/userAgentData.ts +9 -0
  255. package/tsconfig.json +30 -0
  256. package/vite.config.ts +30 -0
  257. package/dist/shorty.esm.js +0 -2599
  258. package/dist/shorty.esm.min.js +0 -2
  259. package/dist/shorty.min.js +0 -2
  260. package/src/attr/getAttribute.js +0 -9
  261. package/src/attr/getAttributeNS.js +0 -10
  262. package/src/attr/hasAttribute.js +0 -9
  263. package/src/attr/hasAttributeNS.js +0 -10
  264. package/src/attr/removeAttribute.js +0 -9
  265. package/src/attr/removeAttributeNS.js +0 -10
  266. package/src/attr/setAttribute.js +0 -10
  267. package/src/attr/setAttributeNS.js +0 -11
  268. package/src/boolean/isApple.js +0 -13
  269. package/src/boolean/support3DTransform.js +0 -9
  270. package/src/boolean/supportAnimation.js +0 -9
  271. package/src/boolean/supportTouch.js +0 -7
  272. package/src/boolean/supportTransform.js +0 -9
  273. package/src/boolean/supportTransition.js +0 -9
  274. package/src/class/addClass.js +0 -10
  275. package/src/class/hasClass.js +0 -10
  276. package/src/class/removeClass.js +0 -10
  277. package/src/event/off.js +0 -9
  278. package/src/event/on.js +0 -9
  279. package/src/event/one.js +0 -23
  280. package/src/get/getDocumentBody.js +0 -10
  281. package/src/get/getDocumentElement.js +0 -11
  282. package/src/get/getDocumentHead.js +0 -10
  283. package/src/get/getElementAnimationDelayLegacy.js +0 -21
  284. package/src/get/getElementAnimationDurationLegacy.js +0 -21
  285. package/src/get/getElementStyle.js +0 -20
  286. package/src/get/getElementTransitionDelayLegacy.js +0 -21
  287. package/src/get/getElementTransitionDurationLegacy.js +0 -21
  288. package/src/get/getUID.js +0 -34
  289. package/src/is/isArray.js +0 -8
  290. package/src/is/isCustomElement.js +0 -8
  291. package/src/is/isDocument.js +0 -10
  292. package/src/is/isElementsArray.js +0 -12
  293. package/src/is/isFunction.js +0 -8
  294. package/src/is/isHTMLCollection.js +0 -8
  295. package/src/is/isHTMLElement.js +0 -9
  296. package/src/is/isHTMLImageElement.js +0 -8
  297. package/src/is/isMedia.js +0 -14
  298. package/src/is/isNode.js +0 -9
  299. package/src/is/isNodeList.js +0 -9
  300. package/src/is/isNumber.js +0 -8
  301. package/src/is/isObject.js +0 -8
  302. package/src/is/isRTL.js +0 -9
  303. package/src/is/isSVGElement.js +0 -11
  304. package/src/is/isShadowRoot.js +0 -9
  305. package/src/is/isString.js +0 -8
  306. package/src/is/isTableElement.js +0 -11
  307. package/src/is/isWindow.js +0 -9
  308. package/src/misc/ArrayFrom.js +0 -8
  309. package/src/misc/Float32ArrayFrom.js +0 -7
  310. package/src/misc/Float64ArrayFrom.js +0 -7
  311. package/src/misc/ObjectAssign.js +0 -7
  312. package/src/misc/ObjectEntries.js +0 -7
  313. package/src/misc/ObjectKeys.js +0 -7
  314. package/src/misc/ObjectValues.js +0 -7
  315. package/src/misc/OriginalEvent.js +0 -20
  316. package/src/misc/createElement.js +0 -27
  317. package/src/misc/createElementNS.js +0 -30
  318. package/src/misc/data.js +0 -78
  319. package/src/misc/dispatchEvent.js +0 -8
  320. package/src/misc/distinct.js +0 -10
  321. package/src/misc/emulateAnimationEndLegacy.js +0 -41
  322. package/src/misc/emulateTransitionEndLegacy.js +0 -41
  323. package/src/misc/focus.js +0 -7
  324. package/src/misc/normalizeOptions.js +0 -49
  325. package/src/misc/normalizeValue.js +0 -34
  326. package/src/misc/passiveHandlerLegacy.js +0 -10
  327. package/src/misc/reflow.js +0 -8
  328. package/src/misc/setElementStyle.js +0 -19
  329. package/src/misc/timer.js +0 -75
  330. package/src/misc/toLowerCase.js +0 -8
  331. package/src/misc/toUpperCase.js +0 -8
  332. package/src/misc/version.js +0 -8
  333. package/src/selectors/closest.js +0 -16
  334. package/src/selectors/getElementById.js +0 -14
  335. package/src/selectors/getElementsByClassName.js +0 -15
  336. package/src/selectors/getElementsByTagName.js +0 -15
  337. package/src/selectors/matches.js +0 -10
  338. package/src/selectors/matchesLegacy.js +0 -23
  339. package/src/selectors/querySelector.js +0 -19
  340. package/src/strings/animationDelayLegacy.js +0 -9
  341. package/src/strings/animationDurationLegacy.js +0 -9
  342. package/src/strings/animationEndEventLegacy.js +0 -9
  343. package/src/strings/animationNameLegacy.js +0 -9
  344. package/src/strings/mouseHoverEvents.js +0 -7
  345. package/src/strings/touchEvents.js +0 -8
  346. package/src/strings/transitionDelayLegacy.js +0 -9
  347. package/src/strings/transitionDurationLegacy.js +0 -9
  348. package/src/strings/transitionEndEventLegacy.js +0 -9
  349. package/src/strings/transitionPropertyLegacy.js +0 -12
  350. package/src/strings/userAgentData.js +0 -7
  351. package/types/index.d.ts +0 -257
  352. package/types/module/shorty.ts +0 -248
  353. package/types/shorty.d.ts +0 -2316
@@ -0,0 +1,84 @@
1
+ import isMap from '../is/isMap';
2
+ import isHTMLElement from '../is/isHTMLElement';
3
+ import isNumber from '../is/isNumber';
4
+
5
+ type KeyMap = Map<string, number>;
6
+ type TimeMap = Map<HTMLElement, number | KeyMap>;
7
+
8
+ const TimeCache: TimeMap = new Map() as TimeMap;
9
+ /**
10
+ * An interface for one or more `TimerHandler`s per `Element`.
11
+ *
12
+ * @see https://github.com/thednp/navbar/
13
+ */
14
+ const Timer = {
15
+ /**
16
+ * Sets a new timeout timer for an element, or element -> key association.
17
+ *
18
+ * @param element target element
19
+ * @param callback the callback
20
+ * @param delay the execution delay
21
+ * @param key a unique key
22
+ */
23
+ set: (element: HTMLElement, callback: TimerHandler, delay: number, key?: string): void => {
24
+ if (!isHTMLElement(element)) return;
25
+
26
+ /* istanbul ignore else */
27
+ if (key && key.length) {
28
+ /* istanbul ignore else */
29
+ if (!TimeCache.has(element)) {
30
+ TimeCache.set(element, new Map());
31
+ }
32
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
33
+ (TimeCache.get(element) as KeyMap).set(key, setTimeout(callback, delay));
34
+ } else {
35
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
36
+ TimeCache.set(element, setTimeout(callback, delay));
37
+ }
38
+ },
39
+
40
+ /**
41
+ * Returns the timer associated with the target.
42
+ *
43
+ * @param element target element
44
+ * @param key a unique
45
+ * @returns the timer
46
+ */
47
+ get: (element: HTMLElement, key?: string): number | null => {
48
+ if (!isHTMLElement(element)) return null;
49
+ const keyTimers = TimeCache.get(element);
50
+
51
+ if (key && keyTimers && isMap(keyTimers as KeyMap)) {
52
+ return (keyTimers as KeyMap).get(key) || /* istanbul ignore next */ null;
53
+ } else if (isNumber(keyTimers as number)) {
54
+ return keyTimers as number;
55
+ }
56
+ return null;
57
+ },
58
+
59
+ /**
60
+ * Clears the element's timer.
61
+ *
62
+ * @param element target element
63
+ * @param key a unique key
64
+ */
65
+ clear: (element: HTMLElement, key?: string): void => {
66
+ if (!isHTMLElement(element)) return;
67
+
68
+ const keyTimers = TimeCache.get(element);
69
+
70
+ if (key && key.length && isMap(keyTimers as KeyMap)) {
71
+ clearTimeout((keyTimers as KeyMap).get(key));
72
+ (keyTimers as KeyMap).delete(key);
73
+ /* istanbul ignore else */
74
+ if ((keyTimers as KeyMap).size === 0) {
75
+ TimeCache.delete(element);
76
+ }
77
+ } else {
78
+ clearTimeout(keyTimers as number);
79
+ TimeCache.delete(element);
80
+ }
81
+ },
82
+ };
83
+
84
+ export default Timer;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shortcut for `String.toLowerCase()`.
3
+ *
4
+ * @param source input string
5
+ * @returns lowercase output string
6
+ */
7
+ const toLowerCase = (source: string): string => source.toLowerCase();
8
+
9
+ export default toLowerCase;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shortcut for `String.toUpperCase()`.
3
+ *
4
+ * @param source input string
5
+ * @returns uppercase output string
6
+ */
7
+ const toUpperCase = (source: string): string => source.toUpperCase();
8
+
9
+ export default toUpperCase;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shortcut for `HTMLElement.closest` method which also works
3
+ * with children of `ShadowRoot`. The order of the parameters
4
+ * is intentional since they're both required.
5
+ *
6
+ * @see https://stackoverflow.com/q/54520554/803358
7
+ *
8
+ * @param element Element to look into
9
+ * @param selector the selector name
10
+ * @return the query result
11
+ */
12
+ const closest = (element: HTMLElement, selector: string): HTMLElement | null => {
13
+ return element
14
+ ? element.closest(selector) ||
15
+ // break out of `ShadowRoot`
16
+ closest((element.getRootNode() as HTMLElement & { host: HTMLElement }).host, selector)
17
+ : null;
18
+ };
19
+
20
+ export default closest;
@@ -1,16 +1,20 @@
1
1
  import isCustomElement from '../is/isCustomElement';
2
2
  import getElementsByTagName from './getElementsByTagName';
3
+ import type { CustomElement } from '../interface/customElement';
3
4
 
4
5
  /**
5
6
  * Returns an `Array` of `Node` elements that are registered as
6
7
  * `CustomElement`.
8
+ *
7
9
  * @see https://stackoverflow.com/questions/27334365/how-to-get-list-of-registered-custom-elements
8
10
  *
9
- * @param {ParentNode=} parent parent to look into
10
- * @returns {Array<HTMLElement>} the query result
11
+ * @param parent parent to look into
12
+ * @returns the query result
11
13
  */
12
- export default function getCustomElements(parent) {
14
+ const getCustomElements = (parent?: ParentNode): CustomElement[] => {
13
15
  const collection = getElementsByTagName('*', parent);
14
16
 
15
17
  return [...collection].filter(isCustomElement);
16
- }
18
+ };
19
+
20
+ export default getCustomElements;
@@ -0,0 +1,16 @@
1
+ import getDocument from '../get/getDocument';
2
+
3
+ /**
4
+ * Returns an `HTMLElement` that matches the id in the document.
5
+ * Within multiple <iframe> elements, a `parent` parameter
6
+ * would decisively locate the correct element.
7
+ *
8
+ * @param id the ID selector
9
+ * @param context an element in it's document or document
10
+ * @returns the requested element
11
+ */
12
+ const getElementById = (id: string, context?: Node): HTMLElement | null => {
13
+ return getDocument(context).getElementById(id) || null;
14
+ };
15
+
16
+ export default getElementById;
@@ -0,0 +1,22 @@
1
+ import getDocument from '../get/getDocument';
2
+ import isNode from '../is/isNode';
3
+
4
+ /**
5
+ * Shortcut for `HTMLElement.getElementsByClassName` method. Some `Node` elements
6
+ * like `ShadowRoot` do not support `getElementsByClassName`.
7
+ *
8
+ * @param selector the class name
9
+ * @param parent optional Element to look into
10
+ * @return the 'HTMLCollection'
11
+ */
12
+ const getElementsByClassName = (
13
+ selector: string,
14
+ parent?: ParentNode,
15
+ ): HTMLCollectionOf<HTMLElement> => {
16
+ const lookUp = parent && isNode(parent) ? parent : getDocument();
17
+ return (lookUp as HTMLElement | Document).getElementsByClassName(
18
+ selector,
19
+ ) as HTMLCollectionOf<HTMLElement>;
20
+ };
21
+
22
+ export default getElementsByClassName;
@@ -0,0 +1,20 @@
1
+ import getDocument from '../get/getDocument';
2
+ import isNode from '../is/isNode';
3
+
4
+ /**
5
+ * Shortcut for `HTMLElement.getElementsByTagName` method. Some `Node` elements
6
+ * like `ShadowRoot` do not support `getElementsByTagName`.
7
+ *
8
+ * @param selector the tag name
9
+ * @param parent optional Element to look into
10
+ * @return the 'HTMLCollection'
11
+ */
12
+ const getElementsByTagName = (
13
+ selector: string,
14
+ parent?: ParentNode,
15
+ ): HTMLCollectionOf<HTMLElement> => {
16
+ const lookUp = isNode(parent) ? parent : getDocument();
17
+ return (lookUp as Document).getElementsByTagName(selector) as HTMLCollectionOf<HTMLElement>;
18
+ };
19
+
20
+ export default getElementsByTagName;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Check if element matches a CSS selector.
3
+ *
4
+ * @param target the target element
5
+ * @param selector the selector to match
6
+ * @returns the query result
7
+ */
8
+ const matches = (target: Element, selector: string): boolean => target.matches(selector);
9
+
10
+ export default matches;
@@ -0,0 +1,22 @@
1
+ import getDocument from '../get/getDocument';
2
+ import isNode from '../is/isNode';
3
+ import isHTMLElement from '../is/isHTMLElement';
4
+
5
+ /**
6
+ * Utility to check if target is typeof `HTMLElement`, `Element`, `Node`
7
+ * or find one that matches a selector.
8
+ *
9
+ * @param selector the input selector or target element
10
+ * @param parent optional node to look into
11
+ * @return the `HTMLElement` or `querySelector` result
12
+ */
13
+ const querySelector = (selector: HTMLElement | string, parent?: ParentNode): HTMLElement | null => {
14
+ if (isHTMLElement(selector)) {
15
+ return selector;
16
+ }
17
+ const lookUp = isNode(parent) ? parent : getDocument();
18
+
19
+ return lookUp.querySelector(selector);
20
+ };
21
+
22
+ export default querySelector;
@@ -4,11 +4,13 @@ import isNode from '../is/isNode';
4
4
  /**
5
5
  * A shortcut for `(document|Element).querySelectorAll`.
6
6
  *
7
- * @param {string} selector the input selector
8
- * @param {ParentNode=} parent optional node to look into
9
- * @return {NodeListOf<HTMLElement>} the query result
7
+ * @param selector the input selector
8
+ * @param parent optional node to look into
9
+ * @return the query result
10
10
  */
11
- export default function querySelectorAll(selector, parent) {
11
+ const querySelectorAll = (selector: string, parent?: ParentNode): NodeListOf<HTMLElement> => {
12
12
  const lookUp = isNode(parent) ? parent : getDocument();
13
13
  return lookUp.querySelectorAll(selector);
14
- }
14
+ };
15
+
16
+ export default querySelectorAll;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `DOMContentLoaded` event.
3
- * @type {string}
4
3
  */
5
4
  const DOMContentLoadedEvent = 'DOMContentLoaded';
6
5
  export default DOMContentLoadedEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `DOMMouseScroll` event.
3
- * @type {string}
4
3
  */
5
4
  const DOMMouseScrollEvent = 'DOMMouseScroll';
6
5
  export default DOMMouseScrollEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `abort` event.
3
- * @type {string}
4
3
  */
5
4
  const abortEvent = 'abort';
6
5
  export default abortEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for 'addEventListener' string.
3
- * @type {string}
4
3
  */
5
4
  const addEventListener = 'addEventListener';
6
5
  export default addEventListener;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for 'animationDelay' string.
3
- * @type {string}
4
3
  */
5
4
  const animationDelay = 'animationDelay';
6
5
  export default animationDelay;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for 'animationDuration' string.
3
- * @type {string}
4
3
  */
5
4
  const animationDuration = 'animationDuration';
6
5
  export default animationDuration;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for 'animationend' string.
3
- * @type {string}
4
3
  */
5
4
  const animationEndEvent = 'animationend';
6
5
  export default animationEndEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for 'animationName' string.
3
- * @type {string}
4
3
  */
5
4
  const animationName = 'animationName';
6
5
  export default animationName;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-checked.
3
- * @type {string}
4
3
  */
5
4
  const ariaChecked = 'aria-checked';
6
5
  export default ariaChecked;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-describedby.
3
- * @type {string}
4
3
  */
5
4
  const ariaDescribedBy = 'aria-describedby';
6
5
  export default ariaDescribedBy;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-description.
3
- * @type {string}
4
3
  */
5
4
  const ariaDescription = 'aria-description';
6
5
  export default ariaDescription;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-expanded.
3
- * @type {string}
4
3
  */
5
4
  const ariaExpanded = 'aria-expanded';
6
5
  export default ariaExpanded;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-haspopup.
3
- * @type {string}
4
3
  */
5
4
  const ariaHasPopup = 'aria-haspopup';
6
5
  export default ariaHasPopup;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-hidden.
3
- * @type {string}
4
3
  */
5
4
  const ariaHidden = 'aria-hidden';
6
5
  export default ariaHidden;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-label.
3
- * @type {string}
4
3
  */
5
4
  const ariaLabel = 'aria-label';
6
5
  export default ariaLabel;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-labelledby.
3
- * @type {string}
4
3
  */
5
4
  const ariaLabelledBy = 'aria-labelledby';
6
5
  export default ariaLabelledBy;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-modal.
3
- * @type {string}
4
3
  */
5
4
  const ariaModal = 'aria-modal';
6
5
  export default ariaModal;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-pressed.
3
- * @type {string}
4
3
  */
5
4
  const ariaPressed = 'aria-pressed';
6
5
  export default ariaPressed;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-selected.
3
- * @type {string}
4
3
  */
5
4
  const ariaSelected = 'aria-selected';
6
5
  export default ariaSelected;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-valuemax.
3
- * @type {string}
4
3
  */
5
4
  const ariaValueMax = 'aria-valuemax';
6
5
  export default ariaValueMax;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-valuemin.
3
- * @type {string}
4
3
  */
5
4
  const ariaValueMin = 'aria-valuemin';
6
5
  export default ariaValueMin;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-valuenow.
3
- * @type {string}
4
3
  */
5
4
  const ariaValueNow = 'aria-valuenow';
6
5
  export default ariaValueNow;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for aria-valuetext.
3
- * @type {string}
4
3
  */
5
4
  const ariaValueText = 'aria-valuetext';
6
5
  export default ariaValueText;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `beforeunload` event.
3
- * @type {string}
4
3
  */
5
4
  const beforeunloadEvent = 'beforeunload';
6
5
  export default beforeunloadEvent;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * A global namespace for predefined
3
3
  * CSS3 'cubic-bezier()' easing functions.
4
- * @type {Record<string, string>}
5
4
  */
6
5
  const bezierEasings = {
7
6
  linear: 'linear',
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `blur` event.
3
- * @type {string}
4
3
  */
5
4
  const blurEvent = 'blur';
6
5
  export default blurEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `change` event.
3
- * @type {string}
4
3
  */
5
4
  const changeEvent = 'change';
6
5
  export default changeEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `contextmenu` event.
3
- * @type {string}
4
3
  */
5
4
  const contextmenuEvent = 'contextmenu';
6
5
  export default contextmenuEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `drag` event.
3
+ */
4
+ const dragEvent = 'drag';
5
+ export default dragEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `dragend` event.
3
+ */
4
+ const dragendEvent = 'dragend';
5
+ export default dragendEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `dragenter` event.
3
+ */
4
+ const dragenterEvent = 'dragenter';
5
+ export default dragenterEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `dragleave` event.
3
+ */
4
+ const dragleaveEvent = 'dragleave';
5
+ export default dragleaveEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `dragover` event.
3
+ */
4
+ const dragoverEvent = 'dragover';
5
+ export default dragoverEvent;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A global namespace for `dragstart` event.
3
+ */
4
+ const dragstartEvent = 'dragstart';
5
+ export default dragstartEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `error` event.
3
- * @type {string}
4
3
  */
5
4
  const errorEvent = 'error';
6
5
  export default errorEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `focus` event.
3
- * @type {string}
4
3
  */
5
4
  const focusEvent = 'focus';
6
5
  export default focusEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for focus event names.
3
- * @type {{in: string, out: string}}
4
3
  */
5
4
  const focusEvents = { in: 'focusin', out: 'focusout' };
6
5
  export default focusEvents;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `focusin` event.
3
- * @type {string}
4
3
  */
5
4
  const focusinEvent = 'focusin';
6
5
  export default focusinEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `focusout` event.
3
- * @type {string}
4
3
  */
5
4
  const focusoutEvent = 'focusout';
6
5
  export default focusoutEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `gesturechange` event.
3
- * @type {string}
4
3
  */
5
4
  const gesturechangeEvent = 'gesturechange';
6
5
  export default gesturechangeEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `gestureend` event.
3
- * @type {string}
4
3
  */
5
4
  const gestureendEvent = 'gestureend';
6
5
  export default gestureendEvent;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * A global namespace for `gesturestart` event.
3
- * @type {string}
4
3
  */
5
4
  const gesturestartEvent = 'gesturestart';
6
5
  export default gesturestartEvent;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * A global namespace for `Alt` key.
3
- * @type {string} e.which = 18
3
+ * e.which = 18
4
4
  */
5
5
  const keyAlt = 'Alt';
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * A global namespace for `ArrowDown` key.
3
- * @type {string} e.which = 40 equivalent
3
+ * e.which = 40 equivalent
4
4
  */
5
5
  const keyArrowDown = 'ArrowDown';
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * A global namespace for `ArrowLeft` key.
3
- * @type {string} e.which = 37 equivalent
3
+ * e.which = 37 equivalent
4
4
  */
5
5
  const keyArrowLeft = 'ArrowLeft';
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * A global namespace for `ArrowRight` key.
3
- * @type {string} e.which = 39 equivalent
3
+ * e.which = 39 equivalent
4
4
  */
5
5
  const keyArrowRight = 'ArrowRight';
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * A global namespace for `ArrowUp` key.
3
- * @type {string} e.which = 38 equivalent
3
+ * e.which = 38 equivalent
4
4
  */
5
5
  const keyArrowUp = 'ArrowUp';
6
6