nhb-toolbox 4.0.32 → 4.0.40
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.
- package/dist/cjs/array/transform.js +44 -0
- package/dist/cjs/colors/Color.js +189 -20
- package/dist/cjs/colors/helpers.js +64 -27
- package/dist/cjs/index.js +17 -6
- package/dist/cjs/string/utilities.js +10 -0
- package/dist/dts/array/transform.d.ts +24 -0
- package/dist/dts/array/transform.d.ts.map +1 -1
- package/dist/dts/colors/Color.d.ts +93 -18
- package/dist/dts/colors/Color.d.ts.map +1 -1
- package/dist/dts/colors/helpers.d.ts +26 -22
- package/dist/dts/colors/helpers.d.ts.map +1 -1
- package/dist/dts/colors/initials.d.ts +3 -3
- package/dist/dts/colors/initials.d.ts.map +1 -1
- package/dist/dts/colors/types.d.ts +17 -2
- package/dist/dts/colors/types.d.ts.map +1 -1
- package/dist/dts/date/constants.d.ts +1 -1
- package/dist/dts/index.d.ts +2 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/string/utilities.d.ts +7 -0
- package/dist/dts/string/utilities.d.ts.map +1 -1
- package/dist/esm/array/transform.js +42 -0
- package/dist/esm/colors/Color.js +190 -21
- package/dist/esm/colors/helpers.js +59 -25
- package/dist/esm/index.js +2 -2
- package/dist/esm/string/utilities.js +9 -0
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createOptionsArray = void 0;
|
|
4
4
|
exports.removeDuplicatesFromArray = removeDuplicatesFromArray;
|
|
5
|
+
exports.getDuplicates = getDuplicates;
|
|
6
|
+
exports.findMissingElements = findMissingElements;
|
|
5
7
|
exports.splitArray = splitArray;
|
|
6
8
|
exports.rotateArray = rotateArray;
|
|
7
9
|
exports.moveArrayElement = moveArrayElement;
|
|
@@ -35,6 +37,48 @@ exports.createOptionsArray = createOptionsArray;
|
|
|
35
37
|
function removeDuplicatesFromArray(array) {
|
|
36
38
|
return array.filter((item, index, self) => index === self.findIndex((el) => (0, utils_1.isDeepEqual)(el, item)));
|
|
37
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* * Finds duplicate values in an array, runs deep comparison for objects and arrays.
|
|
42
|
+
*
|
|
43
|
+
* @param array - The array in which to find duplicates.
|
|
44
|
+
* @returns An array containing all duplicate entries (each one only once).
|
|
45
|
+
*/
|
|
46
|
+
function getDuplicates(array) {
|
|
47
|
+
const seen = [];
|
|
48
|
+
const duplicates = [];
|
|
49
|
+
for (const item of array) {
|
|
50
|
+
const hasSeen = seen.find((el) => (0, utils_1.isDeepEqual)(el, item));
|
|
51
|
+
const hasDuplicate = duplicates.find((el) => (0, utils_1.isDeepEqual)(el, item));
|
|
52
|
+
if (hasSeen && !hasDuplicate) {
|
|
53
|
+
duplicates.push(item);
|
|
54
|
+
}
|
|
55
|
+
else if (!hasSeen) {
|
|
56
|
+
seen.push(item);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return duplicates;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* * Finds elements missing from one array compared to another using deep comparison.
|
|
63
|
+
*
|
|
64
|
+
* @param options - Configuration to specify which array to compare and direction of check.
|
|
65
|
+
* @returns An array of missing elements based on the comparison direction.
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* * Finds elements missing from one array compared to another using deep comparison.
|
|
69
|
+
*
|
|
70
|
+
* @param array1 The first array to compare.
|
|
71
|
+
* @param array2 The second array to compare.
|
|
72
|
+
* @param missingFrom Which direction to compare for missing values:.
|
|
73
|
+
* - `'from-first'` → values in `array1` missing in `array2`.
|
|
74
|
+
* - `'from-second'` → values in `array2` missing in `array1`.
|
|
75
|
+
* @returns An array of missing elements based on the comparison direction.
|
|
76
|
+
*/
|
|
77
|
+
function findMissingElements(array1, array2, missingFrom) {
|
|
78
|
+
const source = missingFrom === 'from-first' ? array1 : array2;
|
|
79
|
+
const target = missingFrom === 'from-first' ? array2 : array1;
|
|
80
|
+
return source.filter((item) => !target.some((t) => (0, utils_1.isDeepEqual)(t, item)));
|
|
81
|
+
}
|
|
38
82
|
/**
|
|
39
83
|
* * Splits an array into chunks of a given size.
|
|
40
84
|
*
|
package/dist/cjs/colors/Color.js
CHANGED
|
@@ -8,7 +8,7 @@ const hsl = (0, random_1.generateRandomHSLColor)();
|
|
|
8
8
|
const { hex, rgb } = (0, convert_1.convertColorCode)(hsl);
|
|
9
9
|
/**
|
|
10
10
|
* * Class representing a color and its conversions among `Hex`, `Hex8` `RGB`, `RGBA`, `HSL` and `HSLA` formats.
|
|
11
|
-
* * It has
|
|
11
|
+
* * It has 13 instance methods to manipulate and play with the color values.
|
|
12
12
|
* * It has 6 static methods that can be used to check if a color is in `Hex`, `Hex8` `RGB`, `RGBA`, `HSL` or `HSLA` format.
|
|
13
13
|
*
|
|
14
14
|
* @property hex - The color in `Hex` format.
|
|
@@ -41,7 +41,7 @@ class Color {
|
|
|
41
41
|
* If no color is passed, a random color will be generated.
|
|
42
42
|
*
|
|
43
43
|
* Additionally:
|
|
44
|
-
* -
|
|
44
|
+
* - It has 13 instance methods to manipulate and play with the color values.
|
|
45
45
|
* - Use static methods like `Color.isHex6(color)` to validate color strings.
|
|
46
46
|
*
|
|
47
47
|
* @param toConvert - An optional input color string in any supported format (`Hex`, `Hex8`, `RGB`, `RGBA`, `HSL`, or `HSLA`) to convert in all other (includes the current format) formats.
|
|
@@ -118,12 +118,12 @@ class Color {
|
|
|
118
118
|
yield this.hsla;
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
*
|
|
122
|
-
* - For solid colors (Hex6/RGB/HSL): Adds an alpha channel with the specified opacity
|
|
123
|
-
* - For alpha colors (Hex8/RGBA/HSLA): Updates the existing alpha channel
|
|
121
|
+
* @instance Applies or modifies the opacity of a color. Mutate the original instance.
|
|
122
|
+
* - For solid colors (Hex6/RGB/HSL): Adds an alpha channel with the specified opacity.
|
|
123
|
+
* - For alpha colors (Hex8/RGBA/HSLA): Updates the existing alpha channel.
|
|
124
124
|
*
|
|
125
|
-
* @param opacity - A number between 0-100 representing the opacity percentage
|
|
126
|
-
* @returns
|
|
125
|
+
* @param opacity - A number between 0-100 representing the opacity percentage.
|
|
126
|
+
* @returns A new instance of `Color` containing all color formats with the applied opacity.
|
|
127
127
|
*
|
|
128
128
|
* @example
|
|
129
129
|
* const color = new Color("#ff0000");
|
|
@@ -141,14 +141,168 @@ class Color {
|
|
|
141
141
|
const alphaDecimal = validOpacity / 100;
|
|
142
142
|
const rgbValues = (0, helpers_1._extractSolidColorValues)(this.rgb);
|
|
143
143
|
const hslValues = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
144
|
-
return {
|
|
144
|
+
return Color.#fromParts({
|
|
145
145
|
hex: this.hex.slice(0, 7).toUpperCase(),
|
|
146
146
|
hex8: `${this.hex.slice(0, 7)}${alphaHex}`.toUpperCase(),
|
|
147
147
|
rgb: `rgb(${rgbValues[0]}, ${rgbValues[1]}, ${rgbValues[2]})`,
|
|
148
148
|
rgba: `rgba(${rgbValues[0]}, ${rgbValues[1]}, ${rgbValues[2]}, ${alphaDecimal})`,
|
|
149
149
|
hsl: `hsl(${hslValues[0]}, ${hslValues[1]}%, ${hslValues[2]}%)`,
|
|
150
150
|
hsla: `hsla(${hslValues[0]}, ${hslValues[1]}%, ${hslValues[2]}%, ${alphaDecimal})`,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @instance Darkens the color by reducing the lightness by the given percentage.
|
|
155
|
+
* @param percent - The percentage to darken (0–100).
|
|
156
|
+
* @returns A new `Color` instance with the modified darkness.
|
|
157
|
+
*/
|
|
158
|
+
applyDarkness(percent) {
|
|
159
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
160
|
+
const newL = Math.max(0, l - percent);
|
|
161
|
+
const newHSL = `hsl(${h}, ${s}%, ${newL}%)`;
|
|
162
|
+
return new Color(newHSL);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @instance Lightens the color by increasing the lightness by the given percentage.
|
|
166
|
+
* @param percent - The percentage to brighten (0–100).
|
|
167
|
+
* @returns A new `Color` instance with the modified lightness.
|
|
168
|
+
*/
|
|
169
|
+
applyBrightness(percent) {
|
|
170
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
171
|
+
const newL = Math.min(100, l + percent);
|
|
172
|
+
const newHSL = `hsl(${h}, ${s}%, ${newL}%)`;
|
|
173
|
+
return new Color(newHSL);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @instance Reduces the saturation of the color to make it appear duller.
|
|
177
|
+
* @param percent - The percentage to reduce saturation (0–100).
|
|
178
|
+
* @returns A new `Color` instance with the modified saturation.
|
|
179
|
+
*/
|
|
180
|
+
applyDullness(percent) {
|
|
181
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
182
|
+
const newS = Math.max(0, s - percent);
|
|
183
|
+
const newHSL = `hsl(${h}, ${newS}%, ${l}%)`;
|
|
184
|
+
return new Color(newHSL);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* @instance Softens the color toward white by reducing saturation and increasing lightness based on a percentage.
|
|
188
|
+
* - *This creates a soft UI-like white shade effect (similar to some UI libraries' light color scale).*
|
|
189
|
+
* @param percent - Value from 0 to 100 representing how far to push the color toward white.
|
|
190
|
+
* @returns A new `Color` instance shifted toward white.
|
|
191
|
+
*/
|
|
192
|
+
applyWhiteShade(percent) {
|
|
193
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
194
|
+
// Cap values to avoid overshooting
|
|
195
|
+
const newS = Math.max(0, s - (s * percent) / 100);
|
|
196
|
+
const newL = Math.min(100, l + ((100 - l) * percent) / 100);
|
|
197
|
+
const newHSL = `hsl(${h}, ${newS}%, ${newL}%)`;
|
|
198
|
+
return new Color(newHSL);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* @instance Blends the current color with another color based on the given weight.
|
|
202
|
+
* @param other - The color in any 6 `(Hex, Hex8 RGB, RGBA, HSL or HSLA)` to blend with.
|
|
203
|
+
* @param weight - A number from 0 to 1 indicating the weight of the other color. Defaults to `0.5`.
|
|
204
|
+
* - `weight = 0` → only the original color (this)
|
|
205
|
+
* - `weight = 1` → only the other color
|
|
206
|
+
* - `weight = 0.5` → equal blend between the two
|
|
207
|
+
* @returns A new `Color` instance representing the blended result.
|
|
208
|
+
*/
|
|
209
|
+
blendWith(other, weight = 0.5) {
|
|
210
|
+
const w = Math.max(0, Math.min(1, weight));
|
|
211
|
+
const converted = new Color(other);
|
|
212
|
+
const rgb1 = (0, helpers_1._extractSolidColorValues)(this.rgb);
|
|
213
|
+
const rgb2 = (0, helpers_1._extractSolidColorValues)(converted.rgb);
|
|
214
|
+
const blended = rgb1.map((c, i) => Math.round(c * (1 - w) + rgb2[i] * w));
|
|
215
|
+
const blendedRGB = `rgb(${blended[0]}, ${blended[1]}, ${blended[2]})`;
|
|
216
|
+
return new Color(blendedRGB);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* @instance Calculates the contrast ratio between this color and another color (WCAG).
|
|
220
|
+
* @param other - The other color to compare against.
|
|
221
|
+
* @returns A number representing the contrast ratio (rounded to 2 decimal places).
|
|
222
|
+
*/
|
|
223
|
+
contrastRatio(other) {
|
|
224
|
+
const newColor = new Color(other);
|
|
225
|
+
const luminance = (rgb) => {
|
|
226
|
+
const [r, g, b] = (0, helpers_1._extractSolidColorValues)(rgb).map((v) => {
|
|
227
|
+
const c = v / 255;
|
|
228
|
+
return c <= 0.03928 ?
|
|
229
|
+
c / 12.92
|
|
230
|
+
: Math.pow((c + 0.055) / 1.055, 2.4);
|
|
231
|
+
});
|
|
232
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
151
233
|
};
|
|
234
|
+
const lum1 = luminance(this.rgb);
|
|
235
|
+
const lum2 = luminance(newColor.rgb);
|
|
236
|
+
const brighter = Math.max(lum1, lum2);
|
|
237
|
+
const darker = Math.min(lum1, lum2);
|
|
238
|
+
const ratio = (brighter + 0.05) / (darker + 0.05);
|
|
239
|
+
return Math.round(ratio * 100) / 100;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* @instance Returns the complementary color by rotating the hue 180 degrees.
|
|
243
|
+
* @returns A new Color that is the complement of the current color.
|
|
244
|
+
*/
|
|
245
|
+
getComplementaryColor() {
|
|
246
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
247
|
+
const newHue = (h + 180) % 360;
|
|
248
|
+
const newHSL = `hsl(${newHue}, ${s}%, ${l}%)`;
|
|
249
|
+
return new Color(newHSL);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* @instance Generates a color scheme of analogous colors, including the base color.
|
|
253
|
+
* Analogous colors are next to each other on the color wheel (±30°).
|
|
254
|
+
* @returns An array of three Color instances: [base, left, right].
|
|
255
|
+
*/
|
|
256
|
+
getAnalogousColors() {
|
|
257
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
258
|
+
const left = `hsl(${(h + 330) % 360}, ${s}%, ${l}%)`;
|
|
259
|
+
const right = `hsl(${(h + 30) % 360}, ${s}%, ${l}%)`;
|
|
260
|
+
return [this, new Color(left), new Color(right)];
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* @instance Generates a color triad scheme including the base color.
|
|
264
|
+
* Triadic colors are evenly spaced (120° apart) on the color wheel.
|
|
265
|
+
* @returns An array of three Color instances: [base, triad1, triad2].
|
|
266
|
+
*/
|
|
267
|
+
getTriadColors() {
|
|
268
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
269
|
+
const c1 = `hsl(${(h + 120) % 360}, ${s}%, ${l}%)`;
|
|
270
|
+
const c2 = `hsl(${(h + 240) % 360}, ${s}%, ${l}%)`;
|
|
271
|
+
return [this, new Color(c1), new Color(c2)];
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* @instance Generates a tetradic color scheme including the base color.
|
|
275
|
+
* Tetradic colors form a rectangle on the color wheel (90° apart).
|
|
276
|
+
* @returns An array of four Color instances: [base, tetrad1, tetrad2, tetrad3].
|
|
277
|
+
*/
|
|
278
|
+
getTetradColors() {
|
|
279
|
+
const [h, s, l] = (0, helpers_1._extractSolidColorValues)(this.hsl);
|
|
280
|
+
const c1 = `hsl(${(h + 90) % 360}, ${s}%, ${l}%)`;
|
|
281
|
+
const c2 = `hsl(${(h + 180) % 360}, ${s}%, ${l}%)`;
|
|
282
|
+
const c3 = `hsl(${(h + 270) % 360}, ${s}%, ${l}%)`;
|
|
283
|
+
return [this, new Color(c1), new Color(c2), new Color(c3)];
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* @instance Gets the `WCAG` accessibility rating between this and another color.
|
|
287
|
+
* @param other - The other color to test contrast against.
|
|
288
|
+
* @returns 'Fail', 'AA', or 'AAA' based on `WCAG 2.1` contrast standards.
|
|
289
|
+
*/
|
|
290
|
+
getWCAGRating(other) {
|
|
291
|
+
const ratio = this.contrastRatio(other);
|
|
292
|
+
if (ratio >= 7)
|
|
293
|
+
return 'AAA';
|
|
294
|
+
if (ratio >= 4.5)
|
|
295
|
+
return 'AA';
|
|
296
|
+
return 'Fail';
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* @instance Determines if the color is light based on its perceived brightness.
|
|
300
|
+
* @returns `true` if light, `false` if dark.
|
|
301
|
+
*/
|
|
302
|
+
isLightColor() {
|
|
303
|
+
const [r, g, b] = (0, helpers_1._extractSolidColorValues)(this.rgb);
|
|
304
|
+
const brightness = (r * 299 + g * 587 + b * 114) / 1000;
|
|
305
|
+
return brightness > 127.5;
|
|
152
306
|
}
|
|
153
307
|
/**
|
|
154
308
|
* @static Checks if a color is in `Hex6` format.
|
|
@@ -169,40 +323,40 @@ class Color {
|
|
|
169
323
|
return /^#[0-9A-Fa-f]{8}$/.test(color);
|
|
170
324
|
}
|
|
171
325
|
/**
|
|
172
|
-
* @static Checks if a color is in `RGB` format.
|
|
326
|
+
* @static Checks if a color is in `RGB` format and within valid ranges.
|
|
173
327
|
*
|
|
174
328
|
* @param color Color to check.
|
|
175
|
-
* @returns
|
|
329
|
+
* @returns `true` if it's a `RGB` color, `false` if not.
|
|
176
330
|
*/
|
|
177
331
|
static isRGB(color) {
|
|
178
|
-
return
|
|
332
|
+
return (0, helpers_1._isRGB)(color);
|
|
179
333
|
}
|
|
180
334
|
/**
|
|
181
|
-
* @static Checks if a color is in `RGBA` format.
|
|
335
|
+
* @static Checks if a color is in `RGBA` format and within valid ranges.
|
|
182
336
|
*
|
|
183
337
|
* @param color Color to check.
|
|
184
|
-
* @returns
|
|
338
|
+
* @returns `true` if it's a `RGBA` color, `false` if not.
|
|
185
339
|
*/
|
|
186
340
|
static isRGBA(color) {
|
|
187
|
-
return
|
|
341
|
+
return (0, helpers_1._isRGBA)(color);
|
|
188
342
|
}
|
|
189
343
|
/**
|
|
190
|
-
* @static Checks if a color is in `HSL` format.
|
|
344
|
+
* @static Checks if a color is in `HSL` format and within valid ranges.
|
|
191
345
|
*
|
|
192
346
|
* @param color Color to check.
|
|
193
|
-
* @returns
|
|
347
|
+
* @returns `true` if it's a `HSL` color, `false` if not.
|
|
194
348
|
*/
|
|
195
349
|
static isHSL(color) {
|
|
196
|
-
return
|
|
350
|
+
return (0, helpers_1._isHSL)(color);
|
|
197
351
|
}
|
|
198
352
|
/**
|
|
199
|
-
* @static Checks if a color is in `HSLA` format.
|
|
353
|
+
* @static Checks if a color is in `HSLA` format and within valid ranges.
|
|
200
354
|
*
|
|
201
355
|
* @param color Color to check.
|
|
202
|
-
* @returns
|
|
356
|
+
* @returns `true` if it's a `HSLA` color, `false` if not.
|
|
203
357
|
*/
|
|
204
358
|
static isHSLA(color) {
|
|
205
|
-
return
|
|
359
|
+
return (0, helpers_1._isHSLA)(color);
|
|
206
360
|
}
|
|
207
361
|
/**
|
|
208
362
|
* @private Converts the given color to all other formats while preserving the original.
|
|
@@ -237,5 +391,20 @@ class Color {
|
|
|
237
391
|
}
|
|
238
392
|
throw new Error(`Unrecognized color format: ${color}`);
|
|
239
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* @private @static Internal factory to create a Color instance from parsed parts.
|
|
396
|
+
* @param parts All the color parts as object.
|
|
397
|
+
* @returns An instance of `Color`.
|
|
398
|
+
*/
|
|
399
|
+
static #fromParts(parts) {
|
|
400
|
+
const color = Object.create(Color.prototype);
|
|
401
|
+
color.hex = parts.hex;
|
|
402
|
+
color.hex8 = parts.hex8;
|
|
403
|
+
color.rgb = parts.rgb;
|
|
404
|
+
color.rgba = parts.rgba;
|
|
405
|
+
color.hsl = parts.hsl;
|
|
406
|
+
color.hsla = parts.hsla;
|
|
407
|
+
return color;
|
|
408
|
+
}
|
|
240
409
|
}
|
|
241
410
|
exports.Color = Color;
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._extractAlphaColorValues = exports._extractSolidColorValues = exports._isSimilarToLast = exports._generateRandomHSL = exports._applyOpacity = exports._convertOpacityToHex = void 0;
|
|
4
4
|
exports._isHex6 = _isHex6;
|
|
5
|
-
exports._isRGB = _isRGB;
|
|
6
|
-
exports._isHSL = _isHSL;
|
|
7
5
|
exports._isHex8 = _isHex8;
|
|
6
|
+
exports._isRGB = _isRGB;
|
|
8
7
|
exports._isRGBA = _isRGBA;
|
|
8
|
+
exports._isHSL = _isHSL;
|
|
9
9
|
exports._isHSLA = _isHSLA;
|
|
10
10
|
exports._isValidAlpha = _isValidAlpha;
|
|
11
|
+
exports._isValidRGBComponent = _isValidRGBComponent;
|
|
12
|
+
exports._isValidHue = _isValidHue;
|
|
13
|
+
exports._isValidPercentage = _isValidPercentage;
|
|
11
14
|
/**
|
|
12
15
|
* * Converts opacity percentage (0-100) to a 2-digit hex string.
|
|
13
16
|
*
|
|
@@ -97,7 +100,7 @@ const _extractAlphaColorValues = (colorString) => {
|
|
|
97
100
|
};
|
|
98
101
|
exports._extractAlphaColorValues = _extractAlphaColorValues;
|
|
99
102
|
/**
|
|
100
|
-
*
|
|
103
|
+
* @private Checks if a color is in `Hex` format.
|
|
101
104
|
*
|
|
102
105
|
* @param color Color to check.
|
|
103
106
|
* @returns Boolean: `true` if it's a `Hex` color, `false` if not.
|
|
@@ -106,58 +109,92 @@ function _isHex6(color) {
|
|
|
106
109
|
return /^#[0-9A-Fa-f]{6}$/.test(color);
|
|
107
110
|
}
|
|
108
111
|
/**
|
|
109
|
-
*
|
|
112
|
+
* @private Checks if a color is in `Hex8` format.
|
|
110
113
|
*
|
|
111
114
|
* @param color Color to check.
|
|
112
|
-
* @returns Boolean: `true` if it's
|
|
115
|
+
* @returns Boolean: `true` if it's a `Hex8` color, `false` if not.
|
|
113
116
|
*/
|
|
114
|
-
function
|
|
115
|
-
return
|
|
117
|
+
function _isHex8(color) {
|
|
118
|
+
return /^#[0-9A-Fa-f]{8}$/.test(color);
|
|
116
119
|
}
|
|
117
120
|
/**
|
|
118
|
-
*
|
|
121
|
+
* @private Checks if a color is in `RGB` format and within valid ranges.
|
|
119
122
|
*
|
|
120
123
|
* @param color Color to check.
|
|
121
|
-
* @returns
|
|
124
|
+
* @returns `true` if it's a `RGB` color, `false` if not.
|
|
122
125
|
*/
|
|
123
|
-
function
|
|
124
|
-
|
|
126
|
+
function _isRGB(color) {
|
|
127
|
+
const match = color.match(/^rgb\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)\s*\)$/);
|
|
128
|
+
if (!match)
|
|
129
|
+
return false;
|
|
130
|
+
const [r, g, b] = match.slice(1).map(Number);
|
|
131
|
+
return (_isValidRGBComponent(r) &&
|
|
132
|
+
_isValidRGBComponent(g) &&
|
|
133
|
+
_isValidRGBComponent(b));
|
|
125
134
|
}
|
|
126
135
|
/**
|
|
127
|
-
* @
|
|
128
|
-
* Checks if a color is in `Hex8` format.
|
|
136
|
+
* @private Checks if a color is in `RGBA` format and within valid ranges.
|
|
129
137
|
*
|
|
130
138
|
* @param color Color to check.
|
|
131
|
-
* @returns
|
|
139
|
+
* @returns `true` if it's a `RGBA` color, `false` if not.
|
|
132
140
|
*/
|
|
133
|
-
function
|
|
134
|
-
|
|
141
|
+
function _isRGBA(color) {
|
|
142
|
+
const match = color.match(/^rgba\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(0|1|0?\.\d+)\s*\)$/);
|
|
143
|
+
if (!match)
|
|
144
|
+
return false;
|
|
145
|
+
const [r, g, b, a] = match.slice(1).map(Number);
|
|
146
|
+
return (_isValidRGBComponent(r) &&
|
|
147
|
+
_isValidRGBComponent(g) &&
|
|
148
|
+
_isValidRGBComponent(b) &&
|
|
149
|
+
_isValidAlpha(a));
|
|
135
150
|
}
|
|
136
151
|
/**
|
|
137
|
-
* @
|
|
138
|
-
* Checks if a color is in `RGBA` format.
|
|
152
|
+
* @private Checks if a color is in `HSL` format and within valid ranges.
|
|
139
153
|
*
|
|
140
154
|
* @param color Color to check.
|
|
141
|
-
* @returns
|
|
155
|
+
* @returns `true` if it's a `HSL` color, `false` if not.
|
|
142
156
|
*/
|
|
143
|
-
function
|
|
144
|
-
|
|
157
|
+
function _isHSL(color) {
|
|
158
|
+
const match = color.match(/^hsl\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)%,\s*(\d{1,3}(?:\.\d+)?)%\s*\)$/);
|
|
159
|
+
if (!match)
|
|
160
|
+
return false;
|
|
161
|
+
const [h, s, l] = match.slice(1).map(Number);
|
|
162
|
+
return _isValidHue(h) && _isValidPercentage(s) && _isValidPercentage(l);
|
|
145
163
|
}
|
|
146
164
|
/**
|
|
147
|
-
* @
|
|
148
|
-
* Checks if a color is in `HSLA` format.
|
|
165
|
+
* @private Checks if a color is in `HSLA` format and within valid ranges.
|
|
149
166
|
*
|
|
150
167
|
* @param color Color to check.
|
|
151
|
-
* @returns
|
|
168
|
+
* @returns `true` if it's a `HSLA` color, `false` if not.
|
|
152
169
|
*/
|
|
153
170
|
function _isHSLA(color) {
|
|
154
|
-
|
|
171
|
+
const match = color.match(/^hsla\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)%,\s*(\d{1,3}(?:\.\d+)?)%,\s*(0|1|0?\.\d+)\s*\)$/);
|
|
172
|
+
if (!match)
|
|
173
|
+
return false;
|
|
174
|
+
const [h, s, l, a] = match.slice(1).map(Number);
|
|
175
|
+
return (_isValidHue(h) &&
|
|
176
|
+
_isValidPercentage(s) &&
|
|
177
|
+
_isValidPercentage(l) &&
|
|
178
|
+
_isValidAlpha(a));
|
|
155
179
|
}
|
|
156
180
|
/**
|
|
157
|
-
*
|
|
181
|
+
* @private Checks if a number is valid alpha value.
|
|
182
|
+
*
|
|
158
183
|
* @param value Alpha value to check.
|
|
159
|
-
* @returns
|
|
184
|
+
* @returns `true` if it's a valid alpha value, `false` if not.
|
|
160
185
|
*/
|
|
161
186
|
function _isValidAlpha(value) {
|
|
162
187
|
return value >= 0 && value <= 1 && !isNaN(value);
|
|
163
188
|
}
|
|
189
|
+
/** * @private Validates RGB component (0–255). */
|
|
190
|
+
function _isValidRGBComponent(value) {
|
|
191
|
+
return value >= 0 && value <= 255;
|
|
192
|
+
}
|
|
193
|
+
/** * @private Validates HSL hue (0–360). */
|
|
194
|
+
function _isValidHue(value) {
|
|
195
|
+
return value >= 0 && value <= 360;
|
|
196
|
+
}
|
|
197
|
+
/** * @private Validates HSL percentage components (0–100). */
|
|
198
|
+
function _isValidPercentage(value) {
|
|
199
|
+
return value >= 0 && value <= 100;
|
|
200
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = void 0;
|
|
3
|
+
exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getAverageOfNumbers = exports.getAverage = exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateAverage = exports.countWordsInString = exports.wordCount = exports.countWords = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
|
|
4
|
+
exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.roundNumber = exports.numberToOrdinal = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.numberToWords = exports.convertToRomanNumerals = exports.convertNumberToWords = exports.isPerfectSquare = exports.isParOfFibonacciSeries = exports.isParOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isMultiple = exports.isInvalidNumbers = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = void 0;
|
|
5
|
+
exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getMinutesFromUTC = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.greet = exports.getGreeting = exports.generateGreeting = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = void 0;
|
|
6
|
+
exports.updateQueryParam = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedValues = exports.parseStringifiedPrimitives = exports.parseStringifiedObjectValues = exports.parsePrimitives = exports.parsePrimitiveData = exports.parseObjectValues = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.getMissingElements = void 0;
|
|
7
|
+
exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isBigInt = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.throttleAction = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = void 0;
|
|
8
|
+
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = void 0;
|
|
9
9
|
// ! String Utilities
|
|
10
10
|
var basics_1 = require("./string/basics");
|
|
11
11
|
Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
|
|
@@ -37,6 +37,9 @@ var utilities_1 = require("./string/utilities");
|
|
|
37
37
|
Object.defineProperty(exports, "extractNumbersFromString", { enumerable: true, get: function () { return utilities_1.extractNumbersFromString; } });
|
|
38
38
|
Object.defineProperty(exports, "getLevenshteinDistance", { enumerable: true, get: function () { return utilities_1.getLevenshteinDistance; } });
|
|
39
39
|
Object.defineProperty(exports, "levenshteinDistance", { enumerable: true, get: function () { return utilities_1.getLevenshteinDistance; } });
|
|
40
|
+
Object.defineProperty(exports, "countWords", { enumerable: true, get: function () { return utilities_1.countWords; } });
|
|
41
|
+
Object.defineProperty(exports, "wordCount", { enumerable: true, get: function () { return utilities_1.countWords; } });
|
|
42
|
+
Object.defineProperty(exports, "countWordsInString", { enumerable: true, get: function () { return utilities_1.countWords; } });
|
|
40
43
|
// ! Number Utilities
|
|
41
44
|
var basics_2 = require("./number/basics");
|
|
42
45
|
Object.defineProperty(exports, "calculateAverage", { enumerable: true, get: function () { return basics_2.getAverage; } });
|
|
@@ -177,7 +180,15 @@ var sort_1 = require("./array/sort");
|
|
|
177
180
|
Object.defineProperty(exports, "sortAnArray", { enumerable: true, get: function () { return sort_1.sortAnArray; } });
|
|
178
181
|
var transform_1 = require("./array/transform");
|
|
179
182
|
Object.defineProperty(exports, "createOptionsArray", { enumerable: true, get: function () { return transform_1.createOptionsArray; } });
|
|
183
|
+
Object.defineProperty(exports, "extractDuplicates", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
184
|
+
Object.defineProperty(exports, "extractDuplicatesFromArray", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
185
|
+
Object.defineProperty(exports, "extractMissingElements", { enumerable: true, get: function () { return transform_1.findMissingElements; } });
|
|
186
|
+
Object.defineProperty(exports, "findMissingElements", { enumerable: true, get: function () { return transform_1.findMissingElements; } });
|
|
187
|
+
Object.defineProperty(exports, "getDuplicates", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
188
|
+
Object.defineProperty(exports, "getDuplicatesFromArray", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
189
|
+
Object.defineProperty(exports, "getMissingElements", { enumerable: true, get: function () { return transform_1.findMissingElements; } });
|
|
180
190
|
Object.defineProperty(exports, "moveArrayElement", { enumerable: true, get: function () { return transform_1.moveArrayElement; } });
|
|
191
|
+
Object.defineProperty(exports, "removeDuplicates", { enumerable: true, get: function () { return transform_1.removeDuplicatesFromArray; } });
|
|
181
192
|
Object.defineProperty(exports, "removeDuplicatesFromArray", { enumerable: true, get: function () { return transform_1.removeDuplicatesFromArray; } });
|
|
182
193
|
Object.defineProperty(exports, "rotateArray", { enumerable: true, get: function () { return transform_1.rotateArray; } });
|
|
183
194
|
Object.defineProperty(exports, "splitArray", { enumerable: true, get: function () { return transform_1.splitArray; } });
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLevenshteinDistance = exports.extractNumbersFromString = void 0;
|
|
4
|
+
exports.countWords = countWords;
|
|
4
5
|
/**
|
|
5
6
|
* * Extracts all numbers from a string as array of numbers.
|
|
6
7
|
* @param input - The string to extract numbers from.
|
|
@@ -33,3 +34,12 @@ const getLevenshteinDistance = (a, b) => {
|
|
|
33
34
|
return dp[lenA][lenB];
|
|
34
35
|
};
|
|
35
36
|
exports.getLevenshteinDistance = getLevenshteinDistance;
|
|
37
|
+
/**
|
|
38
|
+
* * Counts the number of words in a string, supporting multiple languages and scripts.
|
|
39
|
+
*
|
|
40
|
+
* @param text - The input string to count words from.
|
|
41
|
+
* @returns Number of words (Unicode-aware).
|
|
42
|
+
*/
|
|
43
|
+
function countWords(text) {
|
|
44
|
+
return (text.match(/\p{L}[\p{L}\p{M}\p{Pd}'’]*/gu) || []).length;
|
|
45
|
+
}
|
|
@@ -15,6 +15,30 @@ export declare const createOptionsArray: <T extends GenericObject, K1 extends st
|
|
|
15
15
|
* @returns A new array with duplicates removed.
|
|
16
16
|
*/
|
|
17
17
|
export declare function removeDuplicatesFromArray<T>(array: T[]): T[];
|
|
18
|
+
/**
|
|
19
|
+
* * Finds duplicate values in an array, runs deep comparison for objects and arrays.
|
|
20
|
+
*
|
|
21
|
+
* @param array - The array in which to find duplicates.
|
|
22
|
+
* @returns An array containing all duplicate entries (each one only once).
|
|
23
|
+
*/
|
|
24
|
+
export declare function getDuplicates<T>(array: T[]): T[];
|
|
25
|
+
/**
|
|
26
|
+
* * Finds elements missing from one array compared to another using deep comparison.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Configuration to specify which array to compare and direction of check.
|
|
29
|
+
* @returns An array of missing elements based on the comparison direction.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* * Finds elements missing from one array compared to another using deep comparison.
|
|
33
|
+
*
|
|
34
|
+
* @param array1 The first array to compare.
|
|
35
|
+
* @param array2 The second array to compare.
|
|
36
|
+
* @param missingFrom Which direction to compare for missing values:.
|
|
37
|
+
* - `'from-first'` → values in `array1` missing in `array2`.
|
|
38
|
+
* - `'from-second'` → values in `array2` missing in `array1`.
|
|
39
|
+
* @returns An array of missing elements based on the comparison direction.
|
|
40
|
+
*/
|
|
41
|
+
export declare function findMissingElements<T, U>(array1: T[], array2: U[], missingFrom: 'from-first' | 'from-second'): (T | U)[];
|
|
18
42
|
/**
|
|
19
43
|
* * Splits an array into chunks of a given size.
|
|
20
44
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/array/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC9B,CAAC,SAAS,aAAa,EACvB,EAAE,SAAS,MAAM,YACjB,EAAE,SAAS,MAAM,kBAEX,CAAC,EAAE,UACD,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAC9B,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,GAAE,EAgB5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAQhE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAQ3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,GAAG,EAAE,CAAC,EAAE,EACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACb,CAAC,EAAE,CAQL"}
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/array/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC9B,CAAC,SAAS,aAAa,EACvB,EAAE,SAAS,MAAM,YACjB,EAAE,SAAS,MAAM,kBAEX,CAAC,EAAE,UACD,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAC9B,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,GAAE,EAgB5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAgBhD;AAED;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACvC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,YAAY,GAAG,aAAa,GACvC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAKX;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAQhE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAQ3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,GAAG,EAAE,CAAC,EAAE,EACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACb,CAAC,EAAE,CAQL"}
|