orion-design 0.1.31 → 0.1.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. package/README.md +5 -5
  2. package/dist/Throne/index.js +14 -30
  3. package/dist/Throne/index.js.map +1 -1
  4. package/dist/components/Button/index.js +33 -40
  5. package/dist/components/Button/index.js.map +1 -1
  6. package/dist/components/Flex/index.js +89 -122
  7. package/dist/components/Flex/index.js.map +1 -1
  8. package/dist/components/Form/Form.js +2 -2
  9. package/dist/components/Form/Form.js.map +1 -1
  10. package/dist/components/Form/LovInput/LovInput.js +2 -2
  11. package/dist/components/Form/LovInput/LovInput.js.map +1 -1
  12. package/dist/components/Form/LovInput/hooks/useLov.js +5 -5
  13. package/dist/components/Form/LovInput/hooks/useLov.js.map +1 -1
  14. package/dist/components/Form/LovInput/index.js +4 -4
  15. package/dist/components/Form/hooks/FormItemValidateTrigger.js +2 -2
  16. package/dist/components/Form/hooks/FormItemValidateTrigger.js.map +1 -1
  17. package/dist/components/Form/hooks/index.js +68 -127
  18. package/dist/components/Form/hooks/index.js.map +1 -1
  19. package/dist/components/Form/index.js +656 -836
  20. package/dist/components/Form/index.js.map +1 -1
  21. package/dist/components/Form/utils/index.js +18 -30
  22. package/dist/components/Form/utils/index.js.map +1 -1
  23. package/dist/components/LovTable/LovPagetable.vue.d.ts +492 -0
  24. package/dist/components/LovTable/index.d.ts +246 -0
  25. package/dist/components/LovTable/index.js +106 -179
  26. package/dist/components/LovTable/index.js.map +1 -1
  27. package/dist/components/Modal/index.js +56 -111
  28. package/dist/components/Modal/index.js.map +1 -1
  29. package/dist/components/Modal/types.d.ts +1 -1
  30. package/dist/components/Modal/types.js +3 -4
  31. package/dist/components/Modal/types.js.map +1 -1
  32. package/dist/components/Modal/useModal.js +5 -5
  33. package/dist/components/Modal/useModal.js.map +1 -1
  34. package/dist/components/Pagetable/Pagetable.d.ts +92 -1
  35. package/dist/components/Pagetable/columns/PagetableColumnButtongroup.d.ts +13 -0
  36. package/dist/components/Pagetable/columns/PagetableColumnDate.d.ts +13 -0
  37. package/dist/components/Pagetable/columns/PagetableColumnLink.d.ts +13 -0
  38. package/dist/components/Pagetable/columns/PagetableColumnMultiselect.d.ts +13 -0
  39. package/dist/components/Pagetable/columns/PagetableColumnNumber.d.ts +13 -0
  40. package/dist/components/Pagetable/columns/PagetableColumnSingleselect.d.ts +13 -0
  41. package/dist/components/Pagetable/columns/PagetableColumnString.d.ts +13 -0
  42. package/dist/components/Pagetable/hooks/useColumns.js +85 -88
  43. package/dist/components/Pagetable/hooks/useColumns.js.map +1 -1
  44. package/dist/components/Pagetable/index.d.ts +155 -0
  45. package/dist/components/Pagetable/index.js +596 -683
  46. package/dist/components/Pagetable/index.js.map +1 -1
  47. package/dist/components/Pagetable/utils/index.js +54 -92
  48. package/dist/components/Pagetable/utils/index.js.map +1 -1
  49. package/dist/components/Querytable/hooks/useColumns.js +74 -82
  50. package/dist/components/Querytable/hooks/useColumns.js.map +1 -1
  51. package/dist/components/Querytable/index.js +469 -579
  52. package/dist/components/Querytable/index.js.map +1 -1
  53. package/dist/components/Querytable/utils/index.js +54 -92
  54. package/dist/components/Querytable/utils/index.js.map +1 -1
  55. package/dist/components/RichTextEditor/index.js +74 -100
  56. package/dist/components/RichTextEditor/index.js.map +1 -1
  57. package/dist/components/Tabs/constants.js +2 -2
  58. package/dist/components/Tabs/constants.js.map +1 -1
  59. package/dist/components/Tabs/index.js +358 -603
  60. package/dist/components/Tabs/index.js.map +1 -1
  61. package/dist/components/Tabs/tab-bar.js +6 -6
  62. package/dist/components/Tabs/tab-bar.js.map +1 -1
  63. package/dist/components/Tabs/tab-pane.js +3 -3
  64. package/dist/components/Tabs/tab-pane.js.map +1 -1
  65. package/dist/components/_constants/aria.js +2 -2
  66. package/dist/components/_constants/aria.js.map +1 -1
  67. package/dist/components/_constants/event.js +4 -6
  68. package/dist/components/_constants/event.js.map +1 -1
  69. package/dist/components/_constants/index.js +6 -6
  70. package/dist/components/_hooks/index.js +7 -7
  71. package/dist/components/_hooks/use-namespace/index.js +39 -74
  72. package/dist/components/_hooks/use-namespace/index.js.map +1 -1
  73. package/dist/components/_hooks/use-ordered-children/index.js +19 -29
  74. package/dist/components/_hooks/use-ordered-children/index.js.map +1 -1
  75. package/dist/components/_util/arrays.js +5 -9
  76. package/dist/components/_util/arrays.js.map +1 -1
  77. package/dist/components/_util/browser.js +6 -6
  78. package/dist/components/_util/browser.js.map +1 -1
  79. package/dist/components/_util/classNames.js +17 -22
  80. package/dist/components/_util/classNames.js.map +1 -1
  81. package/dist/components/_util/dom/aria.js +39 -74
  82. package/dist/components/_util/dom/aria.js.map +1 -1
  83. package/dist/components/_util/dom/element.js +8 -9
  84. package/dist/components/_util/dom/element.js.map +1 -1
  85. package/dist/components/_util/dom/event.js +7 -14
  86. package/dist/components/_util/dom/event.js.map +1 -1
  87. package/dist/components/_util/dom/index.js +36 -36
  88. package/dist/components/_util/dom/position.js +25 -49
  89. package/dist/components/_util/dom/position.js.map +1 -1
  90. package/dist/components/_util/dom/scroll.js +61 -103
  91. package/dist/components/_util/dom/scroll.js.map +1 -1
  92. package/dist/components/_util/dom/style.js +50 -65
  93. package/dist/components/_util/dom/style.js.map +1 -1
  94. package/dist/components/_util/easings.js +4 -8
  95. package/dist/components/_util/easings.js.map +1 -1
  96. package/dist/components/_util/error.js +11 -12
  97. package/dist/components/_util/error.js.map +1 -1
  98. package/dist/components/_util/functions.js +3 -3
  99. package/dist/components/_util/i18n.js +2 -2
  100. package/dist/components/_util/i18n.js.map +1 -1
  101. package/dist/components/_util/index.js +137 -137
  102. package/dist/components/_util/isValid.js +2 -4
  103. package/dist/components/_util/isValid.js.map +1 -1
  104. package/dist/components/_util/objects.js +14 -18
  105. package/dist/components/_util/objects.js.map +1 -1
  106. package/dist/components/_util/props-util/index.js +20 -46
  107. package/dist/components/_util/props-util/index.js.map +1 -1
  108. package/dist/components/_util/props-util/initDefaultProps.js +10 -18
  109. package/dist/components/_util/props-util/initDefaultProps.js.map +1 -1
  110. package/dist/components/_util/raf.js +4 -5
  111. package/dist/components/_util/raf.js.map +1 -1
  112. package/dist/components/_util/rand.js +3 -4
  113. package/dist/components/_util/rand.js.map +1 -1
  114. package/dist/components/_util/strings.js +8 -9
  115. package/dist/components/_util/strings.js.map +1 -1
  116. package/dist/components/_util/throttleByRaf.js +10 -16
  117. package/dist/components/_util/throttleByRaf.js.map +1 -1
  118. package/dist/components/_util/type.js +38 -41
  119. package/dist/components/_util/type.js.map +1 -1
  120. package/dist/components/_util/types.js +22 -41
  121. package/dist/components/_util/types.js.map +1 -1
  122. package/dist/components/_util/typescript.js +2 -2
  123. package/dist/components/_util/typescript.js.map +1 -1
  124. package/dist/components/_util/util.js +43 -85
  125. package/dist/components/_util/util.js.map +1 -1
  126. package/dist/components/_util/vue/global-node.js +15 -27
  127. package/dist/components/_util/vue/global-node.js.map +1 -1
  128. package/dist/components/_util/vue/icon.js +25 -29
  129. package/dist/components/_util/vue/icon.js.map +1 -1
  130. package/dist/components/_util/vue/index.js +41 -41
  131. package/dist/components/_util/vue/install.js +18 -35
  132. package/dist/components/_util/vue/install.js.map +1 -1
  133. package/dist/components/_util/vue/props/index.js +6 -6
  134. package/dist/components/_util/vue/props/runtime.js +30 -46
  135. package/dist/components/_util/vue/props/runtime.js.map +1 -1
  136. package/dist/components/_util/vue/refs.js +6 -12
  137. package/dist/components/_util/vue/refs.js.map +1 -1
  138. package/dist/components/_util/vue/size.js +3 -5
  139. package/dist/components/_util/vue/size.js.map +1 -1
  140. package/dist/components/_util/vue/validator.js +4 -5
  141. package/dist/components/_util/vue/validator.js.map +1 -1
  142. package/dist/components/_util/vue/vnode.js +54 -100
  143. package/dist/components/_util/vue/vnode.js.map +1 -1
  144. package/dist/components/_util/vue-types/index.js +220 -231
  145. package/dist/components/_util/vue-types/index.js.map +1 -1
  146. package/dist/components/components.js +20 -20
  147. package/dist/components/index.js +35 -38
  148. package/dist/components/index.js.map +1 -1
  149. package/dist/error/OrionError.js +4 -8
  150. package/dist/error/OrionError.js.map +1 -1
  151. package/dist/index.css +1 -797
  152. package/dist/index.js +36 -36
  153. package/dist/print/LodopFuncs.js +43 -101
  154. package/dist/print/LodopFuncs.js.map +1 -1
  155. package/dist/print/index.js +108 -200
  156. package/dist/print/index.js.map +1 -1
  157. package/dist/request/ErrorHandlerChain.js +14 -17
  158. package/dist/request/ErrorHandlerChain.js.map +1 -1
  159. package/dist/request/RequestFilterChain.js +13 -16
  160. package/dist/request/RequestFilterChain.js.map +1 -1
  161. package/dist/request/ResponseParserChain.js +14 -17
  162. package/dist/request/ResponseParserChain.js.map +1 -1
  163. package/dist/request/disivion/DateSerializer.js +22 -47
  164. package/dist/request/disivion/DateSerializer.js.map +1 -1
  165. package/dist/request/disivion/DivisionErrorHandler.js +25 -40
  166. package/dist/request/disivion/DivisionErrorHandler.js.map +1 -1
  167. package/dist/request/disivion/DivisionResponseParser.js +10 -16
  168. package/dist/request/disivion/DivisionResponseParser.js.map +1 -1
  169. package/dist/request/disivion/index.js +201 -305
  170. package/dist/request/disivion/index.js.map +1 -1
  171. package/dist/request/error/BizExceptionResponseError.js +5 -11
  172. package/dist/request/error/BizExceptionResponseError.js.map +1 -1
  173. package/dist/request/error/ExceptionResponseError.js +5 -11
  174. package/dist/request/error/ExceptionResponseError.js.map +1 -1
  175. package/dist/request/error/ResponseError.js +4 -9
  176. package/dist/request/error/ResponseError.js.map +1 -1
  177. package/dist/request/error/SessionExceptionResponseError.js +5 -11
  178. package/dist/request/error/SessionExceptionResponseError.js.map +1 -1
  179. package/dist/request/index.js +11 -11
  180. package/dist/utils/DateUtil.js +33 -48
  181. package/dist/utils/DateUtil.js.map +1 -1
  182. package/dist/utils/NumberUtil.js +6 -6
  183. package/dist/utils/NumberUtil.js.map +1 -1
  184. package/dist/utils/cloneDeep.js +2 -2
  185. package/dist/utils/delay.js +3 -3
  186. package/dist/utils/delay.js.map +1 -1
  187. package/dist/utils/functions.js +3 -3
  188. package/dist/utils/index.js +12 -12
  189. package/dist/utils/md5.js +93 -191
  190. package/dist/utils/md5.js.map +1 -1
  191. package/dist/utils/uuid.js +25 -35
  192. package/dist/utils/uuid.js.map +1 -1
  193. package/dist/version/index.js +2 -2
  194. package/dist/version/version.d.ts +1 -1
  195. package/dist/version/version.js +2 -2
  196. package/dist/version/version.js.map +1 -1
  197. package/package.json +1 -1
  198. package/dist/_commonjsHelpers-DWwsNxpa.js +0 -9
  199. package/dist/_commonjsHelpers-DWwsNxpa.js.map +0 -1
  200. package/dist/components-B3d9m_tn.js +0 -27
  201. package/dist/components-B3d9m_tn.js.map +0 -1
  202. package/dist/functions-BeMkokbY.js +0 -63
  203. package/dist/functions-BeMkokbY.js.map +0 -1
  204. package/dist/index-BOKLZnqH.js +0 -54
  205. package/dist/index-BOKLZnqH.js.map +0 -1
  206. package/dist/index-D1m0KTpK.js +0 -69
  207. package/dist/index-D1m0KTpK.js.map +0 -1
  208. package/dist/index-DR5ZP7mD.js +0 -160
  209. package/dist/index-DR5ZP7mD.js.map +0 -1
  210. package/dist/index-DkwIULcN.js +0 -200
  211. package/dist/index-DkwIULcN.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"aria.js","sources":["../../../../src/components/_util/dom/aria.ts"],"sourcesContent":["const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])`\r\n\r\n/**\r\n * Determine if the testing element is visible on screen no matter if its on the viewport or not\r\n */\r\nexport const isVisible = (element: HTMLElement) => {\r\n if (process.env.NODE_ENV === 'test') return true\r\n const computed = getComputedStyle(element)\r\n // element.offsetParent won't work on fix positioned\r\n // WARNING: potential issue here, going to need some expert advices on this issue\r\n return computed.position === 'fixed' ? false : element.offsetParent !== null\r\n}\r\n\r\nexport const obtainAllFocusableElements = (\r\n element: HTMLElement\r\n): HTMLElement[] => {\r\n return Array.from(\r\n element.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENT_SELECTORS)\r\n ).filter((item: HTMLElement) => isFocusable(item) && isVisible(item))\r\n}\r\n\r\n/**\r\n * @desc Determine if target element is focusable\r\n * @param element {HTMLElement}\r\n * @returns {Boolean} true if it is focusable\r\n */\r\nexport const isFocusable = (element: HTMLElement): boolean => {\r\n if (\r\n element.tabIndex > 0 ||\r\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\r\n ) {\r\n return true\r\n }\r\n // HTMLButtonElement has disabled\r\n if ((element as HTMLButtonElement).disabled) {\r\n return false\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'A': {\r\n // casting current element to Specific HTMLElement in order to be more type precise\r\n return (\r\n !!(element as HTMLAnchorElement).href &&\r\n (element as HTMLAnchorElement).rel !== 'ignore'\r\n )\r\n }\r\n case 'INPUT': {\r\n return !(\r\n (element as HTMLInputElement).type === 'hidden' ||\r\n (element as HTMLInputElement).type === 'file'\r\n )\r\n }\r\n case 'BUTTON':\r\n case 'SELECT':\r\n case 'TEXTAREA': {\r\n return true\r\n }\r\n default: {\r\n return false\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @desc Set Attempt to set focus on the current node.\r\n * @param element\r\n * The node to attempt to focus on.\r\n * @returns\r\n * true if element is focused.\r\n */\r\nexport const attemptFocus = (element: HTMLElement): boolean => {\r\n if (!isFocusable(element)) {\r\n return false\r\n }\r\n // Remove the old try catch block since there will be no error to be thrown\r\n element.focus?.()\r\n return document.activeElement === element\r\n}\r\n\r\n/**\r\n * Trigger an event\r\n * mouseenter, mouseleave, mouseover, keyup, change, click, etc.\r\n * @param {HTMLElement} elm\r\n * @param {String} name\r\n * @param {*} opts\r\n */\r\nexport const triggerEvent = function (\r\n elm: HTMLElement,\r\n name: string,\r\n ...opts: Array<boolean>\r\n): HTMLElement {\r\n let eventName: string\r\n\r\n if (name.includes('mouse') || name.includes('click')) {\r\n eventName = 'MouseEvents'\r\n } else if (name.includes('key')) {\r\n eventName = 'KeyboardEvent'\r\n } else {\r\n eventName = 'HTMLEvents'\r\n }\r\n const evt = document.createEvent(eventName)\r\n\r\n evt.initEvent(name, ...opts)\r\n elm.dispatchEvent(evt)\r\n return elm\r\n}\r\n\r\nexport const isLeaf = (el: HTMLElement) => !el.getAttribute('aria-owns')\r\n\r\nexport const getSibling = (\r\n el: HTMLElement,\r\n distance: number,\r\n elClass: string\r\n) => {\r\n const { parentNode } = el\r\n if (!parentNode) return null\r\n const siblings = parentNode.querySelectorAll(elClass)\r\n const index = Array.prototype.indexOf.call(siblings, el)\r\n return siblings[index + distance] || null\r\n}\r\n\r\nexport const focusNode = (el: HTMLElement) => {\r\n if (!el) return\r\n el.focus()\r\n !isLeaf(el) && el.click()\r\n}\r\n"],"names":[],"mappings":"AAAA,MAAM,8BAA8B;AAKvB,MAAA,YAAY,CAAC,YAAyB;AACjD,MAAI,QAAQ,IAAI,aAAa,OAAe,QAAA;AACtC,QAAA,WAAW,iBAAiB,OAAO;AAGzC,SAAO,SAAS,aAAa,UAAU,QAAQ,QAAQ,iBAAiB;AAC1E;AAEa,MAAA,6BAA6B,CACxC,YACkB;AAClB,SAAO,MAAM;AAAA,IACX,QAAQ,iBAA8B,2BAA2B;AAAA,EAAA,EACjE,OAAO,CAAC,SAAsB,YAAY,IAAI,KAAK,UAAU,IAAI,CAAC;AACtE;AAOa,MAAA,cAAc,CAAC,YAAkC;AAE1D,MAAA,QAAQ,WAAW,KAClB,QAAQ,aAAa,KAAK,QAAQ,aAAa,UAAU,MAAM,MAChE;AACO,WAAA;AAAA,EACT;AAEA,MAAK,QAA8B,UAAU;AACpC,WAAA;AAAA,EACT;AAEA,UAAQ,QAAQ,UAAU;AAAA,IACxB,KAAK,KAAK;AAER,aACE,CAAC,CAAE,QAA8B,QAChC,QAA8B,QAAQ;AAAA,IAE3C;AAAA,IACA,KAAK,SAAS;AACZ,aAAO,EACJ,QAA6B,SAAS,YACtC,QAA6B,SAAS;AAAA,IAE3C;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AACR,aAAA;AAAA,IACT;AAAA,IACA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,EACF;AACF;AASa,MAAA,eAAe,CAAC,YAAkC;AAtE/D;AAuEM,MAAA,CAAC,YAAY,OAAO,GAAG;AAClB,WAAA;AAAA,EACT;AAEA,gBAAQ,UAAR;AACA,SAAO,SAAS,kBAAkB;AACpC;AASO,MAAM,eAAe,SAC1B,KACA,SACG,MACU;AACT,MAAA;AAEJ,MAAI,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,OAAO,GAAG;AACxC,gBAAA;AAAA,EACH,WAAA,KAAK,SAAS,KAAK,GAAG;AACnB,gBAAA;AAAA,EAAA,OACP;AACO,gBAAA;AAAA,EACd;AACM,QAAA,MAAM,SAAS,YAAY,SAAS;AAEtC,MAAA,UAAU,MAAM,GAAG,IAAI;AAC3B,MAAI,cAAc,GAAG;AACd,SAAA;AACT;AAEO,MAAM,SAAS,CAAC,OAAoB,CAAC,GAAG,aAAa,WAAW;AAEhE,MAAM,aAAa,CACxB,IACA,UACA,YACG;AACG,QAAA,EAAE,WAAe,IAAA;AACnB,MAAA,CAAC,WAAmB,QAAA;AAClB,QAAA,WAAW,WAAW,iBAAiB,OAAO;AACpD,QAAM,QAAQ,MAAM,UAAU,QAAQ,KAAK,UAAU,EAAE;AAChD,SAAA,SAAS,QAAQ,QAAQ,KAAK;AACvC;AAEa,MAAA,YAAY,CAAC,OAAoB;AAC5C,MAAI,CAAC,GAAI;AACT,KAAG,MAAM;AACT,GAAC,OAAO,EAAE,KAAK,GAAG,MAAM;AAC1B;"}
