@yamada-ui/utils 2.0.0-dev-20240531201720 → 2.0.0-dev-20250626073729

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 (171) hide show
  1. package/README.md +7 -13
  2. package/dist/cjs/_virtual/rolldown_runtime.cjs +30 -0
  3. package/dist/cjs/array.cjs +14 -0
  4. package/dist/cjs/array.cjs.map +1 -0
  5. package/dist/cjs/assertion.cjs +73 -0
  6. package/dist/cjs/assertion.cjs.map +1 -0
  7. package/dist/cjs/calc.cjs +39 -0
  8. package/dist/cjs/calc.cjs.map +1 -0
  9. package/dist/cjs/color.cjs +247 -0
  10. package/dist/cjs/color.cjs.map +1 -0
  11. package/dist/cjs/dom.cjs +378 -0
  12. package/dist/cjs/dom.cjs.map +1 -0
  13. package/dist/cjs/event.cjs +92 -0
  14. package/dist/cjs/event.cjs.map +1 -0
  15. package/dist/cjs/function.cjs +27 -0
  16. package/dist/cjs/function.cjs.map +1 -0
  17. package/dist/cjs/i18n.cjs +46 -0
  18. package/dist/cjs/i18n.cjs.map +1 -0
  19. package/dist/cjs/index.cjs +148 -0
  20. package/dist/cjs/index.types.cjs +0 -0
  21. package/dist/cjs/module.cjs +9 -0
  22. package/dist/cjs/module.cjs.map +1 -0
  23. package/dist/cjs/number.cjs +46 -0
  24. package/dist/cjs/number.cjs.map +1 -0
  25. package/dist/cjs/object.cjs +120 -0
  26. package/dist/cjs/object.cjs.map +1 -0
  27. package/dist/cjs/string.cjs +95 -0
  28. package/dist/cjs/string.cjs.map +1 -0
  29. package/dist/esm/array.js +13 -0
  30. package/dist/esm/array.js.map +1 -0
  31. package/dist/esm/assertion.js +56 -0
  32. package/dist/esm/assertion.js.map +1 -0
  33. package/dist/esm/calc.js +38 -0
  34. package/dist/esm/calc.js.map +1 -0
  35. package/dist/esm/color.js +232 -0
  36. package/dist/esm/color.js.map +1 -0
  37. package/dist/esm/dom.js +325 -0
  38. package/dist/esm/dom.js.map +1 -0
  39. package/dist/esm/event.js +83 -0
  40. package/dist/esm/event.js.map +1 -0
  41. package/dist/esm/function.js +24 -0
  42. package/dist/esm/function.js.map +1 -0
  43. package/dist/esm/i18n.js +45 -0
  44. package/dist/esm/i18n.js.map +1 -0
  45. package/dist/esm/index.js +14 -0
  46. package/dist/esm/index.types.js +0 -0
  47. package/dist/esm/module.js +8 -0
  48. package/dist/esm/module.js.map +1 -0
  49. package/dist/esm/number.js +39 -0
  50. package/dist/esm/number.js.map +1 -0
  51. package/dist/esm/object.js +108 -0
  52. package/dist/esm/object.js.map +1 -0
  53. package/dist/esm/string.js +86 -0
  54. package/dist/esm/string.js.map +1 -0
  55. package/dist/types/array.d.ts +6 -0
  56. package/dist/types/assertion.d.ts +23 -0
  57. package/dist/types/calc.d.ts +25 -0
  58. package/dist/types/color.d.ts +20 -0
  59. package/dist/types/dom.d.ts +61 -0
  60. package/dist/types/event.d.ts +21 -0
  61. package/dist/types/function.d.ts +8 -0
  62. package/dist/types/i18n.d.ts +5 -0
  63. package/dist/types/index.d.ts +14 -0
  64. package/dist/types/index.types.d.ts +15 -0
  65. package/dist/types/module.d.ts +5 -0
  66. package/dist/types/number.d.ts +11 -0
  67. package/dist/types/object.d.ts +36 -0
  68. package/dist/types/string.d.ts +16 -0
  69. package/package.json +26 -27
  70. package/dist/array.d.mts +0 -3
  71. package/dist/array.d.ts +0 -3
  72. package/dist/array.js +0 -31
  73. package/dist/array.js.map +0 -1
  74. package/dist/array.mjs +0 -7
  75. package/dist/array.mjs.map +0 -1
  76. package/dist/assertion.d.mts +0 -17
  77. package/dist/assertion.d.ts +0 -17
  78. package/dist/assertion.js +0 -67
  79. package/dist/assertion.js.map +0 -1
  80. package/dist/assertion.mjs +0 -31
  81. package/dist/assertion.mjs.map +0 -1
  82. package/dist/calc.d.mts +0 -18
  83. package/dist/calc.d.ts +0 -18
  84. package/dist/calc.js +0 -57
  85. package/dist/calc.js.map +0 -1
  86. package/dist/calc.mjs +0 -7
  87. package/dist/calc.mjs.map +0 -1
  88. package/dist/chunk-5OUUTZYQ.mjs +0 -7
  89. package/dist/chunk-5OUUTZYQ.mjs.map +0 -1
  90. package/dist/chunk-A74F6ICI.mjs +0 -52
  91. package/dist/chunk-A74F6ICI.mjs.map +0 -1
  92. package/dist/chunk-L56KWSQO.mjs +0 -33
  93. package/dist/chunk-L56KWSQO.mjs.map +0 -1
  94. package/dist/chunk-L76GM3GN.mjs +0 -50
  95. package/dist/chunk-L76GM3GN.mjs.map +0 -1
  96. package/dist/chunk-P52P4NMT.mjs +0 -41
  97. package/dist/chunk-P52P4NMT.mjs.map +0 -1
  98. package/dist/chunk-P5JCSYB3.mjs +0 -31
  99. package/dist/chunk-P5JCSYB3.mjs.map +0 -1
  100. package/dist/chunk-PZXEZGEL.mjs +0 -811
  101. package/dist/chunk-PZXEZGEL.mjs.map +0 -1
  102. package/dist/chunk-RSDBT4DI.mjs +0 -1
  103. package/dist/chunk-RSDBT4DI.mjs.map +0 -1
  104. package/dist/chunk-WV6P7ZCI.mjs +0 -7
  105. package/dist/chunk-WV6P7ZCI.mjs.map +0 -1
  106. package/dist/color.d.mts +0 -33
  107. package/dist/color.d.ts +0 -33
  108. package/dist/color.js +0 -374
  109. package/dist/color.js.map +0 -1
  110. package/dist/color.mjs +0 -61
  111. package/dist/color.mjs.map +0 -1
  112. package/dist/dom.d.mts +0 -34
  113. package/dist/dom.d.ts +0 -34
  114. package/dist/dom.js +0 -196
  115. package/dist/dom.js.map +0 -1
  116. package/dist/dom.mjs +0 -65
  117. package/dist/dom.mjs.map +0 -1
  118. package/dist/event.d.mts +0 -30
  119. package/dist/event.d.ts +0 -30
  120. package/dist/event.js +0 -84
  121. package/dist/event.js.map +0 -1
  122. package/dist/event.mjs +0 -23
  123. package/dist/event.mjs.map +0 -1
  124. package/dist/function.d.mts +0 -6
  125. package/dist/function.d.ts +0 -6
  126. package/dist/function.js +0 -51
  127. package/dist/function.js.map +0 -1
  128. package/dist/function.mjs +0 -21
  129. package/dist/function.mjs.map +0 -1
  130. package/dist/index.d.mts +0 -14
  131. package/dist/index.d.ts +0 -14
  132. package/dist/index.js +0 -1162
  133. package/dist/index.js.map +0 -1
  134. package/dist/index.mjs +0 -270
  135. package/dist/index.mjs.map +0 -1
  136. package/dist/index.types.d.mts +0 -12
  137. package/dist/index.types.d.ts +0 -12
  138. package/dist/index.types.js +0 -19
  139. package/dist/index.types.js.map +0 -1
  140. package/dist/index.types.mjs +0 -2
  141. package/dist/index.types.mjs.map +0 -1
  142. package/dist/module.d.mts +0 -3
  143. package/dist/module.d.ts +0 -3
  144. package/dist/module.js +0 -31
  145. package/dist/module.js.map +0 -1
  146. package/dist/module.mjs +0 -7
  147. package/dist/module.mjs.map +0 -1
  148. package/dist/number.d.mts +0 -9
  149. package/dist/number.d.ts +0 -9
  150. package/dist/number.js +0 -71
  151. package/dist/number.js.map +0 -1
  152. package/dist/number.mjs +0 -19
  153. package/dist/number.mjs.map +0 -1
  154. package/dist/object.d.mts +0 -18
  155. package/dist/object.d.ts +0 -18
  156. package/dist/object.js +0 -220
  157. package/dist/object.js.map +0 -1
  158. package/dist/object.mjs +0 -41
  159. package/dist/object.mjs.map +0 -1
  160. package/dist/react.d.mts +0 -105
  161. package/dist/react.d.ts +0 -105
  162. package/dist/react.js +0 -258
  163. package/dist/react.js.map +0 -1
  164. package/dist/react.mjs +0 -55
  165. package/dist/react.mjs.map +0 -1
  166. package/dist/string.d.mts +0 -8
  167. package/dist/string.d.ts +0 -8
  168. package/dist/string.js +0 -77
  169. package/dist/string.js.map +0 -1
  170. package/dist/string.mjs +0 -13
  171. package/dist/string.mjs.map +0 -1
