@basmilius/utils 1.1.3 → 1.3.0

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.
@@ -0,0 +1 @@
1
+ export default function (value: number, min: number, max: number, step: number): number;
@@ -0,0 +1 @@
1
+ export default function (value: number): number;
@@ -0,0 +1 @@
1
+ export default function (value: number, decimals?: number): string;
@@ -0,0 +1 @@
1
+ export default function (value: number): string;
@@ -0,0 +1 @@
1
+ export default function (lower: number, upper: number, target?: number, isSmall?: boolean): number[];
@@ -0,0 +1 @@
1
+ export default function (hex: string): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (h: number, s: number, v: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (h: number, s: number, l: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (h: number, s: number, v: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (h: number, s: number, v: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (p: number, q: number, t: number): number;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { default as clampWithStepPrecision } from './clampWithStepPrecision';
2
+ export { default as countDecimals } from './countDecimals';
1
3
  export { default as defineStore } from './defineStore';
2
4
  export { default as downloadBlob } from './downloadBlob';
3
5
  export { default as downloadString } from './downloadString';
@@ -6,10 +8,25 @@ export { default as formatDate } from './formatDate';
6
8
  export { default as formatDateFull } from './formatDateFull';
7
9
  export { default as formatDateTime } from './formatDateTime';
8
10
  export { default as formatMonth } from './formatMonth';
11
+ export { default as formatNumber } from './formatNumber';
12
+ export { default as formatPercentage } from './formatPercentage';
9
13
  export { default as formatTime } from './formatTime';
14
+ export { default as generateStepTicks } from './generateStepTicks';
15
+ export { default as hexToRGB } from './hexToRGB';
16
+ export { default as hslToHSV } from './hslToHSV';
17
+ export { default as hslToRGB } from './hslToRGB';
18
+ export { default as hsvToHSL } from './hsvToHSL';
19
+ export { default as hsvToRGB } from './hsvToRGB';
20
+ export { default as hueToRGB } from './hueToRGB';
21
+ export { default as isHtmlElement } from './isHtmlElement';
10
22
  export { default as isPointInPolygon } from './isPointInPolygon';
11
23
  export { default as isToday } from './isToday';
24
+ export { default as mulberry32 } from './mulberry32';
12
25
  export { default as openUrl } from './openUrl';
26
+ export { default as rgbToHEX } from './rgbToHEX';
27
+ export { default as rgbToHSL } from './rgbToHSL';
28
+ export { default as rgbToHSV } from './rgbToHSV';
29
+ export { default as roundStep } from './roundStep';
13
30
  export { default as viewTransition } from './viewTransition';
14
31
  export { default as waitFor } from './waitFor';
15
32
  export declare const MDASH = "\u2014";
@@ -0,0 +1 @@
1
+ export default function (elm: unknown): elm is HTMLElement;
package/dist/isToday.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { DateTime } from 'luxon';
2
- export default function (dateTime: DateTime): boolean;
1
+ import type { DateTime } from 'luxon';
2
+ export default function (dateTime: DateTime, today: DateTime): boolean;
@@ -0,0 +1,7 @@
1
+ declare function mulberry32(seed: number): Mulberry32;
2
+ export default mulberry32;
3
+ type Mulberry32 = {
4
+ fork(): Mulberry32;
5
+ next(): number;
6
+ nextBetween(min: number, max: number): number;
7
+ };
@@ -0,0 +1 @@
1
+ export default function (r: number, g: number, b: number): string;
@@ -0,0 +1 @@
1
+ export default function (r: number, g: number, b: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (r: number, g: number, b: number): [number, number, number];
@@ -0,0 +1 @@
1
+ export default function (value: number, step: number): number;
package/dist/utils.js CHANGED
@@ -1,3 +1,18 @@
1
+ // src/roundStep.ts
2
+ function roundStep_default(value, step) {
3
+ return Math.round(value / step) * step;
4
+ }
5
+
6
+ // src/clampWithStepPrecision.ts
7
+ function clampWithStepPrecision_default(value, min, max, step) {
8
+ return Math.max(min, Math.min(max, +roundStep_default(value * (max - min) + min, step).toPrecision(4)));
9
+ }
10
+
11
+ // src/countDecimals.ts
12
+ function countDecimals_default(value) {
13
+ return value.toString().split(".")[1]?.length ?? 0;
14
+ }
15
+
1
16
  // src/defineStore.ts
2
17
  import { defineStore, storeToRefs } from "pinia";
3
18
  function defineStore_default(id, setup) {
@@ -80,6 +95,24 @@ function formatMonth_default(dateTime) {
80
95
  });
81
96
  }
82
97
 
98
+ // src/formatNumber.ts
99
+ function formatNumber_default(value, decimals = 0) {
100
+ const formatter = new Intl.NumberFormat(navigator.language, {
101
+ maximumFractionDigits: decimals,
102
+ minimumFractionDigits: decimals
103
+ });
104
+ return formatter.format(value);
105
+ }
106
+
107
+ // src/formatPercentage.ts
108
+ function formatPercentage_default(value) {
109
+ return new Intl.NumberFormat(navigator.language, {
110
+ maximumFractionDigits: 1,
111
+ minimumFractionDigits: 0,
112
+ style: "percent"
113
+ }).format(value);
114
+ }
115
+
83
116
  // src/formatTime.ts
84
117
  function formatTime_default(dateTime) {
85
118
  return dateTime.toLocaleString({
@@ -88,6 +121,189 @@ function formatTime_default(dateTime) {
88
121
  });
89
122
  }
90
123
 
124
+ // src/generateStepTicks.ts
125
+ function generateStepTicks_default(lower, upper, target = 5, isSmall) {
126
+ const STEP_TICK_SIZES = [1, 5, 10, 25, 50, 100, 250, 500, 1e3, 2500, 5e3, 1e4];
127
+ const STEP_TICK_SMALL_SIZES = [0.1, 0.5, ...STEP_TICK_SIZES];
128
+ const delta = upper - lower;
129
+ const sizes = isSmall ? STEP_TICK_SMALL_SIZES : STEP_TICK_SIZES;
130
+ for (const size of sizes) {
131
+ const count = Math.floor(delta / size);
132
+ const steps2 = [];
133
+ if (count > target + 1) {
134
+ continue;
135
+ }
136
+ steps2.push(lower);
137
+ for (let i = 1; i < count; ++i) {
138
+ steps2.push(i * size + lower);
139
+ }
140
+ steps2.push(upper);
141
+ return steps2;
142
+ }
143
+ const digits = delta.toString().length - 1;
144
+ const power = Math.pow(10, digits);
145
+ const steps = [];
146
+ for (let i = 0; i < delta; i += power) {
147
+ steps.push(i + lower);
148
+ }
149
+ return steps;
150
+ }
151
+
152
+ // src/hexToRGB.ts
153
+ function hexToRGB_default(hex) {
154
+ const color = parseInt(hex.startsWith("#") ? hex.substring(1) : hex, 16);
155
+ return [
156
+ color >> 16 & 255,
157
+ color >> 8 & 255,
158
+ color & 255
159
+ ];
160
+ }
161
+
162
+ // src/hueToRGB.ts
163
+ function hueToRGB_default(p, q, t) {
164
+ if (t < 0) {
165
+ t += 1;
166
+ }
167
+ if (t > 1) {
168
+ t -= 1;
169
+ }
170
+ if (t < 1 / 6) {
171
+ return p + (q - p) * 6 * t;
172
+ }
173
+ if (t < 1 / 2) {
174
+ return q;
175
+ }
176
+ if (t < 2 / 3) {
177
+ return p + (q - p) * (2 / 3 - t) * 6;
178
+ }
179
+ return p;
180
+ }
181
+
182
+ // src/hslToRGB.ts
183
+ function hslToRGB_default(h, s, l) {
184
+ let r, g, b;
185
+ h /= 360;
186
+ s /= 100;
187
+ l /= 100;
188
+ if (s === 0) {
189
+ r = g = b = l;
190
+ } else {
191
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
192
+ const p = 2 * l - q;
193
+ r = hueToRGB_default(p, q, h + 1 / 3);
194
+ g = hueToRGB_default(p, q, h);
195
+ b = hueToRGB_default(p, q, h - 1 / 3);
196
+ }
197
+ r = Math.round(r * 255);
198
+ g = Math.round(g * 255);
199
+ b = Math.round(b * 255);
200
+ return [r, g, b];
201
+ }
202
+
203
+ // src/rgbToHSV.ts
204
+ function rgbToHSV_default(r, g, b) {
205
+ r /= 255;
206
+ g /= 255;
207
+ b /= 255;
208
+ let cmin = Math.min(r, g, b), cmax = Math.max(r, g, b), delta = cmax - cmin, h, s = cmax === 0 ? 0 : delta / cmax, v = cmax;
209
+ if (cmax === cmin) {
210
+ h = 0;
211
+ } else {
212
+ if (cmax === r) {
213
+ h = (g - b) / delta + (g < b ? 6 : 0);
214
+ } else if (cmax === g) {
215
+ h = (b - r) / delta + 2;
216
+ } else {
217
+ h = (r - g) / delta + 4;
218
+ }
219
+ h /= 6;
220
+ }
221
+ return [h, s, v];
222
+ }
223
+
224
+ // src/hslToHSV.ts
225
+ function hslToHSV_default(h, s, v) {
226
+ return rgbToHSV_default(...hslToRGB_default(h, s, v));
227
+ }
228
+
229
+ // src/hsvToRGB.ts
230
+ function hsvToRGB_default(h, s, v) {
231
+ let r = 0, g = 0, b = 0;
232
+ let i = Math.floor(h * 6), f = h * 6 - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s);
233
+ switch (i % 6) {
234
+ case 0:
235
+ r = v;
236
+ g = t;
237
+ b = p;
238
+ break;
239
+ case 1:
240
+ r = q;
241
+ g = v;
242
+ b = p;
243
+ break;
244
+ case 2:
245
+ r = p;
246
+ g = v;
247
+ b = t;
248
+ break;
249
+ case 3:
250
+ r = p;
251
+ g = q;
252
+ b = v;
253
+ break;
254
+ case 4:
255
+ r = t;
256
+ g = p;
257
+ b = v;
258
+ break;
259
+ case 5:
260
+ r = v;
261
+ g = p;
262
+ b = q;
263
+ break;
264
+ }
265
+ r = Math.round(r * 255);
266
+ g = Math.round(g * 255);
267
+ b = Math.round(b * 255);
268
+ return [r, g, b];
269
+ }
270
+
271
+ // src/rgbToHSL.ts
272
+ function rgbToHSL_default(r, g, b) {
273
+ r /= 255;
274
+ g /= 255;
275
+ b /= 255;
276
+ let cmin = Math.min(r, g, b), cmax = Math.max(r, g, b), delta = cmax - cmin, h, s, l;
277
+ if (delta === 0) {
278
+ h = 0;
279
+ } else if (cmax === r) {
280
+ h = (g - b) / delta % 6;
281
+ } else if (cmax === g) {
282
+ h = (b - r) / delta + 2;
283
+ } else {
284
+ h = (r - g) / delta + 4;
285
+ }
286
+ h = Math.round(h * 60);
287
+ if (h < 0) {
288
+ h += 360;
289
+ }
290
+ l = (cmax + cmin) / 2;
291
+ s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
292
+ s = +(s * 100).toFixed(1);
293
+ l = +(l * 100).toFixed(1);
294
+ return [h, s, l];
295
+ }
296
+
297
+ // src/hsvToHSL.ts
298
+ function hsvToHSL_default(h, s, v) {
299
+ return rgbToHSL_default(...hsvToRGB_default(h, s, v));
300
+ }
301
+
302
+ // src/isHtmlElement.ts
303
+ function isHtmlElement_default(elm) {
304
+ return elm instanceof HTMLElement;
305
+ }
306
+
91
307
  // src/isPointInPolygon.ts
92
308
  function isPointInPolygon_default(point, polygon) {
93
309
  let inside = false;
@@ -103,12 +319,34 @@ function isPointInPolygon_default(point, polygon) {
103
319
  }
104
320
 
105
321
  // src/isToday.ts
106
- import { DateTime } from "luxon";
107
- function isToday_default(dateTime) {
108
- const today = DateTime.now();
322
+ function isToday_default(dateTime, today) {
109
323
  return today.hasSame(dateTime, "day");
110
324
  }
111
325
 
326
+ // src/mulberry32.ts
327
+ function mulberry32(seed) {
328
+ const state = new Uint32Array(1);
329
+ state[0] = seed;
330
+ function next() {
331
+ const innerState = state[0] = state[0] + 1831565813 | 0;
332
+ let t = Math.imul(innerState ^ innerState >>> 15, 1 | innerState);
333
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
334
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
335
+ }
336
+ function nextBetween(from, to) {
337
+ return next() * (to - from) + from;
338
+ }
339
+ function fork() {
340
+ return mulberry32(next() * 2 ** 32);
341
+ }
342
+ return {
343
+ fork,
344
+ next,
345
+ nextBetween
346
+ };
347
+ }
348
+ var mulberry32_default = mulberry32;
349
+
112
350
  // src/openUrl.ts
113
351
  function openUrl_default(url) {
114
352
  if (window.location !== window.parent.location) {
@@ -118,6 +356,14 @@ function openUrl_default(url) {
118
356
  }
119
357
  }
120
358
 
359
+ // src/rgbToHEX.ts
360
+ function rgbToHEX_default(r, g, b) {
361
+ const sr = r.toString(16).padStart(2, "0");
362
+ const sg = g.toString(16).padStart(2, "0");
363
+ const sb = b.toString(16).padStart(2, "0");
364
+ return `#${sr}${sg}${sb}`;
365
+ }
366
+
121
367
  // src/viewTransition.ts
122
368
  function viewTransition_default(fn) {
123
369
  if ("startViewTransition" in document) {
@@ -140,6 +386,8 @@ export {
140
386
  MDASH,
141
387
  NDASH,
142
388
  NOOP,
389
+ clampWithStepPrecision_default as clampWithStepPrecision,
390
+ countDecimals_default as countDecimals,
143
391
  defineStore_default as defineStore,
144
392
  downloadBlob_default as downloadBlob,
145
393
  downloadString_default as downloadString,
@@ -148,10 +396,25 @@ export {
148
396
  formatDateFull_default as formatDateFull,
149
397
  formatDateTime_default as formatDateTime,
150
398
  formatMonth_default as formatMonth,
399
+ formatNumber_default as formatNumber,
400
+ formatPercentage_default as formatPercentage,
151
401
  formatTime_default as formatTime,
402
+ generateStepTicks_default as generateStepTicks,
403
+ hexToRGB_default as hexToRGB,
404
+ hslToHSV_default as hslToHSV,
405
+ hslToRGB_default as hslToRGB,
406
+ hsvToHSL_default as hsvToHSL,
407
+ hsvToRGB_default as hsvToRGB,
408
+ hueToRGB_default as hueToRGB,
409
+ isHtmlElement_default as isHtmlElement,
152
410
  isPointInPolygon_default as isPointInPolygon,
153
411
  isToday_default as isToday,
412
+ mulberry32_default as mulberry32,
154
413
  openUrl_default as openUrl,
414
+ rgbToHEX_default as rgbToHEX,
415
+ rgbToHSL_default as rgbToHSL,
416
+ rgbToHSV_default as rgbToHSV,
417
+ roundStep_default as roundStep,
155
418
  viewTransition_default as viewTransition,
156
419
  waitFor_default as waitFor
157
420
  };
package/dist/utils.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/defineStore.ts", "../src/downloadUrl.ts", "../src/downloadBlob.ts", "../src/downloadString.ts", "../src/formatDate.ts", "../src/formatDateFull.ts", "../src/formatDateTime.ts", "../src/formatMonth.ts", "../src/formatTime.ts", "../src/isPointInPolygon.ts", "../src/isToday.ts", "../src/openUrl.ts", "../src/viewTransition.ts", "../src/waitFor.ts", "../src/index.ts"],
4
- "sourcesContent": ["import { defineStore, StoreGeneric, storeToRefs } from 'pinia';\n\nexport default function <Id extends string, Setup extends (...args: any[]) => any, Context = ReturnType<Setup>>(id: Id, setup: Setup): UseStore<Context> {\n const storeFn = defineStore(id, setup);\n\n return () => {\n const store = storeFn();\n const keys = Object.getOwnPropertyNames(store);\n const refs = storeToRefs(store as StoreGeneric);\n const result: Record<string, unknown> = {};\n\n for (const key of keys) {\n if (key.startsWith('$') || key.startsWith('_')) {\n continue;\n }\n\n if (key in refs) {\n result[key] = refs[key];\n continue;\n }\n\n result[key] = store[key];\n }\n\n return result as Context;\n };\n}\n\ntype UseStore<R> = {\n (): R;\n}\n", "export default function (url: string, filename: string): void {\n const anchor = document.createElement('a');\n anchor.download = filename;\n anchor.href = url;\n\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n}\n", "import downloadUrl from './downloadUrl';\n\nexport default function (blob: Blob, filename: string): void {\n const url = URL.createObjectURL(blob);\n downloadUrl(url, filename);\n URL.revokeObjectURL(url);\n}\n", "import downloadBlob from './downloadBlob';\n\nexport default function (data: string, filename: string, type: string): void {\n const blob = new Blob([data], {type});\n downloadBlob(blob, filename);\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n weekday: 'long',\n day: 'numeric',\n month: 'long'\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n month: 'long',\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n hour: '2-digit',\n minute: '2-digit'\n });\n}\n", "type Point = [number, number];\n\nexport default function (point: Point, polygon: Point[]): boolean {\n let inside = false;\n\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i][0], yi = polygon[i][1];\n const xj = polygon[j][0], yj = polygon[j][1];\n const intersect = ((yi > point[1]) != (yj > point[1])) && (point[0] < (xj - xi) * (point[1] - yi) / (yj - yi) + xi);\n\n if (intersect) {\n inside = !inside;\n }\n }\n\n return inside;\n}\n", "import { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): boolean {\n const today = DateTime.now();\n return today.hasSame(dateTime, 'day');\n}\n", "export default function (url: string): void {\n if (window.location !== window.parent.location) {\n window.open(url, '_top');\n } else {\n window.location.href = url;\n }\n}\n", "export default function (fn: Function): void {\n if ('startViewTransition' in document) {\n (document.startViewTransition as Function)(fn);\n } else {\n fn();\n }\n}\n", "export default async function (ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n", "export { default as defineStore } from './defineStore';\nexport { default as downloadBlob } from './downloadBlob';\nexport { default as downloadString } from './downloadString';\nexport { default as downloadUrl } from './downloadUrl';\nexport { default as formatDate } from './formatDate';\nexport { default as formatDateFull } from './formatDateFull';\nexport { default as formatDateTime } from './formatDateTime';\nexport { default as formatMonth } from './formatMonth';\nexport { default as formatTime } from './formatTime';\nexport { default as isPointInPolygon } from './isPointInPolygon';\nexport { default as isToday } from './isToday';\nexport { default as openUrl } from './openUrl';\nexport { default as viewTransition } from './viewTransition';\nexport { default as waitFor } from './waitFor';\n\nexport const MDASH = '\u2014';\nexport const NDASH = '\u2013';\nexport const NOOP = () => void 0;\n"],
5
- "mappings": "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",
6
- "names": []
3
+ "sources": ["../src/roundStep.ts", "../src/clampWithStepPrecision.ts", "../src/countDecimals.ts", "../src/defineStore.ts", "../src/downloadUrl.ts", "../src/downloadBlob.ts", "../src/downloadString.ts", "../src/formatDate.ts", "../src/formatDateFull.ts", "../src/formatDateTime.ts", "../src/formatMonth.ts", "../src/formatNumber.ts", "../src/formatPercentage.ts", "../src/formatTime.ts", "../src/generateStepTicks.ts", "../src/hexToRGB.ts", "../src/hueToRGB.ts", "../src/hslToRGB.ts", "../src/rgbToHSV.ts", "../src/hslToHSV.ts", "../src/hsvToRGB.ts", "../src/rgbToHSL.ts", "../src/hsvToHSL.ts", "../src/isHtmlElement.ts", "../src/isPointInPolygon.ts", "../src/isToday.ts", "../src/mulberry32.ts", "../src/openUrl.ts", "../src/rgbToHEX.ts", "../src/viewTransition.ts", "../src/waitFor.ts", "../src/index.ts"],
4
+ "sourcesContent": ["export default function (value: number, step: number): number {\n return Math.round(value / step) * step;\n}\n", "import roundStep from './roundStep';\n\nexport default function (value: number, min: number, max: number, step: number): number {\n return Math.max(min, Math.min(max, +roundStep(value * (max - min) + min, step).toPrecision(4)));\n}\n", "export default function (value: number): number {\n return value.toString().split('.')[1]?.length ?? 0;\n}\n", "import { defineStore, StoreGeneric, storeToRefs } from 'pinia';\n\nexport default function <Id extends string, Setup extends (...args: any[]) => any, Context = ReturnType<Setup>>(id: Id, setup: Setup): UseStore<Context> {\n const storeFn = defineStore(id, setup);\n\n return () => {\n const store = storeFn();\n const keys = Object.getOwnPropertyNames(store);\n const refs = storeToRefs(store as StoreGeneric);\n const result: Record<string, unknown> = {};\n\n for (const key of keys) {\n if (key.startsWith('$') || key.startsWith('_')) {\n continue;\n }\n\n if (key in refs) {\n result[key] = refs[key];\n continue;\n }\n\n result[key] = store[key];\n }\n\n return result as Context;\n };\n}\n\ntype UseStore<R> = {\n (): R;\n}\n", "export default function (url: string, filename: string): void {\n const anchor = document.createElement('a');\n anchor.download = filename;\n anchor.href = url;\n\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n}\n", "import downloadUrl from './downloadUrl';\n\nexport default function (blob: Blob, filename: string): void {\n const url = URL.createObjectURL(blob);\n downloadUrl(url, filename);\n URL.revokeObjectURL(url);\n}\n", "import downloadBlob from './downloadBlob';\n\nexport default function (data: string, filename: string, type: string): void {\n const blob = new Blob([data], {type});\n downloadBlob(blob, filename);\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n weekday: 'long',\n day: 'numeric',\n month: 'long'\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n month: 'long',\n });\n}\n", "export default function (value: number, decimals: number = 0): string {\n const formatter = new Intl.NumberFormat(navigator.language, {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n\n return formatter.format(value);\n}\n", "export default function (value: number): string {\n return new Intl.NumberFormat(navigator.language, {\n maximumFractionDigits: 1,\n minimumFractionDigits: 0,\n style: 'percent'\n }).format(value);\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n hour: '2-digit',\n minute: '2-digit'\n });\n}\n", "export default function (lower: number, upper: number, target: number = 5, isSmall?: boolean): number[] {\n const STEP_TICK_SIZES = [1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000] as const;\n const STEP_TICK_SMALL_SIZES = [.1, .5, ...STEP_TICK_SIZES];\n\n const delta = upper - lower;\n const sizes = isSmall ? STEP_TICK_SMALL_SIZES : STEP_TICK_SIZES;\n\n for (const size of sizes) {\n const count = Math.floor(delta / size);\n const steps: number[] = [];\n\n if (count > target + 1) {\n continue;\n }\n\n steps.push(lower);\n\n for (let i = 1; i < count; ++i) {\n steps.push(i * size + lower);\n }\n\n steps.push(upper);\n\n return steps;\n }\n\n const digits = delta.toString().length - 1;\n const power = Math.pow(10, digits);\n const steps: number[] = [];\n\n for (let i = 0; i < delta; i += power) {\n steps.push(i + lower);\n }\n\n return steps;\n}\n", "export default function (hex: string): [number, number, number] {\n const color = parseInt(hex.startsWith('#') ? hex.substring(1) : hex, 16);\n\n return [\n (color >> 16) & 255,\n (color >> 8) & 255,\n color & 255\n ];\n}\n", "export default function (p: number, q: number, t: number): number {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n", "import hueToRGB from './hueToRGB';\n\nexport default function (h: number, s: number, l: number): [number, number, number] {\n let r: number, g: number, b: number;\n\n h /= 360;\n s /= 100;\n l /= 100;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hueToRGB(p, q, h + 1 / 3);\n g = hueToRGB(p, q, h);\n b = hueToRGB(p, q, h - 1 / 3);\n }\n\n r = Math.round(r * 255);\n g = Math.round(g * 255);\n b = Math.round(b * 255);\n\n return [r, g, b];\n}\n", "export default function (r: number, g: number, b: number): [number, number, number] {\n r /= 255;\n g /= 255;\n b /= 255;\n\n let cmin: number = Math.min(r, g, b),\n cmax: number = Math.max(r, g, b),\n delta: number = cmax - cmin,\n h: number, s: number = (cmax === 0 ? 0 : delta / cmax), v = cmax;\n\n if (cmax === cmin) {\n h = 0;\n } else {\n if (cmax === r) {\n h = (g - b) / delta + (g < b ? 6 : 0);\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n\n h /= 6;\n }\n\n return [h, s, v];\n};\n", "import hslToRGB from './hslToRGB';\nimport rgbToHSV from './rgbToHSV';\n\nexport default function (h: number, s: number, v: number): [number, number, number] {\n return rgbToHSV(...hslToRGB(h, s, v));\n}\n", "export default function (h: number, s: number, v: number): [number, number, number] {\n let r = 0, g = 0, b = 0;\n\n let i = Math.floor(h * 6),\n f = h * 6 - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n r = Math.round(r * 255);\n g = Math.round(g * 255);\n b = Math.round(b * 255);\n\n return [r, g, b];\n}\n", "export default function (r: number, g: number, b: number): [number, number, number] {\n r /= 255;\n g /= 255;\n b /= 255;\n\n let cmin: number = Math.min(r, g, b),\n cmax: number = Math.max(r, g, b),\n delta: number = cmax - cmin,\n h: number, s: number, l: number;\n\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n\n h = Math.round(h * 60);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return [h, s, l];\n};\n", "import hsvToRGB from './hsvToRGB';\nimport rgbToHSL from './rgbToHSL';\n\nexport default function (h: number, s: number, v: number): [number, number, number] {\n return rgbToHSL(...hsvToRGB(h, s, v));\n}\n", "export default function (elm: unknown): elm is HTMLElement {\n return elm instanceof HTMLElement;\n}\n", "type Point = [number, number];\n\nexport default function (point: Point, polygon: Point[]): boolean {\n let inside = false;\n\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i][0], yi = polygon[i][1];\n const xj = polygon[j][0], yj = polygon[j][1];\n const intersect = ((yi > point[1]) != (yj > point[1])) && (point[0] < (xj - xi) * (point[1] - yi) / (yj - yi) + xi);\n\n if (intersect) {\n inside = !inside;\n }\n }\n\n return inside;\n}\n", "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime, today: DateTime): boolean {\n return today.hasSame(dateTime, 'day');\n}\n", "function mulberry32(seed: number): Mulberry32 {\n const state = new Uint32Array(1);\n state[0] = seed;\n\n function next(): number {\n const innerState = (state[0] = (state[0] + 0x6d2b79f5) | 0);\n let t = Math.imul(innerState ^ (innerState >>> 15), 1 | innerState);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n }\n\n function nextBetween(from: number, to: number): number {\n return next() * (to - from) + from;\n }\n\n function fork(): Mulberry32 {\n return mulberry32(next() * 2 ** 32);\n }\n\n return {\n fork,\n next,\n nextBetween\n };\n}\n\nexport default mulberry32;\n\ntype Mulberry32 = {\n fork(): Mulberry32;\n next(): number;\n nextBetween(min: number, max: number): number;\n}\n", "export default function (url: string): void {\n if (window.location !== window.parent.location) {\n window.open(url, '_top');\n } else {\n window.location.href = url;\n }\n}\n", "export default function (r: number, g: number, b: number): string {\n const sr = r.toString(16).padStart(2, '0');\n const sg = g.toString(16).padStart(2, '0');\n const sb = b.toString(16).padStart(2, '0');\n\n return `#${sr}${sg}${sb}`;\n}\n", "export default function (fn: Function): void {\n if ('startViewTransition' in document) {\n (document.startViewTransition as Function)(fn);\n } else {\n fn();\n }\n}\n", "export default async function (ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n", "export { default as clampWithStepPrecision } from './clampWithStepPrecision';\nexport { default as countDecimals } from './countDecimals';\nexport { default as defineStore } from './defineStore';\nexport { default as downloadBlob } from './downloadBlob';\nexport { default as downloadString } from './downloadString';\nexport { default as downloadUrl } from './downloadUrl';\nexport { default as formatDate } from './formatDate';\nexport { default as formatDateFull } from './formatDateFull';\nexport { default as formatDateTime } from './formatDateTime';\nexport { default as formatMonth } from './formatMonth';\nexport { default as formatNumber } from './formatNumber';\nexport { default as formatPercentage } from './formatPercentage';\nexport { default as formatTime } from './formatTime';\nexport { default as generateStepTicks } from './generateStepTicks';\nexport { default as hexToRGB } from './hexToRGB';\nexport { default as hslToHSV } from './hslToHSV';\nexport { default as hslToRGB } from './hslToRGB';\nexport { default as hsvToHSL } from './hsvToHSL';\nexport { default as hsvToRGB } from './hsvToRGB';\nexport { default as hueToRGB } from './hueToRGB';\nexport { default as isHtmlElement } from './isHtmlElement';\nexport { default as isPointInPolygon } from './isPointInPolygon';\nexport { default as isToday } from './isToday';\nexport { default as mulberry32 } from './mulberry32';\nexport { default as openUrl } from './openUrl';\nexport { default as rgbToHEX } from './rgbToHEX';\nexport { default as rgbToHSL } from './rgbToHSL';\nexport { default as rgbToHSV } from './rgbToHSV';\nexport { default as roundStep } from './roundStep';\nexport { default as viewTransition } from './viewTransition';\nexport { default as waitFor } from './waitFor';\n\nexport const MDASH = '\u2014';\nexport const NDASH = '\u2013';\nexport const NOOP = () => void 0;\n"],
5
+ "mappings": "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",
6
+ "names": ["steps"]
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@basmilius/utils",
3
- "version": "1.1.3",
4
- "description": "Various utilities that are commonly used throughout personal projects.",
3
+ "version": "1.3.0",
4
+ "description": "Various utilities that are commonly used in personal projects.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/basmilius",
@@ -21,7 +21,7 @@
21
21
  "pinia"
22
22
  ],
23
23
  "engines": {
24
- "node": ">=20"
24
+ "node": ">=22"
25
25
  },
26
26
  "files": [
27
27
  "dist/*"
@@ -44,7 +44,7 @@
44
44
  "@types/luxon": "^3.4.2",
45
45
  "esbuild": "^0.24.0",
46
46
  "luxon": "^3.5.0",
47
- "pinia": "^2.2.6",
47
+ "pinia": "^2.3.0",
48
48
  "tsc-alias": "^1.8.10",
49
49
  "typescript": "^5.7.2"
50
50
  },