1
+ {"version":3,"file":"aria.js","sources":["../../../../src/components/_util/dom/aria.ts"],"sourcesContent":["const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])`\r\n\r\n/**\r\n * Determine if the testing element is visible on screen no matter if its on the viewport or not\r\n */\r\nexport const isVisible = (element: HTMLElement) => {\r\n if (process.env.NODE_ENV === 'test') return true\r\n const computed = getComputedStyle(element)\r\n // element.offsetParent won't work on fix positioned\r\n // WARNING: potential issue here, going to need some expert advices on this issue\r\n return computed.position === 'fixed' ? false : element.offsetParent !== null\r\n}\r\n\r\nexport const obtainAllFocusableElements = (\r\n element: HTMLElement\r\n): HTMLElement[] => {\r\n return Array.from(\r\n element.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENT_SELECTORS)\r\n ).filter((item: HTMLElement) => isFocusable(item) && isVisible(item))\r\n}\r\n\r\n/**\r\n * @desc Determine if target element is focusable\r\n * @param element {HTMLElement}\r\n * @returns {Boolean} true if it is focusable\r\n */\r\nexport const isFocusable = (element: HTMLElement): boolean => {\r\n if (\r\n element.tabIndex > 0 ||\r\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\r\n ) {\r\n return true\r\n }\r\n // HTMLButtonElement has disabled\r\n if ((element as HTMLButtonElement).disabled) {\r\n return false\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'A': {\r\n // casting current element to Specific HTMLElement in order to be more type precise\r\n return (\r\n !!(element as HTMLAnchorElement).href &&\r\n (element as HTMLAnchorElement).rel !== 'ignore'\r\n )\r\n }\r\n case 'INPUT': {\r\n return !(\r\n (element as HTMLInputElement).type === 'hidden' ||\r\n (element as HTMLInputElement).type === 'file'\r\n )\r\n }\r\n case 'BUTTON':\r\n case 'SELECT':\r\n case 'TEXTAREA': {\r\n return true\r\n }\r\n default: {\r\n return false\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @desc Set Attempt to set focus on the current node.\r\n * @param element\r\n * The node to attempt to focus on.\r\n * @returns\r\n * true if element is focused.\r\n */\r\nexport const attemptFocus = (element: HTMLElement): boolean => {\r\n if (!isFocusable(element)) {\r\n return false\r\n }\r\n // Remove the old try catch block since there will be no error to be thrown\r\n element.focus?.()\r\n return document.activeElement === element\r\n}\r\n\r\n/**\r\n * Trigger an event\r\n * mouseenter, mouseleave, mouseover, keyup, change, click, etc.\r\n * @param {HTMLElement} elm\r\n * @param {String} name\r\n * @param {*} opts\r\n */\r\nexport const triggerEvent = function (\r\n elm: HTMLElement,\r\n name: string,\r\n ...opts: Array<boolean>\r\n): HTMLElement {\r\n let eventName: string\r\n\r\n if (name.includes('mouse') || name.includes('click')) {\r\n eventName = 'MouseEvents'\r\n } else if (name.includes('key')) {\r\n eventName = 'KeyboardEvent'\r\n } else {\r\n eventName = 'HTMLEvents'\r\n }\r\n const evt = document.createEvent(eventName)\r\n\r\n evt.initEvent(name, ...opts)\r\n elm.dispatchEvent(evt)\r\n return elm\r\n}\r\n\r\nexport const isLeaf = (el: HTMLElement) => !el.getAttribute('aria-owns')\r\n\r\nexport const getSibling = (\r\n el: HTMLElement,\r\n distance: number,\r\n elClass: string\r\n) => {\r\n const { parentNode } = el\r\n if (!parentNode) return null\r\n const siblings = parentNode.querySelectorAll(elClass)\r\n const index = Array.prototype.indexOf.call(siblings, el)\r\n return siblings[index + distance] || null\r\n}\r\n\r\nexport const focusNode = (el: HTMLElement) => {\r\n if (!el) return\r\n el.focus()\r\n !isLeaf(el) && el.click()\r\n}\r\n"],"names":["FOCUSABLE_ELEMENT_SELECTORS","isVisible","element","obtainAllFocusableElements","item","isFocusable","attemptFocus","_a","triggerEvent","elm","name","opts","eventName","evt","isLeaf","el","getSibling","distance","elClass","parentNode","siblings","index","focusNode"],"mappings":"AAAA,MAAMA,IAA8B,8KAKvBC,IAAY,CAACC,MACpB,QAAQ,IAAI,aAAa,SAAe,KAC3B,iBAAiBA,CAAO,EAGzB,aAAa,UAAU,KAAQA,EAAQ,iBAAiB,MAG7DC,IAA6B,CACxCD,MAEO,MAAM;AAAA,EACXA,EAAQ,iBAA8BF,CAA2B;AAAA,EACjE,OAAO,CAACI,MAAsBC,EAAYD,CAAI,KAAKH,EAAUG,CAAI,CAAC,GAQzDC,IAAc,CAACH,MAAkC;AAE1D,MAAAA,EAAQ,WAAW,KAClBA,EAAQ,aAAa,KAAKA,EAAQ,aAAa,UAAU,MAAM;AAEzD,WAAA;AAGT,MAAKA,EAA8B;AAC1B,WAAA;AAGT,UAAQA,EAAQ,UAAU;AAAA,IACxB,KAAK;AAEH,aACE,CAAC,CAAEA,EAA8B,QAChCA,EAA8B,QAAQ;AAAA,IAG3C,KAAK;AACH,aAAO,EACJA,EAA6B,SAAS,YACtCA,EAA6B,SAAS;AAAA,IAG3C,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IAET;AACS,aAAA;AAAA,EAEX;AACF,GASaI,IAAe,CAACJ,MAAkC;AAtE/D,MAAAK;AAuEM,SAACF,EAAYH,CAAO,MAIxBK,IAAAL,EAAQ,UAAR,QAAAK,EAAA,KAAAL,IACO,SAAS,kBAAkBA,KAJzB;AAKX,GASaM,IAAe,SAC1BC,GACAC,MACGC,GACU;AACT,MAAAC;AAEJ,EAAIF,EAAK,SAAS,OAAO,KAAKA,EAAK,SAAS,OAAO,IACrCE,IAAA,gBACHF,EAAK,SAAS,KAAK,IAChBE,IAAA,kBAEAA,IAAA;AAER,QAAAC,IAAM,SAAS,YAAYD,CAAS;AAEtC,SAAAC,EAAA,UAAUH,GAAM,GAAGC,CAAI,GAC3BF,EAAI,cAAcI,CAAG,GACdJ;AACT,GAEaK,IAAS,CAACC,MAAoB,CAACA,EAAG,aAAa,WAAW,GAE1DC,IAAa,CACxBD,GACAE,GACAC,MACG;AACG,QAAA,EAAE,YAAAC,EAAe,IAAAJ;AACnB,MAAA,CAACI,EAAmB,QAAA;AAClB,QAAAC,IAAWD,EAAW,iBAAiBD,CAAO,GAC9CG,IAAQ,MAAM,UAAU,QAAQ,KAAKD,GAAUL,CAAE;AAChD,SAAAK,EAASC,IAAQJ,CAAQ,KAAK;AACvC,GAEaK,IAAY,CAACP,MAAoB;AAC5C,EAAKA,MACLA,EAAG,MAAM,GACT,CAACD,EAAOC,CAAE,KAAKA,EAAG,MAAM;AAC1B;"}
@@ -1,19 +1,18 @@
1
- import { e as isString } from "../../../functions-BeMkokbY.js";
1
+ import { e as t } from "../../../functions-DzLqXvGt.js";
2
2
  import "lodash-es";