@@ -0,0 +1,148 @@
1
+ const require_assertion = require('./assertion.cjs');
2
+ const require_array = require('./array.cjs');
3
+ const require_calc = require('./calc.cjs');
4
+ const require_color = require('./color.cjs');
5
+ const require_function = require('./function.cjs');
6
+ const require_dom = require('./dom.cjs');
7
+ const require_event = require('./event.cjs');
8
+ const require_i18n = require('./i18n.cjs');
9
+ const require_module = require('./module.cjs');
10
+ const require_number = require('./number.cjs');
11
+ const require_object = require('./object.cjs');
12
+ const require_string = require('./string.cjs');
13
+
14
+ exports.COLOR_SCHEMES = require_color.COLOR_SCHEMES;
15
+ exports.DEFAULT_COLOR_SCHEMES = require_color.DEFAULT_COLOR_SCHEMES;
16
+ exports.SEMANTIC_COLOR_SCHEMES = require_color.SEMANTIC_COLOR_SCHEMES;
17
+ exports.TONES = require_color.TONES;
18
+ exports.addDomEvent = require_event.addDomEvent;
19
+ exports.alphaToHex = require_color.alphaToHex;
20
+ exports.antonym = require_string.antonym;
21
+ exports.ariaAttr = require_dom.ariaAttr;
22
+ exports.bem = require_string.bem;
23
+ exports.calc = require_calc.calc;
24
+ exports.calcFormat = require_color.calcFormat;
25
+ exports.cast = require_assertion.cast;
26
+ exports.clampNumber = require_number.clampNumber;
27
+ exports.contains = require_dom.contains;
28
+ exports.convertColor = require_color.convertColor;
29
+ exports.countDecimal = require_number.countDecimal;
30
+ exports.createdDom = require_dom.createdDom;
31
+ exports.cx = require_string.cx;
32
+ exports.dataAttr = require_dom.dataAttr;
33
+ exports.escape = require_string.escape;
34
+ exports.filterEmpty = require_array.filterEmpty;
35
+ exports.filterObject = require_object.filterObject;
36
+ exports.filterUndefined = require_object.filterUndefined;
37
+ exports.flattenObject = require_object.flattenObject;
38
+ exports.fnAll = require_function.fnAll;
39
+ exports.focusTransfer = require_event.focusTransfer;
40
+ exports.focusTrap = require_event.focusTrap;
41
+ exports.getActiveElement = require_dom.getActiveElement;
42
+ exports.getAlpha = require_color.getAlpha;
43
+ exports.getDocument = require_dom.getDocument;
44
+ exports.getDocumentElement = require_dom.getDocumentElement;
45
+ exports.getEventPoint = require_event.getEventPoint;
46
+ exports.getEventWindow = require_event.getEventWindow;
47
+ exports.getFirstFocusableElement = require_dom.getFirstFocusableElement;
48
+ exports.getFirstTabbableElement = require_dom.getFirstTabbableElement;
49
+ exports.getFocusableElements = require_dom.getFocusableElements;
50
+ exports.getLastTabbableElement = require_dom.getLastTabbableElement;
51
+ exports.getMemoizedObject = require_object.getMemoizedObject;
52
+ exports.getNextTabbableElement = require_dom.getNextTabbableElement;
53
+ exports.getNodeName = require_dom.getNodeName;
54
+ exports.getObject = require_object.getObject;
55
+ exports.getParentNode = require_dom.getParentNode;
56
+ exports.getPlatform = require_dom.getPlatform;
57
+ exports.getPx = require_dom.getPx;
58
+ exports.getTabIndex = require_dom.getTabIndex;
59
+ exports.getTabbableElementEdges = require_dom.getTabbableElementEdges;
60
+ exports.getTabbableElements = require_dom.getTabbableElements;
61
+ exports.getUserAgent = require_dom.getUserAgent;
62
+ exports.getWindow = require_dom.getWindow;
63
+ exports.handlerAll = require_function.handlerAll;
64
+ exports.hslaTo = require_color.hslaTo;
65
+ exports.hsvTo = require_color.hsvTo;
66
+ exports.interopDefault = require_module.interopDefault;
67
+ exports.is = require_assertion.is;
68
+ exports.isActiveElement = require_dom.isActiveElement;
69
+ exports.isAndroid = require_dom.isAndroid;
70
+ exports.isApple = require_dom.isApple;
71
+ exports.isArray = require_assertion.isArray;
72
+ exports.isBoolean = require_assertion.isBoolean;
73
+ exports.isBooleanish = require_assertion.isBooleanish;
74
+ exports.isChrome = require_dom.isChrome;
75
+ exports.isDisabledElement = require_dom.isDisabledElement;
76
+ exports.isDocument = require_dom.isDocument;
77
+ exports.isEditableElement = require_dom.isEditableElement;
78
+ exports.isEmpty = require_assertion.isEmpty;
79
+ exports.isEmptyObject = require_assertion.isEmptyObject;
80
+ exports.isFirefox = require_dom.isFirefox;
81
+ exports.isFocusableElement = require_dom.isFocusableElement;
82
+ exports.isFrame = require_dom.isFrame;
83
+ exports.isFunction = require_assertion.isFunction;
84
+ exports.isHTMLElement = require_dom.isHTMLElement;
85
+ exports.isHiddenElement = require_dom.isHiddenElement;
86
+ exports.isIPad = require_dom.isIPad;
87
+ exports.isIPhone = require_dom.isIPhone;
88
+ exports.isInputElement = require_dom.isInputElement;
89
+ exports.isIos = require_dom.isIos;
90
+ exports.isMac = require_dom.isMac;
91
+ exports.isMouseEvent = require_event.isMouseEvent;
92
+ exports.isMultiTouchEvent = require_event.isMultiTouchEvent;
93
+ exports.isNode = require_dom.isNode;
94
+ exports.isNotNumber = require_assertion.isNotNumber;
95
+ exports.isNull = require_assertion.isNull;
96
+ exports.isNumber = require_assertion.isNumber;
97
+ exports.isNumeric = require_assertion.isNumeric;
98
+ exports.isObject = require_assertion.isObject;
99
+ exports.isRegExp = require_assertion.isRegExp;
100
+ exports.isRtl = require_i18n.isRtl;
101
+ exports.isSafari = require_dom.isSafari;
102
+ exports.isShadowRoot = require_dom.isShadowRoot;
103
+ exports.isSize = require_string.isSize;
104
+ exports.isString = require_assertion.isString;
105
+ exports.isTabbableElement = require_dom.isTabbableElement;
106
+ exports.isTouchDevice = require_dom.isTouchDevice;
107
+ exports.isTouchEvent = require_event.isTouchEvent;
108
+ exports.isUndefined = require_assertion.isUndefined;
109
+ exports.isUnit = require_assertion.isUnit;
110
+ exports.isVisibleElement = require_dom.isVisibleElement;
111
+ exports.isVisualViewport = require_dom.isVisualViewport;
112
+ exports.isWebKit = require_dom.isWebKit;
113
+ exports.isWindow = require_dom.isWindow;
114
+ exports.memoizeObject = require_object.memoizeObject;
115
+ exports.merge = require_object.merge;
116
+ exports.noop = require_function.noop;
117
+ exports.objectKeys = require_object.objectKeys;
118
+ exports.omitObject = require_object.omitObject;
119
+ exports.parseToHsla = require_color.parseToHsla;
120
+ exports.parseToHsv = require_color.parseToHsv;
121
+ exports.parseToRgba = require_color.parseToRgba;
122
+ exports.percentToValue = require_number.percentToValue;
123
+ exports.pickObject = require_object.pickObject;
124
+ exports.platform = require_dom.platform;
125
+ exports.pointFromMouse = require_event.pointFromMouse;
126
+ exports.pointFromTouch = require_event.pointFromTouch;
127
+ exports.replaceObject = require_object.replaceObject;
128
+ exports.rgbaTo = require_color.rgbaTo;
129
+ exports.roundNumberToStep = require_number.roundNumberToStep;
130
+ exports.runIfFn = require_function.runIfFn;
131
+ exports.sameColor = require_color.sameColor;
132
+ exports.scrollLock = require_dom.scrollLock;
133
+ exports.setAttribute = require_dom.setAttribute;
134
+ exports.setStyle = require_dom.setStyle;
135
+ exports.splitObject = require_object.splitObject;
136
+ exports.toArray = require_array.toArray;
137
+ exports.toCamelCase = require_string.toCamelCase;
138
+ exports.toKebabCase = require_string.toKebabCase;
139
+ exports.toNumber = require_number.toNumber;
140
+ exports.toPascalCase = require_string.toPascalCase;
141
+ exports.toPrecision = require_number.toPrecision;
142
+ exports.toTitleCase = require_string.toTitleCase;
143
+ exports.transformSize = require_string.transformSize;
144
+ exports.userAgent = require_dom.userAgent;
145
+ exports.uuid = require_dom.uuid;
146
+ exports.valueToPercent = require_number.valueToPercent;
147
+ exports.vendor = require_dom.vendor;
148
+ exports.wrapWithKey = require_object.wrapWithKey;
File without changes
@@ -0,0 +1,9 @@
1
+
2
+ //#region src/module.ts
3
+ function interopDefault(module$1) {
4
+ return module$1.default || module$1;
5
+ }
6
+
7
+ //#endregion
8
+ exports.interopDefault = interopDefault;
9
+ //# sourceMappingURL=module.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.cjs","names":["module: T","module"],"sources":["../../src/module.ts"],"sourcesContent":["export function interopDefault<T>(module: T): T {\n return (module as { default: T }).default || module\n}\n"],"mappings":";;AAAA,SAAgB,eAAkBA,UAAc;AAC9C,QAAQC,SAA0B,WAAWA;AAC9C"}
@@ -0,0 +1,46 @@
1
+
2
+ //#region src/number.ts
3
+ function toNumber(n) {
4
+ const num = parseFloat(n);
5
+ return typeof num !== "number" || Number.isNaN(num) ? 0 : num;
6
+ }
7
+ function toPrecision(n, precision) {
8
+ n = toNumber(n);
9
+ const scale = 10 ** (precision ?? 10);
10
+ n = Math.round(n * scale) / scale;
11
+ return precision ? n.toFixed(precision) : n.toString();
12
+ }
13
+ function countDecimal(n) {
14
+ if (!Number.isFinite(n)) return 0;
15
+ let e = 1;
16
+ let p = 0;
17
+ while (Math.round(n * e) / e !== n) {
18
+ e *= 10;
19
+ p += 1;
20
+ }
21
+ return p;
22
+ }
23
+ function roundNumberToStep(n, from, step) {
24
+ const nextValue = Math.round((n - from) / step) * step + from;
25
+ const precision = countDecimal(step);
26
+ return toPrecision(nextValue, precision);
27
+ }
28
+ function valueToPercent(n, min, max) {
29
+ return (n - min) * 100 / (max - min);
30
+ }
31
+ function percentToValue(n, min, max) {
32
+ return (max - min) * n + min;
33
+ }
34
+ function clampNumber(n, min, max) {
35
+ return Math.min(Math.max(n, min), max);
36
+ }
37
+
38
+ //#endregion
39
+ exports.clampNumber = clampNumber;
40
+ exports.countDecimal = countDecimal;
41
+ exports.percentToValue = percentToValue;
42
+ exports.roundNumberToStep = roundNumberToStep;
43
+ exports.toNumber = toNumber;
44
+ exports.toPrecision = toPrecision;
45
+ exports.valueToPercent = valueToPercent;
46
+ //# sourceMappingURL=number.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.cjs","names":["n: any","n: number","precision?: number","from: number","step: number","min: number","max: number"],"sources":["../../src/number.ts"],"sourcesContent":["export function toNumber(n: any): number {\n const num = parseFloat(n)\n\n return typeof num !== \"number\" || Number.isNaN(num) ? 0 : num\n}\n\nexport function toPrecision(n: number, precision?: number): string {\n n = toNumber(n)\n\n const scale = 10 ** (precision ?? 10)\n\n n = Math.round(n * scale) / scale\n\n return precision ? n.toFixed(precision) : n.toString()\n}\n\nexport function countDecimal(n: number): number {\n if (!Number.isFinite(n)) return 0\n\n let e = 1\n let p = 0\n\n while (Math.round(n * e) / e !== n) {\n e *= 10\n p += 1\n }\n\n return p\n}\n\nexport function roundNumberToStep(n: number, from: number, step: number) {\n const nextValue = Math.round((n - from) / step) * step + from\n\n const precision = countDecimal(step)\n\n return toPrecision(nextValue, precision)\n}\n\nexport function valueToPercent(n: number, min: number, max: number): number {\n return ((n - min) * 100) / (max - min)\n}\n\nexport function percentToValue(n: number, min: number, max: number) {\n return (max - min) * n + min\n}\n\nexport function clampNumber(n: number, min: number, max: number): number {\n return Math.min(Math.max(n, min), max)\n}\n"],"mappings":";;AAAA,SAAgB,SAASA,GAAgB;CACvC,MAAM,MAAM,WAAW,EAAE;AAEzB,eAAc,QAAQ,YAAY,OAAO,MAAM,IAAI,GAAG,IAAI;AAC3D;AAED,SAAgB,YAAYC,GAAWC,WAA4B;AACjE,KAAI,SAAS,EAAE;CAEf,MAAM,QAAQ,OAAO,aAAa;AAElC,KAAI,KAAK,MAAM,IAAI,MAAM,GAAG;AAE5B,QAAO,YAAY,EAAE,QAAQ,UAAU,GAAG,EAAE,UAAU;AACvD;AAED,SAAgB,aAAaD,GAAmB;AAC9C,MAAK,OAAO,SAAS,EAAE,CAAE,QAAO;CAEhC,IAAI,IAAI;CACR,IAAI,IAAI;AAER,QAAO,KAAK,MAAM,IAAI,EAAE,GAAG,MAAM,GAAG;AAClC,OAAK;AACL,OAAK;CACN;AAED,QAAO;AACR;AAED,SAAgB,kBAAkBA,GAAWE,MAAcC,MAAc;CACvE,MAAM,YAAY,KAAK,OAAO,IAAI,QAAQ,KAAK,GAAG,OAAO;CAEzD,MAAM,YAAY,aAAa,KAAK;AAEpC,QAAO,YAAY,WAAW,UAAU;AACzC;AAED,SAAgB,eAAeH,GAAWI,KAAaC,KAAqB;AAC1E,SAAS,IAAI,OAAO,OAAQ,MAAM;AACnC;AAED,SAAgB,eAAeL,GAAWI,KAAaC,KAAa;AAClE,SAAQ,MAAM,OAAO,IAAI;AAC1B;AAED,SAAgB,YAAYL,GAAWI,KAAaC,KAAqB;AACvE,QAAO,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,EAAE,IAAI;AACvC"}
@@ -0,0 +1,120 @@
1
+ const require_assertion = require('./assertion.cjs');
2
+
3
+ //#region src/object.ts
4
+ function omitObject(obj, keys) {
5
+ if (!keys.length) return obj;
6
+ const result = {};
7
+ Object.keys(obj).forEach((key) => {
8
+ if (keys.includes(key)) return;
9
+ result[key] = obj[key];
10
+ });
11
+ return result;
12
+ }
13
+ function pickObject(obj, keys) {
14
+ if (!keys.length) return {};
15
+ const result = {};
16
+ keys.forEach((key) => {
17
+ if (key in obj) result[key] = obj[key];
18
+ });
19
+ return result;
20
+ }
21
+ function splitObject(obj, funcOrKeys) {
22
+ const picked = {};
23
+ const omitted = {};
24
+ for (const [key, value] of Object.entries(obj)) if (require_assertion.isFunction(funcOrKeys) ? funcOrKeys(key) : funcOrKeys?.includes(key)) picked[key] = value;
25
+ else omitted[key] = value;
26
+ return [picked, omitted];
27
+ }
28
+ function filterObject(obj, func) {
29
+ const result = {};
30
+ Object.entries(obj).forEach(([key, value]) => {
31
+ const shouldPass = func(key, value, obj);
32
+ if (shouldPass) result[key] = value;
33
+ });
34
+ return result;
35
+ }
36
+ function filterUndefined(obj) {
37
+ return filterObject(obj, (_, val) => val !== null && val !== void 0);
38
+ }
39
+ function merge(target, source, options = {
40
+ mergeArray: false,
41
+ shouldProcess: () => true
42
+ }) {
43
+ let result = Object.assign({}, target);
44
+ if (require_assertion.isObject(source) && options.shouldProcess?.(source)) if (require_assertion.isObject(target)) for (const [sourceKey, sourceValue] of Object.entries(source)) {
45
+ const targetValue = target[sourceKey];
46
+ if (options.shouldProcess(sourceValue)) if (options.mergeArray && require_assertion.isArray(sourceValue) && require_assertion.isArray(targetValue)) result[sourceKey] = targetValue.concat(...sourceValue);
47
+ else if (!require_assertion.isFunction(sourceValue) && require_assertion.isObject(sourceValue) && target.hasOwnProperty(sourceKey)) result[sourceKey] = merge(targetValue, sourceValue, options);
48
+ else Object.assign(result, { [sourceKey]: sourceValue });
49
+ else Object.assign(result, { [sourceKey]: sourceValue });
50
+ }
51
+ else result = source;
52
+ return result;
53
+ }
54
+ function flattenObject(obj, { maxDepth = Infinity, separator = ".", shouldProcess = () => true } = {}) {
55
+ if (!require_assertion.isObject(obj) && !require_assertion.isArray(obj)) return obj;
56
+ return Object.entries(obj).reduce((result, [key, value]) => {
57
+ if (require_assertion.isObject(value) && shouldProcess(value) && maxDepth > 1) Object.entries(flattenObject(value, {
58
+ maxDepth: maxDepth - 1,
59
+ separator,
60
+ shouldProcess
61
+ })).forEach(([childKey, childValue]) => {
62
+ result[`${key}${separator}${childKey}`] = childValue;
63
+ });
64
+ else result[key] = value;
65
+ return result;
66
+ }, {});
67
+ }
68
+ function objectKeys(obj) {
69
+ return Object.keys(obj);
70
+ }
71
+ function replaceObject(objOrArray, callBack) {
72
+ if (require_assertion.isArray(objOrArray)) return objOrArray.map(callBack);
73
+ else if (require_assertion.isObject(objOrArray)) return Object.entries(objOrArray).reduce((obj, [key, value]) => {
74
+ obj[key] = callBack(value);
75
+ return obj;
76
+ }, {});
77
+ else return callBack(objOrArray);
78
+ }
79
+ function getObject(obj, path, fallback) {
80
+ const keys = require_assertion.isString(path) ? path.split(/\[(.*?)\]|\./).filter(Boolean) : [path];
81
+ for (const key of keys) {
82
+ if (!obj) break;
83
+ obj = obj[key];
84
+ }
85
+ return obj === void 0 ? fallback : obj;
86
+ }
87
+ function memoizeObject(func) {
88
+ const cache = /* @__PURE__ */ new WeakMap();
89
+ function memoizedFunc(obj, path, fallback) {
90
+ if (require_assertion.isUndefined(obj)) return func(obj, path, fallback);
91
+ if (!cache.has(obj)) cache.set(obj, /* @__PURE__ */ new Map());
92
+ const map = cache.get(obj);
93
+ if (map.has(path)) return map.get(path);
94
+ const value = func(obj, path, fallback);
95
+ map.set(path, value);
96
+ return value;
97
+ }
98
+ return memoizedFunc;
99
+ }
100
+ const getMemoizedObject = memoizeObject(getObject);
101
+ function wrapWithKey(obj, key) {
102
+ if (key) return { [key]: obj };
103
+ else return obj;
104
+ }
105
+
106
+ //#endregion
107
+ exports.filterObject = filterObject;
108
+ exports.filterUndefined = filterUndefined;
109
+ exports.flattenObject = flattenObject;
110
+ exports.getMemoizedObject = getMemoizedObject;
111
+ exports.getObject = getObject;
112
+ exports.memoizeObject = memoizeObject;
113
+ exports.merge = merge;
114
+ exports.objectKeys = objectKeys;
115
+ exports.omitObject = omitObject;
116
+ exports.pickObject = pickObject;
117
+ exports.replaceObject = replaceObject;
118
+ exports.splitObject = splitObject;
119
+ exports.wrapWithKey = wrapWithKey;
120
+ //# sourceMappingURL=object.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.cjs","names":["obj: Y","keys: M[] | readonly M[]","result: Dict","funcOrKeys?: ((key: string) => boolean) | M[] | readonly M[]","picked: Dict","omitted: Dict","func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean","target: any","source: any","options: mergeOptions","targetValue: any","obj: any","objOrArray: Y","callBack: (value: any) => any","obj: Dict | undefined","path: number | string","fallback?: any","func: typeof getObject","obj: Dict","obj: T","key?: string"],"sources":["../../src/object.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\nimport {\n isArray,\n isFunction,\n isObject,\n isString,\n isUndefined,\n} from \"./assertion\"\n\nexport function omitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): Omit<Y, M> {\n if (!keys.length) return obj\n\n const result: Dict = {}\n\n Object.keys(obj).forEach((key) => {\n if (keys.includes(key as M)) return\n\n result[key] = obj[key]\n })\n\n return result as Omit<Y, M>\n}\n\nexport function pickObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): { [D in M]: Y[D] } {\n if (!keys.length) return {} as { [D in M]: Y[D] }\n\n const result = {} as { [D in M]: Y[D] }\n\n keys.forEach((key) => {\n if (key in obj) result[key] = obj[key]\n })\n\n return result\n}\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: M[] | readonly M[],\n): [{ [D in M]: Y[D] }, Omit<Y, M>]\n\nexport function splitObject<Y extends Dict, M extends Dict>(\n obj: Dict,\n funcOrKeys?: (key: string) => boolean,\n): [Y, M]\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: ((key: string) => boolean) | M[] | readonly M[],\n) {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (\n isFunction(funcOrKeys) ? funcOrKeys(key) : funcOrKeys?.includes(key as M)\n ) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [D in M]: Y[D] }, Omit<Y, M>]\n}\n\nexport function filterObject<Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport function filterUndefined<Y extends Dict>(obj: Y): Y {\n return filterObject(obj, (_, val) => val !== null && val !== undefined)\n}\n\nexport interface mergeOptions {\n debug?: boolean\n mergeArray?: boolean\n shouldProcess?: (value: any) => boolean\n}\n\nexport function merge<Y extends Dict>(\n target: any,\n source: any,\n options: mergeOptions = { mergeArray: false, shouldProcess: () => true },\n): Y {\n let result = Object.assign({}, target)\n\n if (isObject(source) && options.shouldProcess?.(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (options.shouldProcess(sourceValue)) {\n if (\n options.mergeArray &&\n isArray(sourceValue) &&\n isArray(targetValue)\n ) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, options)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport interface FlattenObjectOptions {\n maxDepth?: number\n separator?: string\n shouldProcess?: (value: any) => boolean\n}\n\nexport function flattenObject<Y extends Dict>(\n obj: any,\n {\n maxDepth = Infinity,\n separator = \".\",\n shouldProcess = () => true,\n }: FlattenObjectOptions = {},\n): Y {\n if (!isObject(obj) && !isArray(obj)) return obj\n\n return Object.entries(obj).reduce<any>((result, [key, value]) => {\n if (isObject(value) && shouldProcess(value) && maxDepth > 1) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {}) as Y\n}\n\nexport function objectKeys<Y extends object>(obj: Y): (keyof Y)[] {\n return Object.keys(obj) as (keyof Y)[]\n}\n\nexport function replaceObject<Y = any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce<Dict>((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {}) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport function getObject(\n obj: Dict | undefined,\n path: number | string,\n fallback?: any,\n) {\n const keys = isString(path)\n ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean)\n : [path]\n\n for (const key of keys) {\n if (!obj) break\n\n obj = obj[key]\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport function memoizeObject(func: typeof getObject) {\n const cache = new WeakMap()\n\n function memoizedFunc<Y>(\n obj: Dict,\n path: number | string,\n fallback?: any,\n ): Y {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport function wrapWithKey<T>(obj: T, key?: string) {\n if (key) {\n return { [key]: obj }\n } else {\n return obj\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ const require_assertion = require('./assertion.cjs');
2
+
3
+ //#region src/string.ts
4
+ function cx(...classNames) {
5
+ return classNames.filter((className) => !require_assertion.isUndefined(className)).map((className) => className.trim()).join(" ");
6
+ }
7
+ function escape(value, replaceValue = "") {
8
+ return value.replace(/\s+/g, replaceValue);
9
+ }
10
+ function antonym(value) {
11
+ switch (value) {
12
+ case "top": return "bottom";
13
+ case "bottom": return "top";
14
+ case "left": return "right";
15
+ case "right": return "left";
16
+ case "start": return "end";
17
+ case "end": return "start";
18
+ case "x": return "y";
19
+ case "y": return "x";
20
+ case "enter": return "exit";
21
+ case "exit": return "enter";
22
+ case "vertical": return "horizontal";
23
+ case "horizontal": return "vertical";
24
+ case "up": return "down";
25
+ case "down": return "up";
26
+ case "block": return "inline";
27
+ case "inline": return "block";
28
+ default: return value;
29
+ }
30
+ }
31
+ const sizeMap = [
32
+ "9xs",
33
+ "8xs",
34
+ "7xs",
35
+ "6xs",
36
+ "5xs",
37
+ "4xs",
38
+ "3xs",
39
+ "2xs",
40
+ "xs",
41
+ "sm",
42
+ "md",
43
+ "lg",
44
+ "xl",
45
+ "2xl",
46
+ "3xl",
47
+ "4xl",
48
+ "5xl",
49
+ "6xl",
50
+ "7xl",
51
+ "8xl",
52
+ "9xl"
53
+ ];
54
+ function isSize(value) {
55
+ return require_assertion.isString(value) && sizeMap.includes(value);
56
+ }
57
+ function transformSize(token, value, omitTokens = null) {
58
+ if (!token) return void 0;
59
+ let resolvedSizeMap = sizeMap;
60
+ if (omitTokens) resolvedSizeMap = sizeMap.filter((size$1) => !omitTokens.includes(size$1));
61
+ const index = resolvedSizeMap.indexOf(token);
62
+ const size = resolvedSizeMap[index + value];
63
+ return size ?? token;
64
+ }
65
+ function toCamelCase(value) {
66
+ return value.replace(/[_-](.)/g, (_, val) => val.toUpperCase()).replace(/^(.)/, (_, val) => val.toLowerCase());
67
+ }
68
+ function toPascalCase(value) {
69
+ return value.replace(/[_-](.)/g, (_, val) => val.toUpperCase()).replace(/^(.)/, (_, val) => val.toUpperCase());
70
+ }
71
+ function toKebabCase(value) {
72
+ return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase().replace(/^-/, "");
73
+ }
74
+ function toTitleCase(value) {
75
+ return value.replace(/([A-Z])/g, " $1").replace(/[_-](.)/g, (_, val) => ` ${val.toUpperCase()}`).replace(/^./, (str) => str.toUpperCase()).trim();
76
+ }
77
+ function bem(block, element, modifier) {
78
+ let className = block;
79
+ if (element) className += `__${element}`;
80
+ if (modifier) className += `--${modifier}`;
81
+ return className;
82
+ }
83
+
84
+ //#endregion
85
+ exports.antonym = antonym;
86
+ exports.bem = bem;
87
+ exports.cx = cx;
88
+ exports.escape = escape;
89
+ exports.isSize = isSize;
90
+ exports.toCamelCase = toCamelCase;
91
+ exports.toKebabCase = toKebabCase;
92
+ exports.toPascalCase = toPascalCase;
93
+ exports.toTitleCase = toTitleCase;
94
+ exports.transformSize = transformSize;
95
+ //# sourceMappingURL=string.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.cjs","names":["value: string","sizeMap: AnyString[]","value: any","token: string | undefined","value: number","omitTokens: null | string[]","size","value: AnyString","block: string","element?: string","modifier?: string"],"sources":["../../src/string.ts"],"sourcesContent":["import type { AnyString } from \"./index.types\"\nimport { isString, isUndefined } from \"./assertion\"\n\nexport function cx(...classNames: (string | undefined)[]) {\n return classNames\n .filter((className) => !isUndefined(className))\n .map((className) => className.trim())\n .join(\" \")\n}\n\nexport function escape(value: string, replaceValue = \"\"): string {\n return value.replace(/\\s+/g, replaceValue)\n}\n\nexport function antonym(value: string): string {\n switch (value) {\n case \"top\":\n return \"bottom\"\n\n case \"bottom\":\n return \"top\"\n\n case \"left\":\n return \"right\"\n\n case \"right\":\n return \"left\"\n\n case \"start\":\n return \"end\"\n\n case \"end\":\n return \"start\"\n\n case \"x\":\n return \"y\"\n\n case \"y\":\n return \"x\"\n\n case \"enter\":\n return \"exit\"\n\n case \"exit\":\n return \"enter\"\n\n case \"vertical\":\n return \"horizontal\"\n\n case \"horizontal\":\n return \"vertical\"\n\n case \"up\":\n return \"down\"\n\n case \"down\":\n return \"up\"\n\n case \"block\":\n return \"inline\"\n\n case \"inline\":\n return \"block\"\n\n default:\n return value\n }\n}\n\nconst sizeMap: AnyString[] = [\n \"9xs\",\n \"8xs\",\n \"7xs\",\n \"6xs\",\n \"5xs\",\n \"4xs\",\n \"3xs\",\n \"2xs\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"2xl\",\n \"3xl\",\n \"4xl\",\n \"5xl\",\n \"6xl\",\n \"7xl\",\n \"8xl\",\n \"9xl\",\n]\n\nexport function isSize(value: any): boolean {\n return isString(value) && sizeMap.includes(value)\n}\n\nexport function transformSize<Y = string>(\n token: string | undefined,\n value: number,\n omitTokens: null | string[] = null,\n): undefined | Y {\n if (!token) return undefined\n\n let resolvedSizeMap = sizeMap\n\n if (omitTokens)\n resolvedSizeMap = sizeMap.filter((size) => !omitTokens.includes(size))\n\n const index = resolvedSizeMap.indexOf(token)\n const size = resolvedSizeMap[index + value]\n\n return (size ?? token) as Y\n}\n\nexport function toCamelCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toLowerCase())\n}\n\nexport function toPascalCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toUpperCase())\n}\n\nexport function toKebabCase(value: AnyString): string {\n return value\n .replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\")\n .toLowerCase()\n .replace(/^-/, \"\")\n}\n\nexport function toTitleCase(value: AnyString): string {\n return value\n .replace(/([A-Z])/g, \" $1\")\n .replace(/[_-](.)/g, (_, val) => ` ${val.toUpperCase()}`)\n .replace(/^./, (str) => str.toUpperCase())\n .trim()\n}\n\nexport function bem(block: string, element?: string, modifier?: string) {\n let className = block\n\n if (element) className += `__${element}`\n if (modifier) className += `--${modifier}`\n\n return className\n}\n"],"mappings":";;;AAGA,SAAgB,GAAG,GAAG,YAAoC;AACxD,QAAO,WACJ,OAAO,CAAC,eAAe,8BAAY,UAAU,CAAC,CAC9C,IAAI,CAAC,cAAc,UAAU,MAAM,CAAC,CACpC,KAAK,IAAI;AACb;AAED,SAAgB,OAAOA,OAAe,eAAe,IAAY;AAC/D,QAAO,MAAM,QAAQ,QAAQ,aAAa;AAC3C;AAED,SAAgB,QAAQA,OAAuB;AAC7C,SAAQ,OAAR;EACE,KAAK,MACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,MACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,WACH,QAAO;EAET,KAAK,aACH,QAAO;EAET,KAAK,KACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,QACE,QAAO;CACV;AACF;AAED,MAAMC,UAAuB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,SAAgB,OAAOC,OAAqB;AAC1C,QAAO,2BAAS,MAAM,IAAI,QAAQ,SAAS,MAAM;AAClD;AAED,SAAgB,cACdC,OACAC,OACAC,aAA8B,MACf;AACf,MAAK,MAAO;CAEZ,IAAI,kBAAkB;AAEtB,KAAI,WACF,mBAAkB,QAAQ,OAAO,CAACC,YAAU,WAAW,SAASA,OAAK,CAAC;CAExE,MAAM,QAAQ,gBAAgB,QAAQ,MAAM;CAC5C,MAAM,OAAO,gBAAgB,QAAQ;AAErC,QAAQ,QAAQ;AACjB;AAED,SAAgB,YAAYC,OAA0B;AACpD,QAAO,MACJ,QAAQ,YAAY,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,QAAQ,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC;AAClD;AAED,SAAgB,aAAaA,OAA0B;AACrD,QAAO,MACJ,QAAQ,YAAY,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,QAAQ,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC;AAClD;AAED,SAAgB,YAAYA,OAA0B;AACpD,QAAO,MACJ,QAAQ,gCAAgC,QAAQ,CAChD,aAAa,CACb,QAAQ,MAAM,GAAG;AACrB;AAED,SAAgB,YAAYA,OAA0B;AACpD,QAAO,MACJ,QAAQ,YAAY,MAAM,CAC1B,QAAQ,YAAY,CAAC,GAAG,SAAS,GAAG,IAAI,aAAa,GAAG,CACxD,QAAQ,MAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,CACzC,MAAM;AACV;AAED,SAAgB,IAAIC,OAAeC,SAAkBC,UAAmB;CACtE,IAAI,YAAY;AAEhB,KAAI,QAAS,eAAc,IAAI;AAC/B,KAAI,SAAU,eAAc,IAAI;AAEhC,QAAO;AACR"}
@@ -0,0 +1,13 @@
1
+ import { isEmptyObject } from "./assertion.js";
2
+
3
+ //#region src/array.ts
4
+ function filterEmpty(array) {
5
+ return array.filter((value) => value != null && !isEmptyObject(value));
6
+ }
7
+ function toArray(mixedArray) {
8
+ return (Array.isArray(mixedArray) ? mixedArray.flat() : [mixedArray]).filter(Boolean);
9
+ }
10
+
11
+ //#endregion
12
+ export { filterEmpty, toArray };
13
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","names":["array: Y[]","mixedArray: Y"],"sources":["../../src/array.ts"],"sourcesContent":["import { isEmptyObject } from \"./assertion\"\n\nexport function filterEmpty<Y>(array: Y[]): Exclude<Y, null | undefined>[] {\n return array.filter(\n (value) => value != null && !isEmptyObject(value),\n ) as Exclude<Y, null | undefined>[]\n}\n\nexport function toArray<Y>(mixedArray: Y) {\n return (Array.isArray(mixedArray) ? mixedArray.flat() : [mixedArray]).filter(\n Boolean,\n ) as Y extends any[]\n ? Exclude<Y[number], null | undefined>[]\n : Exclude<Y, null | undefined>[]\n}\n"],"mappings":";;;AAEA,SAAgB,YAAeA,OAA4C;AACzE,QAAO,MAAM,OACX,CAAC,UAAU,SAAS,SAAS,cAAc,MAAM,CAClD;AACF;AAED,SAAgB,QAAWC,YAAe;AACxC,QAAO,CAAC,MAAM,QAAQ,WAAW,GAAG,WAAW,MAAM,GAAG,CAAC,UAAW,GAAE,OACpE,QACD;AAGF"}
@@ -0,0 +1,56 @@
1
+ //#region src/assertion.ts
2
+ function is(x, y) {
3
+ return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
4
+ }
5
+ function isNumber(value) {
6
+ return typeof value === "number";
7
+ }
8
+ function isNotNumber(value) {
9
+ return typeof value !== "number" || Number.isNaN(value) || !Number.isFinite(value);
10
+ }
11
+ function isNumeric(value) {
12
+ return !isNaN(parseFloat(String(value))) && isFinite(Number(value)) && /^-?\d*\.?\d+$/.test(String(value));
13
+ }
14
+ function isString(value) {
15
+ return Object.prototype.toString.call(value) === "[object String]";
16
+ }
17
+ function isBooleanish(value) {
18
+ return isBoolean(value) || value === "true" || value === "false";
19
+ }
20
+ function isBoolean(value) {
21
+ return typeof value === "boolean";
22
+ }
23
+ function isUndefined(value) {
24
+ return typeof value === "undefined";
25
+ }
26
+ function isNull(value) {
27
+ return value === null;
28
+ }
29
+ function isRegExp(value) {
30
+ return value instanceof RegExp;
31
+ }
32
+ function isObject(value) {
33
+ return value !== null && (typeof value === "object" || typeof value === "function") && !isArray(value);
34
+ }
35
+ function isArray(value) {
36
+ return Array.isArray(value);
37
+ }
38
+ function isEmpty(value) {
39
+ return !isArray(value) || !value.length || value.every((v) => v == null);
40
+ }
41
+ function isEmptyObject(value) {
42
+ return isObject(value) && !Object.keys(value).length;
43
+ }
44
+ function isFunction(value) {
45
+ return typeof value === "function";
46
+ }
47
+ function isUnit(value) {
48
+ return /[0-9].*(em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cm|mm|Q|in|pc|pt|px|%|cqw|cqh|cqi|cqb|cqmin|cqmax)$/.test(value);
49
+ }
50
+ function cast(value) {
51
+ return value;
52
+ }
53
+
54
+ //#endregion
55
+ export { cast, is, isArray, isBoolean, isBooleanish, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isString, isUndefined, isUnit };
56
+ //# sourceMappingURL=assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.js","names":["x: any","y: any","value: any"],"sources":["../../src/assertion.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\n\nexport function is(x: any, y: any) {\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === \"number\"\n}\n\nexport function isNotNumber(value: any): boolean {\n return (\n typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value)\n )\n}\n\nexport function isNumeric(value: any): boolean {\n return (\n !isNaN(parseFloat(String(value))) &&\n isFinite(Number(value)) &&\n /^-?\\d*\\.?\\d+$/.test(String(value))\n )\n}\n\nexport function isString(value: any): value is string {\n return Object.prototype.toString.call(value) === \"[object String]\"\n}\n\nexport function isBooleanish(value: any): value is boolean {\n return isBoolean(value) || value === \"true\" || value === \"false\"\n}\n\nexport function isBoolean(value: any): value is boolean {\n return typeof value === \"boolean\"\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === \"undefined\"\n}\n\nexport function isNull(value: any): value is null {\n return value === null\n}\n\nexport function isRegExp(value: any): value is RegExp {\n return value instanceof RegExp\n}\n\nexport function isObject<T extends Dict>(value: any): value is T {\n return (\n value !== null &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n !isArray(value)\n )\n}\n\nexport function isArray<T extends any[]>(value: any): value is T {\n return Array.isArray(value)\n}\n\nexport function isEmpty(value: any): boolean {\n return !isArray(value) || !value.length || value.every((v) => v == null)\n}\n\nexport function isEmptyObject(value: any): boolean {\n return isObject(value) && !Object.keys(value).length\n}\n\nexport function isFunction<T extends Function = Function>(\n value: any,\n): value is T {\n return typeof value === \"function\"\n}\n\nexport function isUnit(value: any): boolean {\n return /[0-9].*(em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cm|mm|Q|in|pc|pt|px|%|cqw|cqh|cqi|cqb|cqmin|cqmax)$/.test(\n value,\n )\n}\n\nexport function cast<T>(value: any) {\n return value as T\n}\n"],"mappings":";AAEA,SAAgB,GAAGA,GAAQC,GAAQ;AACjC,QAAQ,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,MAAQ,MAAM,KAAK,MAAM;AACvE;AAED,SAAgB,SAASC,OAA6B;AACpD,eAAc,UAAU;AACzB;AAED,SAAgB,YAAYA,OAAqB;AAC/C,eACS,UAAU,YAAY,OAAO,MAAM,MAAM,KAAK,OAAO,SAAS,MAAM;AAE9E;AAED,SAAgB,UAAUA,OAAqB;AAC7C,SACG,MAAM,WAAW,OAAO,MAAM,CAAC,CAAC,IACjC,SAAS,OAAO,MAAM,CAAC,IACvB,gBAAgB,KAAK,OAAO,MAAM,CAAC;AAEtC;AAED,SAAgB,SAASA,OAA6B;AACpD,QAAO,OAAO,UAAU,SAAS,KAAK,MAAM,KAAK;AAClD;AAED,SAAgB,aAAaA,OAA8B;AACzD,QAAO,UAAU,MAAM,IAAI,UAAU,UAAU,UAAU;AAC1D;AAED,SAAgB,UAAUA,OAA8B;AACtD,eAAc,UAAU;AACzB;AAED,SAAgB,YAAYA,OAAgC;AAC1D,eAAc,UAAU;AACzB;AAED,SAAgB,OAAOA,OAA2B;AAChD,QAAO,UAAU;AAClB;AAED,SAAgB,SAASA,OAA6B;AACpD,QAAO,iBAAiB;AACzB;AAED,SAAgB,SAAyBA,OAAwB;AAC/D,QACE,UAAU,gBACF,UAAU,mBAAmB,UAAU,gBAC9C,QAAQ,MAAM;AAElB;AAED,SAAgB,QAAyBA,OAAwB;AAC/D,QAAO,MAAM,QAAQ,MAAM;AAC5B;AAED,SAAgB,QAAQA,OAAqB;AAC3C,SAAQ,QAAQ,MAAM,KAAK,MAAM,UAAU,MAAM,MAAM,CAAC,MAAM,KAAK,KAAK;AACzE;AAED,SAAgB,cAAcA,OAAqB;AACjD,QAAO,SAAS,MAAM,KAAK,OAAO,KAAK,MAAM,CAAC;AAC/C;AAED,SAAgB,WACdA,OACY;AACZ,eAAc,UAAU;AACzB;AAED,SAAgB,OAAOA,OAAqB;AAC1C,QAAO,oNAAoN,KACzN,MACD;AACF;AAED,SAAgB,KAAQA,OAAY;AAClC,QAAO;AACR"}
@@ -0,0 +1,38 @@
1
+ //#region src/calc.ts
2
+ function toExpression(operator, ...args) {
3
+ return args.join(` ${operator} `).replace(/calc/g, "");
4
+ }
5
+ function add(...args) {
6
+ return `calc(${toExpression("+", ...args)})`;
7
+ }
8
+ function subtract(...args) {
9
+ return `calc(${toExpression("-", ...args)})`;
10
+ }
11
+ function multiply(...args) {
12
+ return `calc(${toExpression("*", ...args)})`;
13
+ }
14
+ function divide(...args) {
15
+ return `calc(${toExpression("/", ...args)})`;
16
+ }
17
+ function negate(value) {
18
+ if (!isNaN(parseFloat(value.toString()))) return String(value).startsWith("-") ? String(value).slice(1) : `-${value}`;
19
+ return multiply(value, -1);
20
+ }
21
+ const calc = Object.assign((x) => ({
22
+ add: (...args) => calc(add(x, ...args)),
23
+ divide: (...args) => calc(divide(x, ...args)),
24
+ multiply: (...args) => calc(multiply(x, ...args)),
25
+ negate: () => calc(negate(x)),
26
+ subtract: (...args) => calc(subtract(x, ...args)),
27
+ toString: () => x.toString()
28
+ }), {
29
+ add,
30
+ divide,
31
+ multiply,
32
+ negate,
33
+ subtract
34
+ });
35
+
36
+ //#endregion
37
+ export { calc };
38
+ //# sourceMappingURL=calc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calc.js","names":["operator: Operator","value: Operand","x: Operand"],"sources":["../../src/calc.ts"],"sourcesContent":["type Operator = \"*\" | \"+\" | \"-\" | \"/\"\n\nexport type Operand = number | string\n\nfunction toExpression(operator: Operator, ...args: Operand[]) {\n return args.join(` ${operator} `).replace(/calc/g, \"\")\n}\n\nfunction add(...args: Operand[]) {\n return `calc(${toExpression(\"+\", ...args)})`\n}\n\nfunction subtract(...args: Operand[]) {\n return `calc(${toExpression(\"-\", ...args)})`\n}\n\nfunction multiply(...args: Operand[]) {\n return `calc(${toExpression(\"*\", ...args)})`\n}\n\nfunction divide(...args: Operand[]) {\n return `calc(${toExpression(\"/\", ...args)})`\n}\n\nfunction negate(value: Operand) {\n if (!isNaN(parseFloat(value.toString())))\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`\n\n return multiply(value, -1)\n}\n\ninterface Calc {\n add: (...args: Operand[]) => Calc\n divide: (...args: Operand[]) => Calc\n multiply: (...args: Operand[]) => Calc\n negate: () => Calc\n subtract: (...args: Operand[]) => Calc\n toString: () => string\n}\n\nexport const calc = Object.assign(\n (x: Operand): Calc => ({\n add: (...args) => calc(add(x, ...args)),\n divide: (...args) => calc(divide(x, ...args)),\n multiply: (...args) => calc(multiply(x, ...args)),\n negate: () => calc(negate(x)),\n subtract: (...args) => calc(subtract(x, ...args)),\n toString: () => x.toString(),\n }),\n {\n add,\n divide,\n multiply,\n negate,\n subtract,\n },\n)\n"],"mappings":";AAIA,SAAS,aAAaA,UAAoB,GAAG,MAAiB;AAC5D,QAAO,KAAK,MAAM,GAAG,SAAS,GAAG,CAAC,QAAQ,SAAS,GAAG;AACvD;AAED,SAAS,IAAI,GAAG,MAAiB;AAC/B,SAAQ,OAAO,aAAa,KAAK,GAAG,KAAK,CAAC;AAC3C;AAED,SAAS,SAAS,GAAG,MAAiB;AACpC,SAAQ,OAAO,aAAa,KAAK,GAAG,KAAK,CAAC;AAC3C;AAED,SAAS,SAAS,GAAG,MAAiB;AACpC,SAAQ,OAAO,aAAa,KAAK,GAAG,KAAK,CAAC;AAC3C;AAED,SAAS,OAAO,GAAG,MAAiB;AAClC,SAAQ,OAAO,aAAa,KAAK,GAAG,KAAK,CAAC;AAC3C;AAED,SAAS,OAAOC,OAAgB;AAC9B,MAAK,MAAM,WAAW,MAAM,UAAU,CAAC,CAAC,CACtC,QAAO,OAAO,MAAM,CAAC,WAAW,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG;AAEtE,QAAO,SAAS,OAAO,GAAG;AAC3B;AAWD,MAAa,OAAO,OAAO,OACzB,CAACC,OAAsB;CACrB,KAAK,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC;CACvC,QAAQ,CAAC,GAAG,SAAS,KAAK,OAAO,GAAG,GAAG,KAAK,CAAC;CAC7C,UAAU,CAAC,GAAG,SAAS,KAAK,SAAS,GAAG,GAAG,KAAK,CAAC;CACjD,QAAQ,MAAM,KAAK,OAAO,EAAE,CAAC;CAC7B,UAAU,CAAC,GAAG,SAAS,KAAK,SAAS,GAAG,GAAG,KAAK,CAAC;CACjD,UAAU,MAAM,EAAE,UAAU;AAC7B,IACD;CACE;CACA;CACA;CACA;CACA;AACD,EACF"}