@makedopamine/element-plus-utils 0.0.20260220215154

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 (138) hide show
  1. package/LICENSE +21 -0
  2. package/dist/es/arrays.mjs +14 -0
  3. package/dist/es/arrays.mjs.map +1 -0
  4. package/dist/es/browser.mjs +8 -0
  5. package/dist/es/browser.mjs.map +1 -0
  6. package/dist/es/dom/aria.mjs +85 -0
  7. package/dist/es/dom/aria.mjs.map +1 -0
  8. package/dist/es/dom/element.mjs +17 -0
  9. package/dist/es/dom/element.mjs.map +1 -0
  10. package/dist/es/dom/event.mjs +40 -0
  11. package/dist/es/dom/event.mjs.map +1 -0
  12. package/dist/es/dom/index.mjs +7 -0
  13. package/dist/es/dom/index.mjs.map +1 -0
  14. package/dist/es/dom/position.mjs +51 -0
  15. package/dist/es/dom/position.mjs.map +1 -0
  16. package/dist/es/dom/scroll.mjs +120 -0
  17. package/dist/es/dom/scroll.mjs.map +1 -0
  18. package/dist/es/dom/style.mjs +67 -0
  19. package/dist/es/dom/style.mjs.map +1 -0
  20. package/dist/es/easings.mjs +11 -0
  21. package/dist/es/easings.mjs.map +1 -0
  22. package/dist/es/error.mjs +20 -0
  23. package/dist/es/error.mjs.map +1 -0
  24. package/dist/es/functions.mjs +2 -0
  25. package/dist/es/functions.mjs.map +1 -0
  26. package/dist/es/i18n.mjs +4 -0
  27. package/dist/es/i18n.mjs.map +1 -0
  28. package/dist/es/index.mjs +30 -0
  29. package/dist/es/index.mjs.map +1 -0
  30. package/dist/es/objects.mjs +18 -0
  31. package/dist/es/objects.mjs.map +1 -0
  32. package/dist/es/raf.mjs +7 -0
  33. package/dist/es/raf.mjs.map +1 -0
  34. package/dist/es/rand.mjs +5 -0
  35. package/dist/es/rand.mjs.map +1 -0
  36. package/dist/es/strings.mjs +9 -0
  37. package/dist/es/strings.mjs.map +1 -0
  38. package/dist/es/throttleByRaf.mjs +22 -0
  39. package/dist/es/throttleByRaf.mjs.map +1 -0
  40. package/dist/es/types.mjs +23 -0
  41. package/dist/es/types.mjs.map +1 -0
  42. package/dist/es/typescript.mjs +4 -0
  43. package/dist/es/typescript.mjs.map +1 -0
  44. package/dist/es/vue/global-node.mjs +31 -0
  45. package/dist/es/vue/global-node.mjs.map +1 -0
  46. package/dist/es/vue/icon.mjs +33 -0
  47. package/dist/es/vue/icon.mjs.map +1 -0
  48. package/dist/es/vue/index.mjs +9 -0
  49. package/dist/es/vue/index.mjs.map +1 -0
  50. package/dist/es/vue/install.mjs +65 -0
  51. package/dist/es/vue/install.mjs.map +1 -0
  52. package/dist/es/vue/props/index.mjs +2 -0
  53. package/dist/es/vue/props/index.mjs.map +1 -0
  54. package/dist/es/vue/props/runtime.mjs +49 -0
  55. package/dist/es/vue/props/runtime.mjs.map +1 -0
  56. package/dist/es/vue/props/types.mjs +2 -0
  57. package/dist/es/vue/props/types.mjs.map +1 -0
  58. package/dist/es/vue/props/util.mjs +2 -0
  59. package/dist/es/vue/props/util.mjs.map +1 -0
  60. package/dist/es/vue/refs.mjs +10 -0
  61. package/dist/es/vue/refs.mjs.map +1 -0
  62. package/dist/es/vue/size.mjs +8 -0
  63. package/dist/es/vue/size.mjs.map +1 -0
  64. package/dist/es/vue/typescript.mjs +2 -0
  65. package/dist/es/vue/typescript.mjs.map +1 -0
  66. package/dist/es/vue/validator.mjs +7 -0
  67. package/dist/es/vue/validator.mjs.map +1 -0
  68. package/dist/es/vue/vnode.mjs +97 -0
  69. package/dist/es/vue/vnode.mjs.map +1 -0
  70. package/dist/lib/arrays.js +22 -0
  71. package/dist/lib/arrays.js.map +1 -0
  72. package/dist/lib/browser.js +18 -0
  73. package/dist/lib/browser.js.map +1 -0
  74. package/dist/lib/dom/aria.js +95 -0
  75. package/dist/lib/dom/aria.js.map +1 -0
  76. package/dist/lib/dom/element.js +19 -0
  77. package/dist/lib/dom/element.js.map +1 -0
  78. package/dist/lib/dom/event.js +45 -0
  79. package/dist/lib/dom/event.js.map +1 -0
  80. package/dist/lib/dom/index.js +45 -0
  81. package/dist/lib/dom/index.js.map +1 -0
  82. package/dist/lib/dom/position.js +56 -0
  83. package/dist/lib/dom/position.js.map +1 -0
  84. package/dist/lib/dom/scroll.js +128 -0
  85. package/dist/lib/dom/scroll.js.map +1 -0
  86. package/dist/lib/dom/style.js +76 -0
  87. package/dist/lib/dom/style.js.map +1 -0
  88. package/dist/lib/easings.js +13 -0
  89. package/dist/lib/easings.js.map +1 -0
  90. package/dist/lib/error.js +23 -0
  91. package/dist/lib/error.js.map +1 -0
  92. package/dist/lib/functions.js +15 -0
  93. package/dist/lib/functions.js.map +1 -0
  94. package/dist/lib/i18n.js +6 -0
  95. package/dist/lib/i18n.js.map +1 -0
  96. package/dist/lib/index.js +194 -0
  97. package/dist/lib/index.js.map +1 -0
  98. package/dist/lib/objects.js +26 -0
  99. package/dist/lib/objects.js.map +1 -0
  100. package/dist/lib/raf.js +10 -0
  101. package/dist/lib/raf.js.map +1 -0
  102. package/dist/lib/rand.js +8 -0
  103. package/dist/lib/rand.js.map +1 -0
  104. package/dist/lib/strings.js +20 -0
  105. package/dist/lib/strings.js.map +1 -0
  106. package/dist/lib/throttleByRaf.js +24 -0
  107. package/dist/lib/throttleByRaf.js.map +1 -0
  108. package/dist/lib/types.js +63 -0
  109. package/dist/lib/types.js.map +1 -0
  110. package/dist/lib/typescript.js +6 -0
  111. package/dist/lib/typescript.js.map +1 -0
  112. package/dist/lib/vue/global-node.js +35 -0
  113. package/dist/lib/vue/global-node.js.map +1 -0
  114. package/dist/lib/vue/icon.js +39 -0
  115. package/dist/lib/vue/icon.js.map +1 -0
  116. package/dist/lib/vue/index.js +47 -0
  117. package/dist/lib/vue/index.js.map +1 -0
  118. package/dist/lib/vue/install.js +71 -0
  119. package/dist/lib/vue/install.js.map +1 -0
  120. package/dist/lib/vue/props/index.js +12 -0
  121. package/dist/lib/vue/props/index.js.map +1 -0
  122. package/dist/lib/vue/props/runtime.js +55 -0
  123. package/dist/lib/vue/props/runtime.js.map +1 -0
  124. package/dist/lib/vue/props/types.js +3 -0
  125. package/dist/lib/vue/props/types.js.map +1 -0
  126. package/dist/lib/vue/props/util.js +3 -0
  127. package/dist/lib/vue/props/util.js.map +1 -0
  128. package/dist/lib/vue/refs.js +12 -0
  129. package/dist/lib/vue/refs.js.map +1 -0
  130. package/dist/lib/vue/size.js +10 -0
  131. package/dist/lib/vue/size.js.map +1 -0
  132. package/dist/lib/vue/typescript.js +3 -0
  133. package/dist/lib/vue/typescript.js.map +1 -0
  134. package/dist/lib/vue/validator.js +10 -0
  135. package/dist/lib/vue/validator.js.map +1 -0
  136. package/dist/lib/vue/vnode.js +109 -0
  137. package/dist/lib/vue/vnode.js.map +1 -0
  138. package/package.json +24 -0
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ 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])`;
4
+ const isShadowRoot = (e) => {
5
+ if (typeof ShadowRoot === "undefined") return false;
6
+ return e instanceof ShadowRoot;
7
+ };
8
+ const isHTMLElement = (e) => {
9
+ if (typeof Element === "undefined") return false;
10
+ return e instanceof Element;
11
+ };
12
+ const isVisible = (element) => {
13
+ if (process.env.NODE_ENV === "test") return true;
14
+ const computed = getComputedStyle(element);
15
+ return computed.position === "fixed" ? false : element.offsetParent !== null;
16
+ };
17
+ const obtainAllFocusableElements = (element) => {
18
+ return Array.from(
19
+ element.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS)
20
+ ).filter((item) => isFocusable(item) && isVisible(item));
21
+ };
22
+ const isFocusable = (element) => {
23
+ if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) {
24
+ return true;
25
+ }
26
+ if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") {
27
+ return false;
28
+ }
29
+ switch (element.nodeName) {
30
+ case "A": {
31
+ return !!element.href && element.rel !== "ignore";
32
+ }
33
+ case "INPUT": {
34
+ return !(element.type === "hidden" || element.type === "file");
35
+ }
36
+ case "BUTTON":
37
+ case "SELECT":
38
+ case "TEXTAREA": {
39
+ return true;
40
+ }
41
+ default: {
42
+ return false;
43
+ }
44
+ }
45
+ };
46
+ const triggerEvent = function(elm, name, ...opts) {
47
+ let eventName;
48
+ if (name.includes("mouse") || name.includes("click")) {
49
+ eventName = "MouseEvents";
50
+ } else if (name.includes("key")) {
51
+ eventName = "KeyboardEvent";
52
+ } else {
53
+ eventName = "HTMLEvents";
54
+ }
55
+ const evt = document.createEvent(eventName);
56
+ evt.initEvent(name, ...opts);
57
+ elm.dispatchEvent(evt);
58
+ return elm;
59
+ };
60
+ const isLeaf = (el) => !el.getAttribute("aria-owns");
61
+ const getSibling = (el, distance, elClass) => {
62
+ const { parentNode } = el;
63
+ if (!parentNode) return null;
64
+ const siblings = parentNode.querySelectorAll(elClass);
65
+ const index = Array.prototype.indexOf.call(siblings, el);
66
+ return siblings[index + distance] || null;
67
+ };
68
+ const focusElement = (el, options) => {
69
+ if (!el || !el.focus) return;
70
+ let cleanup = false;
71
+ if (isHTMLElement(el) && !isFocusable(el) && !el.getAttribute("tabindex")) {
72
+ el.setAttribute("tabindex", "-1");
73
+ cleanup = true;
74
+ }
75
+ el.focus(options);
76
+ if (isHTMLElement(el) && cleanup) {
77
+ el.removeAttribute("tabindex");
78
+ }
79
+ };
80
+ const focusNode = (el) => {
81
+ if (!el) return;
82
+ focusElement(el);
83
+ !isLeaf(el) && el.click();
84
+ };
85
+
86
+ exports.focusElement = focusElement;
87
+ exports.focusNode = focusNode;
88
+ exports.getSibling = getSibling;
89
+ exports.isFocusable = isFocusable;
90
+ exports.isLeaf = isLeaf;
91
+ exports.isShadowRoot = isShadowRoot;
92
+ exports.isVisible = isVisible;
93
+ exports.obtainAllFocusableElements = obtainAllFocusableElements;
94
+ exports.triggerEvent = triggerEvent;
95
+ //# sourceMappingURL=aria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aria.js","sources":["../../../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])`\n\nexport const isShadowRoot = (e: unknown): e is ShadowRoot => {\n if (typeof ShadowRoot === 'undefined') return false\n return e instanceof ShadowRoot\n}\n\nconst isHTMLElement = (e: unknown): e is Element => {\n if (typeof Element === 'undefined') return false\n return e instanceof Element\n}\n\n/**\n * Determine if the testing element is visible on screen no matter if its on the viewport or not\n */\nexport const isVisible = (element: HTMLElement) => {\n if (process.env.NODE_ENV === 'test') return true\n const computed = getComputedStyle(element)\n // element.offsetParent won't work on fix positioned\n // WARNING: potential issue here, going to need some expert advices on this issue\n return computed.position === 'fixed' ? false : element.offsetParent !== null\n}\n\nexport const obtainAllFocusableElements = (\n element: HTMLElement\n): HTMLElement[] => {\n return Array.from(\n element.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENT_SELECTORS)\n ).filter((item: HTMLElement) => isFocusable(item) && isVisible(item))\n}\n\n/**\n * @desc Determine if target element is focusable\n * @param element {HTMLElement}\n * @returns {Boolean} true if it is focusable\n */\nexport const isFocusable = (element: HTMLElement): boolean => {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n if (\n element.tabIndex < 0 ||\n element.hasAttribute('disabled') ||\n element.getAttribute('aria-disabled') === 'true'\n ) {\n return false\n }\n\n switch (element.nodeName) {\n case 'A': {\n // casting current element to Specific HTMLElement in order to be more type precise\n return (\n !!(element as HTMLAnchorElement).href &&\n (element as HTMLAnchorElement).rel !== 'ignore'\n )\n }\n case 'INPUT': {\n return !(\n (element as HTMLInputElement).type === 'hidden' ||\n (element as HTMLInputElement).type === 'file'\n )\n }\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\n/**\n * Trigger an event\n * mouseenter, mouseleave, mouseover, keyup, change, click, etc.\n * @param {HTMLElement} elm\n * @param {String} name\n * @param {*} opts\n */\nexport const triggerEvent = function (\n elm: HTMLElement,\n name: string,\n ...opts: Array<boolean>\n): HTMLElement {\n let eventName: string\n\n if (name.includes('mouse') || name.includes('click')) {\n eventName = 'MouseEvents'\n } else if (name.includes('key')) {\n eventName = 'KeyboardEvent'\n } else {\n eventName = 'HTMLEvents'\n }\n const evt = document.createEvent(eventName)\n\n evt.initEvent(name, ...opts)\n elm.dispatchEvent(evt)\n return elm\n}\n\nexport const isLeaf = (el: HTMLElement) => !el.getAttribute('aria-owns')\n\nexport const getSibling = (\n el: HTMLElement,\n distance: number,\n elClass: string\n) => {\n const { parentNode } = el\n if (!parentNode) return null\n const siblings = parentNode.querySelectorAll(elClass)\n const index = Array.prototype.indexOf.call(siblings, el)\n return siblings[index + distance] || null\n}\n\nexport const focusElement = (\n el?: HTMLElement | { focus: () => void } | null,\n options?: FocusOptions\n) => {\n if (!el || !el.focus) return\n let cleanup: boolean = false\n\n if (isHTMLElement(el) && !isFocusable(el) && !el.getAttribute('tabindex')) {\n el.setAttribute('tabindex', '-1')\n cleanup = true\n }\n\n el.focus(options)\n\n if (isHTMLElement(el) && cleanup) {\n el.removeAttribute('tabindex')\n }\n}\n\nexport const focusNode = (el: HTMLElement) => {\n if (!el) return\n focusElement(el)\n !isLeaf(el) && el.click()\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var core = require('@vueuse/core');
4
+ var shared = require('@vue/shared');
5
+
6
+ const getElement = ((target) => {
7
+ if (!core.isClient || target === "") return null;
8
+ if (shared.isString(target)) {
9
+ try {
10
+ return document.querySelector(target);
11
+ } catch (e) {
12
+ return null;
13
+ }
14
+ }
15
+ return target;
16
+ });
17
+
18
+ exports.getElement = getElement;
19
+ //# sourceMappingURL=element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element.js","sources":["../../../dom/element.ts"],"sourcesContent":["import { isString } from '../types'\nimport { isClient } from '../browser'\n\ntype GetElement = <T extends string | HTMLElement | Window | null | undefined>(\n target: T\n) => T extends string ? HTMLElement | null : T\n\nexport const getElement = ((\n target: string | HTMLElement | Window | null | undefined\n) => {\n if (!isClient || target === '') return null\n if (isString(target)) {\n try {\n return document.querySelector<HTMLElement>(target)\n } catch {\n return null\n }\n }\n return target\n}) as GetElement\n"],"names":["isClient","isString"],"mappings":";;;;;AAOO,MAAM,UAAA,IAAc,CACzB,MAAA,KACG;AACH,EAAA,IAAI,CAACA,aAAA,IAAY,MAAA,KAAW,EAAA,EAAI,OAAO,IAAA;AACvC,EAAA,IAAIC,eAAA,CAAS,MAAM,CAAA,EAAG;AACpB,IAAA,IAAI;AACF,MAAA,OAAO,QAAA,CAAS,cAA2B,MAAM,CAAA;AAAA,IACnD,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT,CAAA;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var constants = require('@element-plus/constants');
4
+ var browser = require('../browser.js');
5
+
6
+ const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
7
+ const handleEvent = (event) => {
8
+ const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
9
+ if (checkForDefaultPrevented === false || !shouldPrevent) {
10
+ return oursHandler == null ? void 0 : oursHandler(event);
11
+ }
12
+ };
13
+ return handleEvent;
14
+ };
15
+ const whenMouse = (handler) => {
16
+ return (e) => e.pointerType === "mouse" ? handler(e) : void 0;
17
+ };
18
+ const getEventCode = (event) => {
19
+ if (event.code && event.code !== "Unidentified") return event.code;
20
+ const key = getEventKey(event);
21
+ if (key) {
22
+ if (Object.values(constants.EVENT_CODE).includes(key)) return key;
23
+ switch (key) {
24
+ case " ":
25
+ return constants.EVENT_CODE.space;
26
+ default:
27
+ return "";
28
+ }
29
+ }
30
+ return "";
31
+ };
32
+ const getEventKey = (event) => {
33
+ let key = event.key && event.key !== "Unidentified" ? event.key : "";
34
+ if (!key && event.type === "keyup" && browser.isAndroid()) {
35
+ const target = event.target;
36
+ key = target.value.charAt(target.selectionStart - 1);
37
+ }
38
+ return key;
39
+ };
40
+
41
+ exports.composeEventHandlers = composeEventHandlers;
42
+ exports.getEventCode = getEventCode;
43
+ exports.getEventKey = getEventKey;
44
+ exports.whenMouse = whenMouse;
45
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sources":["../../../dom/event.ts"],"sourcesContent":["import { EVENT_CODE } from '@element-plus/constants'\nimport { isAndroid } from '../browser'\n\nexport const composeEventHandlers = <E>(\n theirsHandler?: (event: E) => boolean | void,\n oursHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) => {\n const handleEvent = (event: E) => {\n const shouldPrevent = theirsHandler?.(event)\n\n if (checkForDefaultPrevented === false || !shouldPrevent) {\n return oursHandler?.(event)\n }\n }\n return handleEvent\n}\n\ntype WhenMouseHandler = (e: PointerEvent) => any\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\n return (e: PointerEvent) =>\n e.pointerType === 'mouse' ? handler(e) : undefined\n}\n\nexport const getEventCode = (event: KeyboardEvent): string => {\n if (event.code && event.code !== 'Unidentified') return event.code\n // On android, event.code is always '' (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code#browser_compatibility)\n const key = getEventKey(event)\n\n if (key) {\n if (Object.values(EVENT_CODE).includes(key)) return key\n\n switch (key) {\n case ' ':\n return EVENT_CODE.space\n default:\n return ''\n }\n }\n\n return ''\n}\n\nexport const getEventKey = (event: KeyboardEvent): string => {\n let key = event.key && event.key !== 'Unidentified' ? event.key : ''\n\n // On Android, event.key and event.code may not be useful when entering characters or space\n // So here we directly get the last character of the input\n // **only takes effect in the keyup event**\n if (!key && event.type === 'keyup' && isAndroid()) {\n const target = event.target as HTMLInputElement\n key = target.value.charAt(target.selectionStart! - 1)\n }\n\n return key\n}\n"],"names":["EVENT_CODE","isAndroid"],"mappings":";;;;;AAGO,MAAM,oBAAA,GAAuB,CAClC,aAAA,EACA,WAAA,EACA,EAAE,wBAAA,GAA2B,IAAA,EAAK,GAAI,EAAC,KACpC;AACH,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAa;AAChC,IAAA,MAAM,gBAAgB,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,KAAA,CAAA;AAEtC,IAAA,IAAI,wBAAA,KAA6B,KAAA,IAAS,CAAC,aAAA,EAAe;AACxD,MAAA,OAAO,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAc,KAAA,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AACA,EAAA,OAAO,WAAA;AACT;AAGO,MAAM,SAAA,GAAY,CAAC,OAAA,KAAgD;AACxE,EAAA,OAAO,CAAC,CAAA,KACN,CAAA,CAAE,gBAAgB,OAAA,GAAU,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAC7C;AAEO,MAAM,YAAA,GAAe,CAAC,KAAA,KAAiC;AAC5D,EAAA,IAAI,MAAM,IAAA,IAAQ,KAAA,CAAM,IAAA,KAAS,cAAA,SAAuB,KAAA,CAAM,IAAA;AAE9D,EAAA,MAAM,GAAA,GAAM,YAAY,KAAK,CAAA;AAE7B,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,IAAI,OAAO,MAAA,CAAOA,oBAAU,EAAE,QAAA,CAAS,GAAG,GAAG,OAAO,GAAA;AAEpD,IAAA,QAAQ,GAAA;AAAK,MACX,KAAK,GAAA;AACH,QAAA,OAAOA,oBAAA,CAAW,KAAA;AAAA,MACpB;AACE,QAAA,OAAO,EAAA;AAAA;AACX,EACF;AAEA,EAAA,OAAO,EAAA;AACT;AAEO,MAAM,WAAA,GAAc,CAAC,KAAA,KAAiC;AAC3D,EAAA,IAAI,MAAM,KAAA,CAAM,GAAA,IAAO,MAAM,GAAA,KAAQ,cAAA,GAAiB,MAAM,GAAA,GAAM,EAAA;AAKlE,EAAA,IAAI,CAAC,GAAA,IAAO,KAAA,CAAM,IAAA,KAAS,OAAA,IAAWC,mBAAU,EAAG;AACjD,IAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,IAAA,GAAA,GAAM,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,iBAAkB,CAAC,CAAA;AAAA,EACtD;AAEA,EAAA,OAAO,GAAA;AACT;;;;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var aria = require('./aria.js');
4
+ var event = require('./event.js');
5
+ var position = require('./position.js');
6
+ var scroll = require('./scroll.js');
7
+ var style = require('./style.js');
8
+ var element = require('./element.js');
9
+
10
+
11
+
12
+ exports.focusElement = aria.focusElement;
13
+ exports.focusNode = aria.focusNode;
14
+ exports.getSibling = aria.getSibling;
15
+ exports.isFocusable = aria.isFocusable;
16
+ exports.isLeaf = aria.isLeaf;
17
+ exports.isShadowRoot = aria.isShadowRoot;
18
+ exports.isVisible = aria.isVisible;
19
+ exports.obtainAllFocusableElements = aria.obtainAllFocusableElements;
20
+ exports.triggerEvent = aria.triggerEvent;
21
+ exports.composeEventHandlers = event.composeEventHandlers;
22
+ exports.getEventCode = event.getEventCode;
23
+ exports.getEventKey = event.getEventKey;
24
+ exports.whenMouse = event.whenMouse;
25
+ exports.getClientXY = position.getClientXY;
26
+ exports.getOffsetTop = position.getOffsetTop;
27
+ exports.getOffsetTopDistance = position.getOffsetTopDistance;
28
+ exports.isInContainer = position.isInContainer;
29
+ exports.animateScrollTo = scroll.animateScrollTo;
30
+ exports.getScrollBarWidth = scroll.getScrollBarWidth;
31
+ exports.getScrollContainer = scroll.getScrollContainer;
32
+ exports.getScrollElement = scroll.getScrollElement;
33
+ exports.getScrollTop = scroll.getScrollTop;
34
+ exports.isScroll = scroll.isScroll;
35
+ exports.scrollIntoView = scroll.scrollIntoView;
36
+ exports.addClass = style.addClass;
37
+ exports.addUnit = style.addUnit;
38
+ exports.classNameToArray = style.classNameToArray;
39
+ exports.getStyle = style.getStyle;
40
+ exports.hasClass = style.hasClass;
41
+ exports.removeClass = style.removeClass;
42
+ exports.removeStyle = style.removeStyle;
43
+ exports.setStyle = style.setStyle;
44
+ exports.getElement = element.getElement;
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var core = require('@vueuse/core');
4
+
5
+ const isInContainer = (el, container) => {
6
+ if (!core.isClient || !el || !container) return false;
7
+ const elRect = el.getBoundingClientRect();
8
+ let containerRect;
9
+ if (container instanceof Element) {
10
+ containerRect = container.getBoundingClientRect();
11
+ } else {
12
+ containerRect = {
13
+ top: 0,
14
+ right: window.innerWidth,
15
+ bottom: window.innerHeight,
16
+ left: 0
17
+ };
18
+ }
19
+ return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
20
+ };
21
+ const getOffsetTop = (el) => {
22
+ let offset = 0;
23
+ let parent = el;
24
+ while (parent) {
25
+ offset += parent.offsetTop;
26
+ parent = parent.offsetParent;
27
+ }
28
+ return offset;
29
+ };
30
+ const getOffsetTopDistance = (el, containerEl) => {
31
+ return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl));
32
+ };
33
+ const getClientXY = (event) => {
34
+ let clientX;
35
+ let clientY;
36
+ if (event.type === "touchend") {
37
+ clientY = event.changedTouches[0].clientY;
38
+ clientX = event.changedTouches[0].clientX;
39
+ } else if (event.type.startsWith("touch")) {
40
+ clientY = event.touches[0].clientY;
41
+ clientX = event.touches[0].clientX;
42
+ } else {
43
+ clientY = event.clientY;
44
+ clientX = event.clientX;
45
+ }
46
+ return {
47
+ clientX,
48
+ clientY
49
+ };
50
+ };
51
+
52
+ exports.getClientXY = getClientXY;
53
+ exports.getOffsetTop = getOffsetTop;
54
+ exports.getOffsetTopDistance = getOffsetTopDistance;
55
+ exports.isInContainer = isInContainer;
56
+ //# sourceMappingURL=position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.js","sources":["../../../dom/position.ts"],"sourcesContent":["import { isClient } from '../browser'\n\nexport const isInContainer = (\n el?: Element,\n container?: Element | Window\n): boolean => {\n if (!isClient || !el || !container) return false\n\n const elRect = el.getBoundingClientRect()\n\n let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\n if (container instanceof Element) {\n containerRect = container.getBoundingClientRect()\n } else {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0,\n }\n }\n return (\n elRect.top < containerRect.bottom &&\n elRect.bottom > containerRect.top &&\n elRect.right > containerRect.left &&\n elRect.left < containerRect.right\n )\n}\n\nexport const getOffsetTop = (el: HTMLElement) => {\n let offset = 0\n let parent = el\n\n while (parent) {\n offset += parent.offsetTop\n parent = parent.offsetParent as HTMLElement\n }\n\n return offset\n}\n\nexport const getOffsetTopDistance = (\n el: HTMLElement,\n containerEl: HTMLElement\n) => {\n return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\n}\n\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\n let clientX: number\n let clientY: number\n if (event.type === 'touchend') {\n clientY = (event as TouchEvent).changedTouches[0].clientY\n clientX = (event as TouchEvent).changedTouches[0].clientX\n } else if (event.type.startsWith('touch')) {\n clientY = (event as TouchEvent).touches[0].clientY\n clientX = (event as TouchEvent).touches[0].clientX\n } else {\n clientY = (event as MouseEvent).clientY\n clientX = (event as MouseEvent).clientX\n }\n return {\n clientX,\n clientY,\n }\n}\n"],"names":["isClient"],"mappings":";;;;AAEO,MAAM,aAAA,GAAgB,CAC3B,EAAA,EACA,SAAA,KACY;AACZ,EAAA,IAAI,CAACA,aAAA,IAAY,CAAC,EAAA,IAAM,CAAC,WAAW,OAAO,KAAA;AAE3C,EAAA,MAAM,MAAA,GAAS,GAAG,qBAAA,EAAsB;AAExC,EAAA,IAAI,aAAA;AACJ,EAAA,IAAI,qBAAqB,OAAA,EAAS;AAChC,IAAA,aAAA,GAAgB,UAAU,qBAAA,EAAsB;AAAA,EAClD,CAAA,MAAO;AACL,IAAA,aAAA,GAAgB;AAAA,MACd,GAAA,EAAK,CAAA;AAAA,MACL,OAAO,MAAA,CAAO,UAAA;AAAA,MACd,QAAQ,MAAA,CAAO,WAAA;AAAA,MACf,IAAA,EAAM;AAAA,KACR;AAAA,EACF;AACA,EAAA,OACE,MAAA,CAAO,GAAA,GAAM,aAAA,CAAc,MAAA,IAC3B,OAAO,MAAA,GAAS,aAAA,CAAc,GAAA,IAC9B,MAAA,CAAO,KAAA,GAAQ,aAAA,CAAc,IAAA,IAC7B,MAAA,CAAO,OAAO,aAAA,CAAc,KAAA;AAEhC;AAEO,MAAM,YAAA,GAAe,CAAC,EAAA,KAAoB;AAC/C,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,MAAA,GAAS,EAAA;AAEb,EAAA,OAAO,MAAA,EAAQ;AACb,IAAA,MAAA,IAAU,MAAA,CAAO,SAAA;AACjB,IAAA,MAAA,GAAS,MAAA,CAAO,YAAA;AAAA,EAClB;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,MAAM,oBAAA,GAAuB,CAClC,EAAA,EACA,WAAA,KACG;AACH,EAAA,OAAO,KAAK,GAAA,CAAI,YAAA,CAAa,EAAE,CAAA,GAAI,YAAA,CAAa,WAAW,CAAC,CAAA;AAC9D;AAEO,MAAM,WAAA,GAAc,CAAC,KAAA,KAAmC;AAC7D,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,KAAA,CAAM,SAAS,UAAA,EAAY;AAC7B,IAAA,OAAA,GAAW,KAAA,CAAqB,cAAA,CAAe,CAAC,CAAA,CAAE,OAAA;AAClD,IAAA,OAAA,GAAW,KAAA,CAAqB,cAAA,CAAe,CAAC,CAAA,CAAE,OAAA;AAAA,EACpD,CAAA,MAAA,IAAW,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AACzC,IAAA,OAAA,GAAW,KAAA,CAAqB,OAAA,CAAQ,CAAC,CAAA,CAAE,OAAA;AAC3C,IAAA,OAAA,GAAW,KAAA,CAAqB,OAAA,CAAQ,CAAC,CAAA,CAAE,OAAA;AAAA,EAC7C,CAAA,MAAO;AACL,IAAA,OAAA,GAAW,KAAA,CAAqB,OAAA;AAChC,IAAA,OAAA,GAAW,KAAA,CAAqB,OAAA;AAAA,EAClC;AACA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA;AAAA,GACF;AACF;;;;;;;"}
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var core = require('@vueuse/core');
4
+ var easings = require('../easings.js');
5
+ var types = require('../types.js');
6
+ var raf = require('../raf.js');
7
+ var style = require('./style.js');
8
+ var aria = require('./aria.js');
9
+ var shared = require('@vue/shared');
10
+
11
+ const isScroll = (el, isVertical) => {
12
+ if (!core.isClient) return false;
13
+ const key = {
14
+ undefined: "overflow",
15
+ true: "overflow-y",
16
+ false: "overflow-x"
17
+ }[String(isVertical)];
18
+ const overflow = style.getStyle(el, key);
19
+ return ["scroll", "auto", "overlay"].some((s) => overflow.includes(s));
20
+ };
21
+ const getScrollContainer = (el, isVertical) => {
22
+ if (!core.isClient) return;
23
+ let parent = el;
24
+ while (parent) {
25
+ if ([window, document, document.documentElement].includes(parent))
26
+ return window;
27
+ if (isScroll(parent, isVertical)) return parent;
28
+ if (aria.isShadowRoot(parent)) {
29
+ parent = parent.host;
30
+ } else {
31
+ parent = parent.parentNode;
32
+ }
33
+ }
34
+ return parent;
35
+ };
36
+ let scrollBarWidth;
37
+ const getScrollBarWidth = (namespace) => {
38
+ var _a;
39
+ if (!core.isClient) return 0;
40
+ if (scrollBarWidth !== void 0) return scrollBarWidth;
41
+ const outer = document.createElement("div");
42
+ outer.className = `${namespace}-scrollbar__wrap`;
43
+ outer.style.visibility = "hidden";
44
+ outer.style.width = "100px";
45
+ outer.style.position = "absolute";
46
+ outer.style.top = "-9999px";
47
+ document.body.appendChild(outer);
48
+ const widthNoScroll = outer.offsetWidth;
49
+ outer.style.overflow = "scroll";
50
+ const inner = document.createElement("div");
51
+ inner.style.width = "100%";
52
+ outer.appendChild(inner);
53
+ const widthWithScroll = inner.offsetWidth;
54
+ (_a = outer.parentNode) == null ? void 0 : _a.removeChild(outer);
55
+ scrollBarWidth = widthNoScroll - widthWithScroll;
56
+ return scrollBarWidth;
57
+ };
58
+ function scrollIntoView(container, selected) {
59
+ if (!core.isClient) return;
60
+ if (!selected) {
61
+ container.scrollTop = 0;
62
+ return;
63
+ }
64
+ const offsetParents = [];
65
+ let pointer = selected.offsetParent;
66
+ while (pointer !== null && container !== pointer && container.contains(pointer)) {
67
+ offsetParents.push(pointer);
68
+ pointer = pointer.offsetParent;
69
+ }
70
+ const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
71
+ const bottom = top + selected.offsetHeight;
72
+ const viewRectTop = container.scrollTop;
73
+ const viewRectBottom = viewRectTop + container.clientHeight;
74
+ if (top < viewRectTop) {
75
+ container.scrollTop = top;
76
+ } else if (bottom > viewRectBottom) {
77
+ container.scrollTop = bottom - container.clientHeight;
78
+ }
79
+ }
80
+ function animateScrollTo(container, from, to, duration, callback) {
81
+ const startTime = Date.now();
82
+ let handle;
83
+ const scroll = () => {
84
+ const timestamp = Date.now();
85
+ const time = timestamp - startTime;
86
+ const nextScrollTop = easings.easeInOutCubic(
87
+ time > duration ? duration : time,
88
+ from,
89
+ to,
90
+ duration
91
+ );
92
+ if (types.isWindow(container)) {
93
+ container.scrollTo(window.pageXOffset, nextScrollTop);
94
+ } else {
95
+ container.scrollTop = nextScrollTop;
96
+ }
97
+ if (time < duration) {
98
+ handle = raf.rAF(scroll);
99
+ } else if (shared.isFunction(callback)) {
100
+ callback();
101
+ }
102
+ };
103
+ scroll();
104
+ return () => {
105
+ handle && raf.cAF(handle);
106
+ };
107
+ }
108
+ const getScrollElement = (target, container) => {
109
+ if (types.isWindow(container)) {
110
+ return target.ownerDocument.documentElement;
111
+ }
112
+ return container;
113
+ };
114
+ const getScrollTop = (container) => {
115
+ if (types.isWindow(container)) {
116
+ return window.scrollY;
117
+ }
118
+ return container.scrollTop;
119
+ };
120
+
121
+ exports.animateScrollTo = animateScrollTo;
122
+ exports.getScrollBarWidth = getScrollBarWidth;
123
+ exports.getScrollContainer = getScrollContainer;
124
+ exports.getScrollElement = getScrollElement;
125
+ exports.getScrollTop = getScrollTop;
126
+ exports.isScroll = isScroll;
127
+ exports.scrollIntoView = scrollIntoView;
128
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sources":["../../../dom/scroll.ts"],"sourcesContent":["import { isClient } from '../browser'\nimport { easeInOutCubic } from '../easings'\nimport { isFunction, isWindow } from '../types'\nimport { cAF, rAF } from '../raf'\nimport { getStyle } from './style'\nimport { isShadowRoot } from './aria'\n\nexport const isScroll = (el: HTMLElement, isVertical?: boolean): boolean => {\n if (!isClient) return false\n\n const key = (\n {\n undefined: 'overflow',\n true: 'overflow-y',\n false: 'overflow-x',\n } as const\n )[String(isVertical)]!\n const overflow = getStyle(el, key)\n return ['scroll', 'auto', 'overlay'].some((s) => overflow.includes(s))\n}\n\nexport const getScrollContainer = (\n el: HTMLElement,\n isVertical?: boolean\n): Window | HTMLElement | undefined => {\n if (!isClient) return\n\n let parent: HTMLElement = el\n while (parent) {\n if ([window, document, document.documentElement].includes(parent))\n return window\n\n if (isScroll(parent, isVertical)) return parent\n\n if (isShadowRoot(parent)) {\n parent = parent.host as HTMLElement\n } else {\n parent = parent.parentNode as HTMLElement\n }\n }\n\n return parent\n}\n\nlet scrollBarWidth: number\nexport const getScrollBarWidth = (namespace: string): number => {\n if (!isClient) return 0\n if (scrollBarWidth !== undefined) return scrollBarWidth\n\n const outer = document.createElement('div')\n outer.className = `${namespace}-scrollbar__wrap`\n outer.style.visibility = 'hidden'\n outer.style.width = '100px'\n outer.style.position = 'absolute'\n outer.style.top = '-9999px'\n document.body.appendChild(outer)\n\n const widthNoScroll = outer.offsetWidth\n outer.style.overflow = 'scroll'\n\n const inner = document.createElement('div')\n inner.style.width = '100%'\n outer.appendChild(inner)\n\n const widthWithScroll = inner.offsetWidth\n outer.parentNode?.removeChild(outer)\n scrollBarWidth = widthNoScroll - widthWithScroll\n\n return scrollBarWidth\n}\n\n/**\n * Scroll with in the container element, positioning the **selected** element at the top\n * of the container\n */\nexport function scrollIntoView(\n container: HTMLElement,\n selected: HTMLElement\n): void {\n if (!isClient) return\n\n if (!selected) {\n container.scrollTop = 0\n return\n }\n\n const offsetParents: HTMLElement[] = []\n let pointer = selected.offsetParent\n while (\n pointer !== null &&\n container !== pointer &&\n container.contains(pointer)\n ) {\n offsetParents.push(pointer as HTMLElement)\n pointer = (pointer as HTMLElement).offsetParent\n }\n const top =\n selected.offsetTop +\n offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0)\n const bottom = top + selected.offsetHeight\n const viewRectTop = container.scrollTop\n const viewRectBottom = viewRectTop + container.clientHeight\n\n if (top < viewRectTop) {\n container.scrollTop = top\n } else if (bottom > viewRectBottom) {\n container.scrollTop = bottom - container.clientHeight\n }\n}\n\nexport function animateScrollTo(\n container: HTMLElement | Window,\n from: number,\n to: number,\n duration: number,\n callback?: unknown\n) {\n const startTime = Date.now()\n\n let handle: number | undefined\n const scroll = () => {\n const timestamp = Date.now()\n const time = timestamp - startTime\n const nextScrollTop = easeInOutCubic(\n time > duration ? duration : time,\n from,\n to,\n duration\n )\n\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop)\n } else {\n container.scrollTop = nextScrollTop\n }\n if (time < duration) {\n handle = rAF(scroll)\n } else if (isFunction(callback)) {\n callback()\n }\n }\n\n scroll()\n\n return () => {\n handle && cAF(handle)\n }\n}\n\nexport const getScrollElement = (\n target: HTMLElement,\n container: HTMLElement | Window\n) => {\n if (isWindow(container)) {\n return target.ownerDocument.documentElement\n }\n return container\n}\n\nexport const getScrollTop = (container: HTMLElement | Window) => {\n if (isWindow(container)) {\n return window.scrollY\n }\n return container.scrollTop\n}\n"],"names":["isClient","getStyle","isShadowRoot","easeInOutCubic","isWindow","rAF","isFunction","cAF"],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var types = require('../types.js');
4
+ var core = require('@vueuse/core');
5
+ var shared = require('@vue/shared');
6
+ var objects = require('../objects.js');
7
+ var error = require('../error.js');
8
+ var aria = require('./aria.js');
9
+
10
+ const SCOPE = "utils/dom/style";
11
+ const classNameToArray = (cls = "") => cls.split(" ").filter((item) => !!item.trim());
12
+ const hasClass = (el, cls) => {
13
+ if (!el || !cls) return false;
14
+ if (cls.includes(" ")) throw new Error("className should not contain space.");
15
+ return el.classList.contains(cls);
16
+ };
17
+ const addClass = (el, cls) => {
18
+ if (!el || !cls.trim()) return;
19
+ el.classList.add(...classNameToArray(cls));
20
+ };
21
+ const removeClass = (el, cls) => {
22
+ if (!el || !cls.trim()) return;
23
+ el.classList.remove(...classNameToArray(cls));
24
+ };
25
+ const getStyle = (element, styleName) => {
26
+ var _a;
27
+ if (!core.isClient || !element || !styleName || aria.isShadowRoot(element)) return "";
28
+ let key = shared.camelize(styleName);
29
+ if (key === "float") key = "cssFloat";
30
+ try {
31
+ const style = element.style[key];
32
+ if (style) return style;
33
+ const computed = (_a = document.defaultView) == null ? void 0 : _a.getComputedStyle(element, "");
34
+ return computed ? computed[key] : "";
35
+ } catch (e) {
36
+ return element.style[key];
37
+ }
38
+ };
39
+ const setStyle = (element, styleName, value) => {
40
+ if (!element || !styleName) return;
41
+ if (shared.isObject(styleName)) {
42
+ objects.entriesOf(styleName).forEach(
43
+ ([prop, value2]) => setStyle(element, prop, value2)
44
+ );
45
+ } else {
46
+ const key = shared.camelize(styleName);
47
+ element.style[key] = value;
48
+ }
49
+ };
50
+ const removeStyle = (element, style) => {
51
+ if (!element || !style) return;
52
+ if (shared.isObject(style)) {
53
+ objects.keysOf(style).forEach((prop) => removeStyle(element, prop));
54
+ } else {
55
+ setStyle(element, style, "");
56
+ }
57
+ };
58
+ function addUnit(value, defaultUnit = "px") {
59
+ if (!value && value !== 0) return "";
60
+ if (types.isNumber(value) || types.isStringNumber(value)) {
61
+ return `${value}${defaultUnit}`;
62
+ } else if (shared.isString(value)) {
63
+ return value;
64
+ }
65
+ error.debugWarn(SCOPE, "binding value must be a string or number");
66
+ }
67
+
68
+ exports.addClass = addClass;
69
+ exports.addUnit = addUnit;
70
+ exports.classNameToArray = classNameToArray;
71
+ exports.getStyle = getStyle;
72
+ exports.hasClass = hasClass;
73
+ exports.removeClass = removeClass;
74
+ exports.removeStyle = removeStyle;
75
+ exports.setStyle = setStyle;
76
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sources":["../../../dom/style.ts"],"sourcesContent":["import { isNumber, isObject, isString, isStringNumber } from '../types'\nimport { isClient } from '../browser'\nimport { camelize } from '../strings'\nimport { entriesOf, keysOf } from '../objects'\nimport { debugWarn } from '../error'\nimport { isShadowRoot } from './aria'\n\nimport type { CSSProperties } from 'vue'\n\nconst SCOPE = 'utils/dom/style'\n\nexport const classNameToArray = (cls = '') =>\n cls.split(' ').filter((item) => !!item.trim())\n\nexport const hasClass = (el: Element, cls: string): boolean => {\n if (!el || !cls) return false\n if (cls.includes(' ')) throw new Error('className should not contain space.')\n return el.classList.contains(cls)\n}\n\nexport const addClass = (el: Element, cls: string) => {\n if (!el || !cls.trim()) return\n el.classList.add(...classNameToArray(cls))\n}\n\nexport const removeClass = (el: Element, cls: string) => {\n if (!el || !cls.trim()) return\n el.classList.remove(...classNameToArray(cls))\n}\n\nexport const getStyle = (\n element: HTMLElement,\n styleName: keyof CSSProperties\n): string => {\n if (!isClient || !element || !styleName || isShadowRoot(element)) return ''\n\n let key = camelize(styleName)\n if (key === 'float') key = 'cssFloat'\n try {\n const style = (element.style as any)[key]\n if (style) return style\n const computed: any = document.defaultView?.getComputedStyle(element, '')\n return computed ? computed[key] : ''\n } catch {\n return (element.style as any)[key]\n }\n}\n\nexport const setStyle = (\n element: HTMLElement,\n styleName: CSSProperties | keyof CSSProperties,\n value?: string | number\n) => {\n if (!element || !styleName) return\n\n if (isObject(styleName)) {\n entriesOf(styleName).forEach(([prop, value]) =>\n setStyle(element, prop, value)\n )\n } else {\n const key: any = camelize(styleName)\n element.style[key] = value as any\n }\n}\n\nexport const removeStyle = (\n element: HTMLElement,\n style: CSSProperties | keyof CSSProperties\n) => {\n if (!element || !style) return\n\n if (isObject(style)) {\n keysOf(style).forEach((prop) => removeStyle(element, prop))\n } else {\n setStyle(element, style, '')\n }\n}\n\nexport function addUnit(value?: string | number, defaultUnit = 'px') {\n if (!value && value !== 0) return ''\n if (isNumber(value) || isStringNumber(value)) {\n return `${value}${defaultUnit}`\n } else if (isString(value)) {\n return value\n }\n debugWarn(SCOPE, 'binding value must be a string or number')\n}\n"],"names":["isClient","isShadowRoot","camelize","isObject","entriesOf","value","keysOf","isNumber","isStringNumber","isString","debugWarn"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ function easeInOutCubic(t, b, c, d) {
4
+ const cc = c - b;
5
+ t /= d / 2;
6
+ if (t < 1) {
7
+ return cc / 2 * t * t * t + b;
8
+ }
9
+ return cc / 2 * ((t -= 2) * t * t + 2) + b;
10
+ }
11
+
12
+ exports.easeInOutCubic = easeInOutCubic;
13
+ //# sourceMappingURL=easings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easings.js","sources":["../../easings.ts"],"sourcesContent":["export function easeInOutCubic(t: number, b: number, c: number, d: number) {\n const cc = c - b\n t /= d / 2\n if (t < 1) {\n return (cc / 2) * t * t * t + b\n }\n return (cc / 2) * ((t -= 2) * t * t + 2) + b\n}\n"],"names":[],"mappings":";;AAAO,SAAS,cAAA,CAAe,CAAA,EAAW,CAAA,EAAW,CAAA,EAAW,CAAA,EAAW;AACzE,EAAA,MAAM,KAAK,CAAA,GAAI,CAAA;AACf,EAAA,CAAA,IAAK,CAAA,GAAI,CAAA;AACT,EAAA,IAAI,IAAI,CAAA,EAAG;AACT,IAAA,OAAQ,EAAA,GAAK,CAAA,GAAK,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EAChC;AACA,EAAA,OAAQ,KAAK,CAAA,IAAA,CAAO,CAAA,IAAK,CAAA,IAAK,CAAA,GAAI,IAAI,CAAA,CAAA,GAAK,CAAA;AAC7C;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var shared = require('@vue/shared');
4
+
5
+ class ElementPlusError extends Error {
6
+ constructor(m) {
7
+ super(m);
8
+ this.name = "ElementPlusError";
9
+ }
10
+ }
11
+ function throwError(scope, m) {
12
+ throw new ElementPlusError(`[${scope}] ${m}`);
13
+ }
14
+ function debugWarn(scope, message) {
15
+ if (process.env.NODE_ENV !== "production") {
16
+ const error = shared.isString(scope) ? new ElementPlusError(`[${scope}] ${message}`) : scope;
17
+ console.warn(error);
18
+ }
19
+ }
20
+
21
+ exports.debugWarn = debugWarn;
22
+ exports.throwError = throwError;
23
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sources":["../../error.ts"],"sourcesContent":["import { isString } from './types'\n\nclass ElementPlusError extends Error {\n constructor(m: string) {\n super(m)\n this.name = 'ElementPlusError'\n }\n}\n\nexport function throwError(scope: string, m: string): never {\n throw new ElementPlusError(`[${scope}] ${m}`)\n}\n\nexport function debugWarn(err: Error): void\nexport function debugWarn(scope: string, message: string): void\nexport function debugWarn(scope: string | Error, message?: string): void {\n if (process.env.NODE_ENV !== 'production') {\n const error: Error = isString(scope)\n ? new ElementPlusError(`[${scope}] ${message}`)\n : scope\n // eslint-disable-next-line no-console\n console.warn(error)\n }\n}\n"],"names":["isString"],"mappings":";;;;AAEA,MAAM,yBAAyB,KAAA,CAAM;AAAA,EACnC,YAAY,CAAA,EAAW;AACrB,IAAA,KAAA,CAAM,CAAC,CAAA;AACP,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AAAA,EACd;AACF;AAEO,SAAS,UAAA,CAAW,OAAe,CAAA,EAAkB;AAC1D,EAAA,MAAM,IAAI,gBAAA,CAAiB,CAAA,CAAA,EAAI,KAAK,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAA;AAC9C;AAIO,SAAS,SAAA,CAAU,OAAuB,OAAA,EAAwB;AACvE,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,MAAM,KAAA,GAAeA,eAAA,CAAS,KAAK,CAAA,GAC/B,IAAI,gBAAA,CAAiB,CAAA,CAAA,EAAI,KAAK,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA,GAC5C,KAAA;AAEJ,IAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,EACpB;AACF;;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var shared = require('@vue/shared');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "NOOP", {
8
+ enumerable: true,
9
+ get: function () { return shared.NOOP; }
10
+ });
11
+ Object.defineProperty(exports, "toRawType", {
12
+ enumerable: true,
13
+ get: function () { return shared.toRawType; }
14
+ });
15
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
4
+
5
+ exports.isKorean = isKorean;
6
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../i18n.ts"],"sourcesContent":["export const isKorean = (text: string) =>\n /([\\uAC00-\\uD7AF\\u3130-\\u318F])+/gi.test(text)\n"],"names":[],"mappings":";;AAAO,MAAM,QAAA,GAAW,CAAC,IAAA,KACvB,mCAAA,CAAoC,KAAK,IAAI;;;;"}