3
3
  import "vue";
4
- import { i as isClient } from "../../../index-D1m0KTpK.js";
5
- const getElement = (target) => {
6
- if (!isClient || target === "") return null;
7
- if (isString(target)) {
4
+ import { i as e } from "../../../index-C9tCD90X.js";
5
+ const u = (r) => {
6
+ if (!e || r === "") return null;
7
+ if (t(r))
8
8
  try {
9
- return document.querySelector(target);
9
+ return document.querySelector(r);
10
10
  } catch {
11
11
  return null;
12
12
  }
13
- }
14
- return target;
13
+ return r;
15
14
  };
16
15
  export {
17
- getElement
16
+ u as getElement
18
17
  };
19
18
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sources":["../../../../src/components/_util/dom/element.ts"],"sourcesContent":["import { isString } from '../types'\r\nimport { isClient } from '../browser'\r\n\r\ntype GetElement = <T extends string | HTMLElement | Window | null | undefined>(\r\n target: T\r\n) => T extends string ? HTMLElement | null : T\r\n\r\nexport const getElement = ((\r\n target: string | HTMLElement | Window | null | undefined\r\n) => {\r\n if (!isClient || target === '') return null\r\n if (isString(target)) {\r\n try {\r\n return document.querySelector<HTMLElement>(target)\r\n } catch {\r\n return null\r\n }\r\n }\r\n return target\r\n}) as GetElement\r\n"],"names":[],"mappings":";;;;AAOa,MAAA,aAAc,CACzB,WACG;AACH,MAAI,CAAC,YAAY,WAAW,GAAW,QAAA;AACnC,MAAA,SAAS,MAAM,GAAG;AAChB,QAAA;AACK,aAAA,SAAS,cAA2B,MAAM;AAAA,IAAA,QAC3C;AACC,aAAA;AAAA,IACT;AAAA,EACF;AACO,SAAA;AACT;"}
1
+ {"version":3,"file":"element.js","sources":["../../../../src/components/_util/dom/element.ts"],"sourcesContent":["import { isString } from '../types'\r\nimport { isClient } from '../browser'\r\n\r\ntype GetElement = <T extends string | HTMLElement | Window | null | undefined>(\r\n target: T\r\n) => T extends string ? HTMLElement | null : T\r\n\r\nexport const getElement = ((\r\n target: string | HTMLElement | Window | null | undefined\r\n) => {\r\n if (!isClient || target === '') return null\r\n if (isString(target)) {\r\n try {\r\n return document.querySelector<HTMLElement>(target)\r\n } catch {\r\n return null\r\n }\r\n }\r\n return target\r\n}) as GetElement\r\n"],"names":["getElement","target","isClient","isString"],"mappings":";;;;AAOa,MAAAA,IAAc,CACzBC,MACG;AACH,MAAI,CAACC,KAAYD,MAAW,GAAW,QAAA;AACnC,MAAAE,EAASF,CAAM;AACb,QAAA;AACK,aAAA,SAAS,cAA2BA,CAAM;AAAA,IAAA,QAC3C;AACC,aAAA;AAAA,IACT;AAEK,SAAAA;AACT;"}
@@ -1,17 +1,10 @@
1
- const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
2
- const handleEvent = (event) => {
3
- const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
4
- if (checkForDefaultPrevented === false || !shouldPrevent) {
5
- return oursHandler == null ? void 0 : oursHandler(event);
6
- }
7
- };
8
- return handleEvent;
9
- };
10
- const whenMouse = (handler) => {
11
- return (e) => e.pointerType === "mouse" ? handler(e) : void 0;
12
- };
1
+ const v = (o, t, { checkForDefaultPrevented: c = !0 } = {}) => (n) => {
2
+ const e = o == null ? void 0 : o(n);
3
+ if (c === !1 || !e)
4
+ return t == null ? void 0 : t(n);
5
+ }, u = (o) => (t) => t.pointerType === "mouse" ? o(t) : void 0;
13
6
  export {
14
- composeEventHandlers,
15
- whenMouse
7
+ v as composeEventHandlers,
8
+ u as whenMouse
16
9
  };
17
10
  //# sourceMappingURL=event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sources":["../../../../src/components/_util/dom/event.ts"],"sourcesContent":["export const composeEventHandlers = <E>(\r\n theirsHandler?: (event: E) => boolean | void,\r\n oursHandler?: (event: E) => void,\r\n { checkForDefaultPrevented = true } = {}\r\n) => {\r\n const handleEvent = (event: E) => {\r\n const shouldPrevent = theirsHandler?.(event)\r\n\r\n if (checkForDefaultPrevented === false || !shouldPrevent) {\r\n return oursHandler?.(event)\r\n }\r\n }\r\n return handleEvent\r\n}\r\n\r\ntype WhenMouseHandler = (e: PointerEvent) => any\r\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\r\n return (e: PointerEvent) =>\r\n e.pointerType === 'mouse' ? handler(e) : undefined\r\n}\r\n"],"names":[],"mappings":"AAAa,MAAA,uBAAuB,CAClC,eACA,aACA,EAAE,2BAA2B,KAAS,IAAA,OACnC;AACG,QAAA,cAAc,CAAC,UAAa;AAC1B,UAAA,gBAAgB,+CAAgB;AAElC,QAAA,6BAA6B,SAAS,CAAC,eAAe;AACxD,aAAO,2CAAc;AAAA,IACvB;AAAA,EAAA;AAEK,SAAA;AACT;AAGa,MAAA,YAAY,CAAC,YAAgD;AACxE,SAAO,CAAC,MACN,EAAE,gBAAgB,UAAU,QAAQ,CAAC,IAAI;AAC7C;"}
1
+ {"version":3,"file":"event.js","sources":["../../../../src/components/_util/dom/event.ts"],"sourcesContent":["export const composeEventHandlers = <E>(\r\n theirsHandler?: (event: E) => boolean | void,\r\n oursHandler?: (event: E) => void,\r\n { checkForDefaultPrevented = true } = {}\r\n) => {\r\n const handleEvent = (event: E) => {\r\n const shouldPrevent = theirsHandler?.(event)\r\n\r\n if (checkForDefaultPrevented === false || !shouldPrevent) {\r\n return oursHandler?.(event)\r\n }\r\n }\r\n return handleEvent\r\n}\r\n\r\ntype WhenMouseHandler = (e: PointerEvent) => any\r\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\r\n return (e: PointerEvent) =>\r\n e.pointerType === 'mouse' ? handler(e) : undefined\r\n}\r\n"],"names":["composeEventHandlers","theirsHandler","oursHandler","checkForDefaultPrevented","event","shouldPrevent","whenMouse","handler","e"],"mappings":"AAAa,MAAAA,IAAuB,CAClCC,GACAC,GACA,EAAE,0BAAAC,IAA2B,GAAS,IAAA,OAElB,CAACC,MAAa;AAC1B,QAAAC,IAAgBJ,KAAA,gBAAAA,EAAgBG;AAElC,MAAAD,MAA6B,MAAS,CAACE;AACzC,WAAOH,KAAA,gBAAAA,EAAcE;AACvB,GAMSE,IAAY,CAACC,MACjB,CAACC,MACNA,EAAE,gBAAgB,UAAUD,EAAQC,CAAC,IAAI;"}
@@ -1,39 +1,39 @@
1
- import { attemptFocus, focusNode, getSibling, isFocusable, isLeaf, isVisible, obtainAllFocusableElements, triggerEvent } from "./aria.js";
2
- import { composeEventHandlers, whenMouse } from "./event.js";
3
- import { getClientXY, getOffsetTop, getOffsetTopDistance, isInContainer } from "./position.js";
4
- import { animateScrollTo, getScrollBarWidth, getScrollContainer, getScrollElement, getScrollTop, isScroll, scrollIntoView } from "./scroll.js";
5
- import { addClass, addUnit, classNameToArray, getStyle, hasClass, removeClass, removeStyle, setStyle } from "./style.js";
6
- import { getElement } from "./element.js";
1
+ import { attemptFocus as o, focusNode as l, getSibling as r, isFocusable as s, isLeaf as a, isVisible as i, obtainAllFocusableElements as n, triggerEvent as m } from "./aria.js";
2
+ import { composeEventHandlers as g, whenMouse as f } from "./event.js";
3
+ import { getClientXY as S, getOffsetTop as d, getOffsetTopDistance as x, isInContainer as C } from "./position.js";
4
+ import { animateScrollTo as u, getScrollBarWidth as E, getScrollContainer as T, getScrollElement as v, getScrollTop as y, isScroll as h, scrollIntoView as F } from "./scroll.js";
5
+ import { addClass as A, addUnit as I, classNameToArray as N, getStyle as O, hasClass as V, removeClass as B, removeStyle as D, setStyle as H } from "./style.js";
6
+ import { getElement as M } from "./element.js";
7
7
  export {
8
- addClass,
9
- addUnit,
10
- animateScrollTo,
11
- attemptFocus,
12
- classNameToArray,
13
- composeEventHandlers,
14
- focusNode,
15
- getClientXY,
16
- getElement,
17
- getOffsetTop,
18
- getOffsetTopDistance,
19
- getScrollBarWidth,
20
- getScrollContainer,
21
- getScrollElement,
22
- getScrollTop,
23
- getSibling,
24
- getStyle,
25
- hasClass,
26
- isFocusable,
27
- isInContainer,
28
- isLeaf,
29
- isScroll,
30
- isVisible,
31
- obtainAllFocusableElements,
32
- removeClass,
33
- removeStyle,
34
- scrollIntoView,
35
- setStyle,
36
- triggerEvent,
37
- whenMouse
8
+ A as addClass,
9
+ I as addUnit,
10
+ u as animateScrollTo,
11
+ o as attemptFocus,
12
+ N as classNameToArray,
13
+ g as composeEventHandlers,
14
+ l as focusNode,
15
+ S as getClientXY,
16
+ M as getElement,
17
+ d as getOffsetTop,
18
+ x as getOffsetTopDistance,
19
+ E as getScrollBarWidth,
20
+ T as getScrollContainer,
21
+ v as getScrollElement,
22
+ y as getScrollTop,
23
+ r as getSibling,
24
+ O as getStyle,
25
+ V as hasClass,
26
+ s as isFocusable,
27
+ C as isInContainer,
28
+ a as isLeaf,
29
+ h as isScroll,
30
+ i as isVisible,
31
+ n as obtainAllFocusableElements,
32
+ B as removeClass,
33
+ D as removeStyle,
34
+ F as scrollIntoView,
35
+ H as setStyle,
36
+ m as triggerEvent,
37
+ f as whenMouse
38
38
  };
39
39
  //# sourceMappingURL=index.js.map
@@ -1,54 +1,30 @@
1
- import { i as isClient } from "../../../index-D1m0KTpK.js";
2
- const isInContainer = (el, container) => {
3
- if (!isClient || !el || !container) return false;
4
- const elRect = el.getBoundingClientRect();
5
- let containerRect;
6
- if (container instanceof Element) {
7
- containerRect = container.getBoundingClientRect();
8
- } else {
9
- containerRect = {
10
- top: 0,
11
- right: window.innerWidth,
12
- bottom: window.innerHeight,
13
- left: 0
14
- };
15
- }
16
- return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
17
- };
18
- const getOffsetTop = (el) => {
19
- let offset = 0;
20
- let parent = el;
21
- while (parent) {
22
- offset += parent.offsetTop;
23
- parent = parent.offsetParent;
24
- }
25
- return offset;
26
- };
27
- const getOffsetTopDistance = (el, containerEl) => {
28
- return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl));
29
- };
30
- const getClientXY = (event) => {
31
- let clientX;
32
- let clientY;
33
- if (event.type === "touchend") {
34
- clientY = event.changedTouches[0].clientY;
35
- clientX = event.changedTouches[0].clientX;
36
- } else if (event.type.startsWith("touch")) {
37
- clientY = event.touches[0].clientY;
38
- clientX = event.touches[0].clientX;
39
- } else {
40
- clientY = event.clientY;
41
- clientX = event.clientX;
42
- }
43
- return {
44
- clientX,
45
- clientY
1
+ import { i as c } from "../../../index-C9tCD90X.js";
2
+ const s = (t, i) => {
3
+ if (!c || !t || !i) return !1;
4
+ const e = t.getBoundingClientRect();
5
+ let n;
6
+ return i instanceof Element ? n = i.getBoundingClientRect() : n = {
7
+ top: 0,
8
+ right: window.innerWidth,
9
+ bottom: window.innerHeight,
10
+ left: 0
11
+ }, e.top < n.bottom && e.bottom > n.top && e.right > n.left && e.left < n.right;
12
+ }, o = (t) => {
13
+ let i = 0, e = t;
14
+ for (; e; )
15
+ i += e.offsetTop, e = e.offsetParent;
16
+ return i;
17
+ }, r = (t, i) => Math.abs(o(t) - o(i)), f = (t) => {
18
+ let i, e;
19
+ return t.type === "touchend" ? (e = t.changedTouches[0].clientY, i = t.changedTouches[0].clientX) : t.type.startsWith("touch") ? (e = t.touches[0].clientY, i = t.touches[0].clientX) : (e = t.clientY, i = t.clientX), {
20
+ clientX: i,
21
+ clientY: e
46
22
  };
47
23
  };
48
24
  export {
49
- getClientXY,
50
- getOffsetTop,
51
- getOffsetTopDistance,
52
- isInContainer
25
+ f as getClientXY,
26
+ o as getOffsetTop,
27
+ r as getOffsetTopDistance,
28
+ s as isInContainer
53
29
  };
54
30
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sources":["../../../../src/components/_util/dom/position.ts"],"sourcesContent":["import { isClient } from '../browser'\r\n\r\nexport const isInContainer = (\r\n el?: Element,\r\n container?: Element | Window\r\n): boolean => {\r\n if (!isClient || !el || !container) return false\r\n\r\n const elRect = el.getBoundingClientRect()\r\n\r\n let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\r\n if (container instanceof Element) {\r\n containerRect = container.getBoundingClientRect()\r\n } else {\r\n containerRect = {\r\n top: 0,\r\n right: window.innerWidth,\r\n bottom: window.innerHeight,\r\n left: 0,\r\n }\r\n }\r\n return (\r\n elRect.top < containerRect.bottom &&\r\n elRect.bottom > containerRect.top &&\r\n elRect.right > containerRect.left &&\r\n elRect.left < containerRect.right\r\n )\r\n}\r\n\r\nexport const getOffsetTop = (el: HTMLElement) => {\r\n let offset = 0\r\n let parent = el\r\n\r\n while (parent) {\r\n offset += parent.offsetTop\r\n parent = parent.offsetParent as HTMLElement\r\n }\r\n\r\n return offset\r\n}\r\n\r\nexport const getOffsetTopDistance = (\r\n el: HTMLElement,\r\n containerEl: HTMLElement\r\n) => {\r\n return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\r\n}\r\n\r\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\r\n let clientX: number\r\n let clientY: number\r\n if (event.type === 'touchend') {\r\n clientY = (event as TouchEvent).changedTouches[0].clientY\r\n clientX = (event as TouchEvent).changedTouches[0].clientX\r\n } else if (event.type.startsWith('touch')) {\r\n clientY = (event as TouchEvent).touches[0].clientY\r\n clientX = (event as TouchEvent).touches[0].clientX\r\n } else {\r\n clientY = (event as MouseEvent).clientY\r\n clientX = (event as MouseEvent).clientX\r\n }\r\n return {\r\n clientX,\r\n clientY,\r\n }\r\n}\r\n"],"names":[],"mappings":";AAEa,MAAA,gBAAgB,CAC3B,IACA,cACY;AACZ,MAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAkB,QAAA;AAErC,QAAA,SAAS,GAAG;AAEd,MAAA;AACJ,MAAI,qBAAqB,SAAS;AAChC,oBAAgB,UAAU;EAAsB,OAC3C;AACW,oBAAA;AAAA,MACd,KAAK;AAAA,MACL,OAAO,OAAO;AAAA,MACd,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,EAEV;AACA,SACE,OAAO,MAAM,cAAc,UAC3B,OAAO,SAAS,cAAc,OAC9B,OAAO,QAAQ,cAAc,QAC7B,OAAO,OAAO,cAAc;AAEhC;AAEa,MAAA,eAAe,CAAC,OAAoB;AAC/C,MAAI,SAAS;AACb,MAAI,SAAS;AAEb,SAAO,QAAQ;AACb,cAAU,OAAO;AACjB,aAAS,OAAO;AAAA,EAClB;AAEO,SAAA;AACT;AAEa,MAAA,uBAAuB,CAClC,IACA,gBACG;AACH,SAAO,KAAK,IAAI,aAAa,EAAE,IAAI,aAAa,WAAW,CAAC;AAC9D;AAEa,MAAA,cAAc,CAAC,UAAmC;AACzD,MAAA;AACA,MAAA;AACA,MAAA,MAAM,SAAS,YAAY;AAClB,cAAA,MAAqB,eAAe,CAAC,EAAE;AACvC,cAAA,MAAqB,eAAe,CAAC,EAAE;AAAA,EACzC,WAAA,MAAM,KAAK,WAAW,OAAO,GAAG;AAC9B,cAAA,MAAqB,QAAQ,CAAC,EAAE;AAChC,cAAA,MAAqB,QAAQ,CAAC,EAAE;AAAA,EAAA,OACtC;AACL,cAAW,MAAqB;AAChC,cAAW,MAAqB;AAAA,EAClC;AACO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"position.js","sources":["../../../../src/components/_util/dom/position.ts"],"sourcesContent":["import { isClient } from '../browser'\r\n\r\nexport const isInContainer = (\r\n el?: Element,\r\n container?: Element | Window\r\n): boolean => {\r\n if (!isClient || !el || !container) return false\r\n\r\n const elRect = el.getBoundingClientRect()\r\n\r\n let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\r\n if (container instanceof Element) {\r\n containerRect = container.getBoundingClientRect()\r\n } else {\r\n containerRect = {\r\n top: 0,\r\n right: window.innerWidth,\r\n bottom: window.innerHeight,\r\n left: 0,\r\n }\r\n }\r\n return (\r\n elRect.top < containerRect.bottom &&\r\n elRect.bottom > containerRect.top &&\r\n elRect.right > containerRect.left &&\r\n elRect.left < containerRect.right\r\n )\r\n}\r\n\r\nexport const getOffsetTop = (el: HTMLElement) => {\r\n let offset = 0\r\n let parent = el\r\n\r\n while (parent) {\r\n offset += parent.offsetTop\r\n parent = parent.offsetParent as HTMLElement\r\n }\r\n\r\n return offset\r\n}\r\n\r\nexport const getOffsetTopDistance = (\r\n el: HTMLElement,\r\n containerEl: HTMLElement\r\n) => {\r\n return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\r\n}\r\n\r\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\r\n let clientX: number\r\n let clientY: number\r\n if (event.type === 'touchend') {\r\n clientY = (event as TouchEvent).changedTouches[0].clientY\r\n clientX = (event as TouchEvent).changedTouches[0].clientX\r\n } else if (event.type.startsWith('touch')) {\r\n clientY = (event as TouchEvent).touches[0].clientY\r\n clientX = (event as TouchEvent).touches[0].clientX\r\n } else {\r\n clientY = (event as MouseEvent).clientY\r\n clientX = (event as MouseEvent).clientX\r\n }\r\n return {\r\n clientX,\r\n clientY,\r\n }\r\n}\r\n"],"names":["isInContainer","el","container","isClient","elRect","containerRect","getOffsetTop","offset","parent","getOffsetTopDistance","containerEl","getClientXY","event","clientX","clientY"],"mappings":";AAEa,MAAAA,IAAgB,CAC3BC,GACAC,MACY;AACZ,MAAI,CAACC,KAAY,CAACF,KAAM,CAACC,EAAkB,QAAA;AAErC,QAAAE,IAASH,EAAG;AAEd,MAAAI;AACJ,SAAIH,aAAqB,UACvBG,IAAgBH,EAAU,0BAEVG,IAAA;AAAA,IACd,KAAK;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,IACf,MAAM;AAAA,EAAA,GAIRD,EAAO,MAAMC,EAAc,UAC3BD,EAAO,SAASC,EAAc,OAC9BD,EAAO,QAAQC,EAAc,QAC7BD,EAAO,OAAOC,EAAc;AAEhC,GAEaC,IAAe,CAACL,MAAoB;AAC/C,MAAIM,IAAS,GACTC,IAASP;AAEb,SAAOO;AACL,IAAAD,KAAUC,EAAO,WACjBA,IAASA,EAAO;AAGX,SAAAD;AACT,GAEaE,IAAuB,CAClCR,GACAS,MAEO,KAAK,IAAIJ,EAAaL,CAAE,IAAIK,EAAaI,CAAW,CAAC,GAGjDC,IAAc,CAACC,MAAmC;AACzD,MAAAC,GACAC;AACA,SAAAF,EAAM,SAAS,cACNE,IAAAF,EAAqB,eAAe,CAAC,EAAE,SACvCC,IAAAD,EAAqB,eAAe,CAAC,EAAE,WACzCA,EAAM,KAAK,WAAW,OAAO,KAC3BE,IAAAF,EAAqB,QAAQ,CAAC,EAAE,SAChCC,IAAAD,EAAqB,QAAQ,CAAC,EAAE,YAE3CE,IAAWF,EAAqB,SAChCC,IAAWD,EAAqB,UAE3B;AAAA,IACL,SAAAC;AAAA,IACA,SAAAC;AAAA,EAAA;AAEJ;"}
@@ -1,120 +1,78 @@
1
- import { easeInOutCubic } from "../easings.js";
2
- import { isWindow } from "../types.js";
3
- import { rAF, cAF } from "../raf.js";
4
- import { getStyle } from "./style.js";
5
- import { i as isClient } from "../../../index-D1m0KTpK.js";
6
- const isScroll = (el, isVertical) => {
7
- if (!isClient) return false;
8
- const key = {
1
+ import { easeInOutCubic as w } from "../easings.js";
2
+ import { isWindow as u } from "../types.js";
3
+ import { rAF as h, cAF as a } from "../raf.js";
4
+ import { getStyle as T } from "./style.js";
5
+ import { i as p } from "../../../index-C9tCD90X.js";
6
+ const v = (o, t) => {
7
+ if (!p) return !1;
8
+ const l = {
9
9
  undefined: "overflow",
10
10
  true: "overflow-y",
11
11
  false: "overflow-x"
12
- }[String(isVertical)];
13
- const overflow = getStyle(el, key);
14
- return ["scroll", "auto", "overlay"].some((s) => overflow.includes(s));
15
- };
16
- const getScrollContainer = (el, isVertical) => {
17
- if (!isClient) return;
18
- let parent = el;
19
- while (parent) {
20
- if ([window, document, document.documentElement].includes(parent))
12
+ }[String(t)], e = T(o, l);
13
+ return ["scroll", "auto", "overlay"].some((r) => e.includes(r));
14
+ }, b = (o, t) => {
15
+ if (!p) return;
16
+ let l = o;
17
+ for (; l; ) {
18
+ if ([window, document, document.documentElement].includes(l))
21
19
  return window;
22
- if (isScroll(parent, isVertical)) return parent;
23
- parent = parent.parentNode;
20
+ if (v(l, t)) return l;
21
+ l = l.parentNode;
24
22
  }
25
- return parent;
23
+ return l;
26
24
  };
27
- let scrollBarWidth;
28
- const getScrollBarWidth = (namespace) => {
29
- var _a;
30
- if (!isClient) return 0;
31
- if (scrollBarWidth !== void 0) return scrollBarWidth;
32
- const outer = document.createElement("div");
33
- outer.className = `${namespace}-scrollbar__wrap`;
34
- outer.style.visibility = "hidden";
35
- outer.style.width = "100px";
36
- outer.style.position = "absolute";
37
- outer.style.top = "-9999px";
38
- document.body.appendChild(outer);
39
- const widthNoScroll = outer.offsetWidth;
40
- outer.style.overflow = "scroll";
41
- const inner = document.createElement("div");
42
- inner.style.width = "100%";
43
- outer.appendChild(inner);
44
- const widthWithScroll = inner.offsetWidth;
45
- (_a = outer.parentNode) == null ? void 0 : _a.removeChild(outer);
46
- scrollBarWidth = widthNoScroll - widthWithScroll;
47
- return scrollBarWidth;
25
+ let f;
26
+ const x = (o) => {
27
+ var s;
28
+ if (!p) return 0;
29
+ if (f !== void 0) return f;
30
+ const t = document.createElement("div");
31
+ t.className = `${o}-scrollbar__wrap`, t.style.visibility = "hidden", t.style.width = "100px", t.style.position = "absolute", t.style.top = "-9999px", document.body.appendChild(t);
32
+ const l = t.offsetWidth;
33
+ t.style.overflow = "scroll";
34
+ const e = document.createElement("div");
35
+ e.style.width = "100%", t.appendChild(e);
36
+ const r = e.offsetWidth;
37
+ return (s = t.parentNode) == null || s.removeChild(t), f = l - r, f;
48
38
  };
49
- function scrollIntoView(container, selected) {
50
- if (!isClient) return;
51
- if (!selected) {
52
- container.scrollTop = 0;
39
+ function E(o, t) {
40
+ if (!p) return;
41
+ if (!t) {
42
+ o.scrollTop = 0;
53
43
  return;
54
44
  }
55
- const offsetParents = [];
56
- let pointer = selected.offsetParent;
57
- while (pointer !== null && container !== pointer && container.contains(pointer)) {
58
- offsetParents.push(pointer);
59
- pointer = pointer.offsetParent;
60
- }
61
- const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
62
- const bottom = top + selected.offsetHeight;
63
- const viewRectTop = container.scrollTop;
64
- const viewRectBottom = viewRectTop + container.clientHeight;
65
- if (top < viewRectTop) {
66
- container.scrollTop = top;
67
- } else if (bottom > viewRectBottom) {
68
- container.scrollTop = bottom - container.clientHeight;
69
- }
45
+ const l = [];
46
+ let e = t.offsetParent;
47
+ for (; e !== null && o !== e && o.contains(e); )
48
+ l.push(e), e = e.offsetParent;
49
+ const r = t.offsetTop + l.reduce((m, i) => m + i.offsetTop, 0), s = r + t.offsetHeight, n = o.scrollTop, c = n + o.clientHeight;
50
+ r < n ? o.scrollTop = r : s > c && (o.scrollTop = s - o.clientHeight);
70
51
  }
71
- function animateScrollTo(container, from, to, duration, callback) {
72
- const startTime = Date.now();
73
- let handle;
74
- const scroll = () => {
75
- const timestamp = Date.now();
76
- const time = timestamp - startTime;
77
- const nextScrollTop = easeInOutCubic(
78
- time > duration ? duration : time,
79
- from,
80
- to,
81
- duration
52
+ function N(o, t, l, e, r) {
53
+ const s = Date.now();
54
+ let n;
55
+ const c = () => {
56
+ const i = Date.now() - s, d = w(
57
+ i > e ? e : i,
58
+ t,
59
+ l,
60
+ e
82
61
  );
83
- if (isWindow(container)) {
84
- container.scrollTo(window.pageXOffset, nextScrollTop);
85
- } else {
86
- container.scrollTop = nextScrollTop;
87
- }
88
- if (time < duration) {
89
- handle = rAF(scroll);
90
- } else if (typeof callback === "function") {
91
- callback();
92
- }
62
+ u(o) ? o.scrollTo(window.pageXOffset, d) : o.scrollTop = d, i < e ? n = h(c) : typeof r == "function" && r();
93
63
  };
94
- scroll();
95
- return () => {
96
- handle && cAF(handle);
64
+ return c(), () => {
65
+ n && a(n);
97
66
  };
98
67
  }
99
- const getScrollElement = (target, container) => {
100
- if (isWindow(container)) {
101
- return target.ownerDocument.documentElement;
102
- }
103
- return container;
104
- };
105
- const getScrollTop = (container) => {
106
- if (isWindow(container)) {
107
- return window.scrollY;
108
- }
109
- return container.scrollTop;
110
- };
68
+ const B = (o, t) => u(t) ? o.ownerDocument.documentElement : t, D = (o) => u(o) ? window.scrollY : o.scrollTop;
111
69
  export {
112
- animateScrollTo,
113
- getScrollBarWidth,
114
- getScrollContainer,
115
- getScrollElement,
116
- getScrollTop,
117
- isScroll,
118
- scrollIntoView
70
+ N as animateScrollTo,
71
+ x as getScrollBarWidth,
72
+ b as getScrollContainer,
73
+ B as getScrollElement,
74
+ D as getScrollTop,
75
+ v as isScroll,
76
+ E as scrollIntoView
119
77
  };
120
78
  //# sourceMappingURL=scroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sources":["../../../../src/components/_util/dom/scroll.ts"],"sourcesContent":["import { isClient } from '../browser'\r\nimport { easeInOutCubic } from '../easings'\r\nimport { isWindow } from '../types'\r\nimport { cAF, rAF } from '../raf'\r\nimport { getStyle } from './style'\r\n\r\nexport const isScroll = (el: HTMLElement, isVertical?: boolean): boolean => {\r\n if (!isClient) return false\r\n\r\n const key = (\r\n {\r\n undefined: 'overflow',\r\n true: 'overflow-y',\r\n false: 'overflow-x',\r\n } as const\r\n )[String(isVertical)]!\r\n const overflow = getStyle(el, key)\r\n return ['scroll', 'auto', 'overlay'].some((s) => overflow.includes(s))\r\n}\r\n\r\nexport const getScrollContainer = (\r\n el: HTMLElement,\r\n isVertical?: boolean\r\n): Window | HTMLElement | undefined => {\r\n if (!isClient) return\r\n\r\n let parent: HTMLElement = el\r\n while (parent) {\r\n if ([window, document, document.documentElement].includes(parent))\r\n return window\r\n\r\n if (isScroll(parent, isVertical)) return parent\r\n\r\n parent = parent.parentNode as HTMLElement\r\n }\r\n\r\n return parent\r\n}\r\n\r\nlet scrollBarWidth: number\r\nexport const getScrollBarWidth = (namespace: string): number => {\r\n if (!isClient) return 0\r\n if (scrollBarWidth !== undefined) return scrollBarWidth\r\n\r\n const outer = document.createElement('div')\r\n outer.className = `${namespace}-scrollbar__wrap`\r\n outer.style.visibility = 'hidden'\r\n outer.style.width = '100px'\r\n outer.style.position = 'absolute'\r\n outer.style.top = '-9999px'\r\n document.body.appendChild(outer)\r\n\r\n const widthNoScroll = outer.offsetWidth\r\n outer.style.overflow = 'scroll'\r\n\r\n const inner = document.createElement('div')\r\n inner.style.width = '100%'\r\n outer.appendChild(inner)\r\n\r\n const widthWithScroll = inner.offsetWidth\r\n outer.parentNode?.removeChild(outer)\r\n scrollBarWidth = widthNoScroll - widthWithScroll\r\n\r\n return scrollBarWidth\r\n}\r\n\r\n/**\r\n * Scroll with in the container element, positioning the **selected** element at the top\r\n * of the container\r\n */\r\nexport function scrollIntoView(\r\n container: HTMLElement,\r\n selected: HTMLElement\r\n): void {\r\n if (!isClient) return\r\n\r\n if (!selected) {\r\n container.scrollTop = 0\r\n return\r\n }\r\n\r\n const offsetParents: HTMLElement[] = []\r\n let pointer = selected.offsetParent\r\n while (\r\n pointer !== null &&\r\n container !== pointer &&\r\n container.contains(pointer)\r\n ) {\r\n offsetParents.push(pointer as HTMLElement)\r\n pointer = (pointer as HTMLElement).offsetParent\r\n }\r\n const top =\r\n selected.offsetTop +\r\n offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0)\r\n const bottom = top + selected.offsetHeight\r\n const viewRectTop = container.scrollTop\r\n const viewRectBottom = viewRectTop + container.clientHeight\r\n\r\n if (top < viewRectTop) {\r\n container.scrollTop = top\r\n } else if (bottom > viewRectBottom) {\r\n container.scrollTop = bottom - container.clientHeight\r\n }\r\n}\r\n\r\nexport function animateScrollTo(\r\n container: HTMLElement | Window,\r\n from: number,\r\n to: number,\r\n duration: number,\r\n callback?: unknown\r\n) {\r\n const startTime = Date.now()\r\n\r\n let handle: number | undefined\r\n const scroll = () => {\r\n const timestamp = Date.now()\r\n const time = timestamp - startTime\r\n const nextScrollTop = easeInOutCubic(\r\n time > duration ? duration : time,\r\n from,\r\n to,\r\n duration\r\n )\r\n\r\n if (isWindow(container)) {\r\n container.scrollTo(window.pageXOffset, nextScrollTop)\r\n } else {\r\n container.scrollTop = nextScrollTop\r\n }\r\n if (time < duration) {\r\n handle = rAF(scroll)\r\n } else if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n\r\n scroll()\r\n\r\n return () => {\r\n handle && cAF(handle)\r\n }\r\n}\r\n\r\nexport const getScrollElement = (\r\n target: HTMLElement,\r\n container: HTMLElement | Window\r\n) => {\r\n if (isWindow(container)) {\r\n return target.ownerDocument.documentElement\r\n }\r\n return container\r\n}\r\n\r\nexport const getScrollTop = (container: HTMLElement | Window) => {\r\n if (isWindow(container)) {\r\n return window.scrollY\r\n }\r\n return container.scrollTop\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll.js","sources":["../../../../src/components/_util/dom/scroll.ts"],"sourcesContent":["import { isClient } from '../browser'\r\nimport { easeInOutCubic } from '../easings'\r\nimport { isWindow } from '../types'\r\nimport { cAF, rAF } from '../raf'\r\nimport { getStyle } from './style'\r\n\r\nexport const isScroll = (el: HTMLElement, isVertical?: boolean): boolean => {\r\n if (!isClient) return false\r\n\r\n const key = (\r\n {\r\n undefined: 'overflow',\r\n true: 'overflow-y',\r\n false: 'overflow-x',\r\n } as const\r\n )[String(isVertical)]!\r\n const overflow = getStyle(el, key)\r\n return ['scroll', 'auto', 'overlay'].some((s) => overflow.includes(s))\r\n}\r\n\r\nexport const getScrollContainer = (\r\n el: HTMLElement,\r\n isVertical?: boolean\r\n): Window | HTMLElement | undefined => {\r\n if (!isClient) return\r\n\r\n let parent: HTMLElement = el\r\n while (parent) {\r\n if ([window, document, document.documentElement].includes(parent))\r\n return window\r\n\r\n if (isScroll(parent, isVertical)) return parent\r\n\r\n parent = parent.parentNode as HTMLElement\r\n }\r\n\r\n return parent\r\n}\r\n\r\nlet scrollBarWidth: number\r\nexport const getScrollBarWidth = (namespace: string): number => {\r\n if (!isClient) return 0\r\n if (scrollBarWidth !== undefined) return scrollBarWidth\r\n\r\n const outer = document.createElement('div')\r\n outer.className = `${namespace}-scrollbar__wrap`\r\n outer.style.visibility = 'hidden'\r\n outer.style.width = '100px'\r\n outer.style.position = 'absolute'\r\n outer.style.top = '-9999px'\r\n document.body.appendChild(outer)\r\n\r\n const widthNoScroll = outer.offsetWidth\r\n outer.style.overflow = 'scroll'\r\n\r\n const inner = document.createElement('div')\r\n inner.style.width = '100%'\r\n outer.appendChild(inner)\r\n\r\n const widthWithScroll = inner.offsetWidth\r\n outer.parentNode?.removeChild(outer)\r\n scrollBarWidth = widthNoScroll - widthWithScroll\r\n\r\n return scrollBarWidth\r\n}\r\n\r\n/**\r\n * Scroll with in the container element, positioning the **selected** element at the top\r\n * of the container\r\n */\r\nexport function scrollIntoView(\r\n container: HTMLElement,\r\n selected: HTMLElement\r\n): void {\r\n if (!isClient) return\r\n\r\n if (!selected) {\r\n container.scrollTop = 0\r\n return\r\n }\r\n\r\n const offsetParents: HTMLElement[] = []\r\n let pointer = selected.offsetParent\r\n while (\r\n pointer !== null &&\r\n container !== pointer &&\r\n container.contains(pointer)\r\n ) {\r\n offsetParents.push(pointer as HTMLElement)\r\n pointer = (pointer as HTMLElement).offsetParent\r\n }\r\n const top =\r\n selected.offsetTop +\r\n offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0)\r\n const bottom = top + selected.offsetHeight\r\n const viewRectTop = container.scrollTop\r\n const viewRectBottom = viewRectTop + container.clientHeight\r\n\r\n if (top < viewRectTop) {\r\n container.scrollTop = top\r\n } else if (bottom > viewRectBottom) {\r\n container.scrollTop = bottom - container.clientHeight\r\n }\r\n}\r\n\r\nexport function animateScrollTo(\r\n container: HTMLElement | Window,\r\n from: number,\r\n to: number,\r\n duration: number,\r\n callback?: unknown\r\n) {\r\n const startTime = Date.now()\r\n\r\n let handle: number | undefined\r\n const scroll = () => {\r\n const timestamp = Date.now()\r\n const time = timestamp - startTime\r\n const nextScrollTop = easeInOutCubic(\r\n time > duration ? duration : time,\r\n from,\r\n to,\r\n duration\r\n )\r\n\r\n if (isWindow(container)) {\r\n container.scrollTo(window.pageXOffset, nextScrollTop)\r\n } else {\r\n container.scrollTop = nextScrollTop\r\n }\r\n if (time < duration) {\r\n handle = rAF(scroll)\r\n } else if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n\r\n scroll()\r\n\r\n return () => {\r\n handle && cAF(handle)\r\n }\r\n}\r\n\r\nexport const getScrollElement = (\r\n target: HTMLElement,\r\n container: HTMLElement | Window\r\n) => {\r\n if (isWindow(container)) {\r\n return target.ownerDocument.documentElement\r\n }\r\n return container\r\n}\r\n\r\nexport const getScrollTop = (container: HTMLElement | Window) => {\r\n if (isWindow(container)) {\r\n return window.scrollY\r\n }\r\n return container.scrollTop\r\n}\r\n"],"names":["isScroll","el","isVertical","isClient","key","overflow","getStyle","s","getScrollContainer","parent","scrollBarWidth","getScrollBarWidth","namespace","outer","widthNoScroll","inner","widthWithScroll","_a","scrollIntoView","container","selected","offsetParents","pointer","top","prev","curr","bottom","viewRectTop","viewRectBottom","animateScrollTo","from","to","duration","callback","startTime","handle","scroll","time","nextScrollTop","easeInOutCubic","isWindow","rAF","cAF","getScrollElement","target","getScrollTop"],"mappings":";;;;;AAMa,MAAAA,IAAW,CAACC,GAAiBC,MAAkC;AACtE,MAAA,CAACC,EAAiB,QAAA;AAEtB,QAAMC,IACJ;AAAA,IACE,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,EAAA,EAET,OAAOF,CAAU,CAAC,GACdG,IAAWC,EAASL,GAAIG,CAAG;AAC1B,SAAA,CAAC,UAAU,QAAQ,SAAS,EAAE,KAAK,CAACG,MAAMF,EAAS,SAASE,CAAC,CAAC;AACvE,GAEaC,IAAqB,CAChCP,GACAC,MACqC;AACrC,MAAI,CAACC,EAAU;AAEf,MAAIM,IAAsBR;AAC1B,SAAOQ,KAAQ;AACb,QAAI,CAAC,QAAQ,UAAU,SAAS,eAAe,EAAE,SAASA,CAAM;AACvD,aAAA;AAET,QAAIT,EAASS,GAAQP,CAAU,EAAU,QAAAO;AAEzC,IAAAA,IAASA,EAAO;AAAA,EAClB;AAEO,SAAAA;AACT;AAEA,IAAIC;AACS,MAAAC,IAAoB,CAACC,MAA8B;;AAC1D,MAAA,CAACT,EAAiB,QAAA;AAClB,MAAAO,MAAmB,OAAkB,QAAAA;AAEnC,QAAAG,IAAQ,SAAS,cAAc,KAAK;AACpC,EAAAA,EAAA,YAAY,GAAGD,CAAS,oBAC9BC,EAAM,MAAM,aAAa,UACzBA,EAAM,MAAM,QAAQ,SACpBA,EAAM,MAAM,WAAW,YACvBA,EAAM,MAAM,MAAM,WACT,SAAA,KAAK,YAAYA,CAAK;AAE/B,QAAMC,IAAgBD,EAAM;AAC5B,EAAAA,EAAM,MAAM,WAAW;AAEjB,QAAAE,IAAQ,SAAS,cAAc,KAAK;AAC1C,EAAAA,EAAM,MAAM,QAAQ,QACpBF,EAAM,YAAYE,CAAK;AAEvB,QAAMC,IAAkBD,EAAM;AACxB,UAAAE,IAAAJ,EAAA,eAAA,QAAAI,EAAY,YAAYJ,IAC9BH,IAAiBI,IAAgBE,GAE1BN;AACT;AAMgB,SAAAQ,EACdC,GACAC,GACM;AACN,MAAI,CAACjB,EAAU;AAEf,MAAI,CAACiB,GAAU;AACb,IAAAD,EAAU,YAAY;AACtB;AAAA,EACF;AAEA,QAAME,IAA+B,CAAA;AACrC,MAAIC,IAAUF,EAAS;AACvB,SACEE,MAAY,QACZH,MAAcG,KACdH,EAAU,SAASG,CAAO;AAE1B,IAAAD,EAAc,KAAKC,CAAsB,GACzCA,IAAWA,EAAwB;AAE/B,QAAAC,IACJH,EAAS,YACTC,EAAc,OAAO,CAACG,GAAMC,MAASD,IAAOC,EAAK,WAAW,CAAC,GACzDC,IAASH,IAAMH,EAAS,cACxBO,IAAcR,EAAU,WACxBS,IAAiBD,IAAcR,EAAU;AAE/C,EAAII,IAAMI,IACRR,EAAU,YAAYI,IACbG,IAASE,MACRT,EAAA,YAAYO,IAASP,EAAU;AAE7C;AAEO,SAASU,EACdV,GACAW,GACAC,GACAC,GACAC,GACA;AACM,QAAAC,IAAY,KAAK;AAEnB,MAAAC;AACJ,QAAMC,IAAS,MAAM;AAEnB,UAAMC,IADY,KAAK,QACEH,GACnBI,IAAgBC;AAAA,MACpBF,IAAOL,IAAWA,IAAWK;AAAA,MAC7BP;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAGE,IAAAQ,EAASrB,CAAS,IACVA,EAAA,SAAS,OAAO,aAAamB,CAAa,IAEpDnB,EAAU,YAAYmB,GAEpBD,IAAOL,IACTG,IAASM,EAAIL,CAAM,IACV,OAAOH,KAAa,cACpBA;EACX;AAGK,SAAAG,KAEA,MAAM;AACX,IAAAD,KAAUO,EAAIP,CAAM;AAAA,EAAA;AAExB;AAEa,MAAAQ,IAAmB,CAC9BC,GACAzB,MAEIqB,EAASrB,CAAS,IACbyB,EAAO,cAAc,kBAEvBzB,GAGI0B,IAAe,CAAC1B,MACvBqB,EAASrB,CAAS,IACb,OAAO,UAETA,EAAU;"}