@basmilius/utils 1.1.2 → 1.2.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;
@@ -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
+ var STEP_TICK_SIZES = [1, 5, 10, 25, 50, 100, 250, 500, 1e3, 2500, 5e3, 1e4];
126
+ var STEP_TICK_SMALL_SIZES = [0.1, 0.5, ...STEP_TICK_SIZES];
127
+ function generateStepTicks_default(lower, upper, target = 5, isSmall) {
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;
@@ -109,6 +325,30 @@ function isToday_default(dateTime) {
109
325
  return today.hasSame(dateTime, "day");
110
326
  }
111
327
 
328
+ // src/mulberry32.ts
329
+ function mulberry32(seed) {
330
+ const state = new Uint32Array(1);
331
+ state[0] = seed;
332
+ function next() {
333
+ const innerState = state[0] = state[0] + 1831565813 | 0;
334
+ let t = Math.imul(innerState ^ innerState >>> 15, 1 | innerState);
335
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
336
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
337
+ }
338
+ function nextBetween(from, to) {
339
+ return next() * (to - from) + from;
340
+ }
341
+ function fork() {
342
+ return mulberry32(next() * 2 ** 32);
343
+ }
344
+ return {
345
+ fork,
346
+ next,
347
+ nextBetween
348
+ };
349
+ }
350
+ var mulberry32_default = mulberry32;
351
+
112
352
  // src/openUrl.ts
113
353
  function openUrl_default(url) {
114
354
  if (window.location !== window.parent.location) {
@@ -118,6 +358,14 @@ function openUrl_default(url) {
118
358
  }
119
359
  }
120
360
 
361
+ // src/rgbToHEX.ts
362
+ function rgbToHEX_default(r, g, b) {
363
+ const sr = r.toString(16).padStart(2, "0");
364
+ const sg = g.toString(16).padStart(2, "0");
365
+ const sb = b.toString(16).padStart(2, "0");
366
+ return `#${sr}${sg}${sb}`;
367
+ }
368
+
121
369
  // src/viewTransition.ts
122
370
  function viewTransition_default(fn) {
123
371
  if ("startViewTransition" in document) {
@@ -140,6 +388,8 @@ export {
140
388
  MDASH,
141
389
  NDASH,
142
390
  NOOP,
391
+ clampWithStepPrecision_default as clampWithStepPrecision,
392
+ countDecimals_default as countDecimals,
143
393
  defineStore_default as defineStore,
144
394
  downloadBlob_default as downloadBlob,
145
395
  downloadString_default as downloadString,
@@ -148,10 +398,25 @@ export {
148
398
  formatDateFull_default as formatDateFull,
149
399
  formatDateTime_default as formatDateTime,
150
400
  formatMonth_default as formatMonth,
401
+ formatNumber_default as formatNumber,
402
+ formatPercentage_default as formatPercentage,
151
403
  formatTime_default as formatTime,
404
+ generateStepTicks_default as generateStepTicks,
405
+ hexToRGB_default as hexToRGB,
406
+ hslToHSV_default as hslToHSV,
407
+ hslToRGB_default as hslToRGB,
408
+ hsvToHSL_default as hsvToHSL,
409
+ hsvToRGB_default as hsvToRGB,
410
+ hueToRGB_default as hueToRGB,
411
+ isHtmlElement_default as isHtmlElement,
152
412
  isPointInPolygon_default as isPointInPolygon,
153
413
  isToday_default as isToday,
414
+ mulberry32_default as mulberry32,
154
415
  openUrl_default as openUrl,
416
+ rgbToHEX_default as rgbToHEX,
417
+ rgbToHSL_default as rgbToHSL,
418
+ rgbToHSV_default as rgbToHSV,
419
+ roundStep_default as roundStep,
155
420
  viewTransition_default as viewTransition,
156
421
  waitFor_default as waitFor
157
422
  };
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": ";AAAA,SAAS,aAA2B,mBAAmB;AAExC,SAAR,oBAAyG,IAAQ,OAAiC;AACrJ,QAAM,UAAU,YAAY,IAAI,KAAK;AAErC,SAAO,MAAM;AACT,UAAM,QAAQ,QAAQ;AACtB,UAAM,OAAO,OAAO,oBAAoB,KAAK;AAC7C,UAAM,OAAO,YAAY,KAAqB;AAC9C,UAAM,SAAkC,CAAC;AAEzC,eAAW,OAAO,MAAM;AACpB,UAAI,IAAI,WAAW,GAAG,KAAK,IAAI,WAAW,GAAG,GAAG;AAC5C;AAAA,MACJ;AAEA,UAAI,OAAO,MAAM;AACb,eAAO,GAAG,IAAI,KAAK,GAAG;AACtB;AAAA,MACJ;AAEA,aAAO,GAAG,IAAI,MAAM,GAAG;AAAA,IAC3B;AAEA,WAAO;AAAA,EACX;AACJ;;;AC1Be,SAAR,oBAAkB,KAAa,UAAwB;AAC1D,QAAM,SAAS,SAAS,cAAc,GAAG;AACzC,SAAO,WAAW;AAClB,SAAO,OAAO;AAEd,WAAS,KAAK,YAAY,MAAM;AAChC,SAAO,MAAM;AACb,WAAS,KAAK,YAAY,MAAM;AACpC;;;ACNe,SAAR,qBAAkB,MAAY,UAAwB;AACzD,QAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,sBAAY,KAAK,QAAQ;AACzB,MAAI,gBAAgB,GAAG;AAC3B;;;ACJe,SAAR,uBAAkB,MAAc,UAAkB,MAAoB;AACzE,QAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAC,KAAI,CAAC;AACpC,uBAAa,MAAM,QAAQ;AAC/B;;;ACHe,SAAR,mBAAkB,UAA4B;AACjD,SAAO,SAAS,eAAe;AAAA,IAC3B,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EACT,CAAC;AACL;;;ACNe,SAAR,uBAAkB,UAA4B;AACjD,SAAO,SAAS,eAAe;AAAA,IAC3B,SAAS;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,EACX,CAAC;AACL;;;ACNe,SAAR,uBAAkB,UAA4B;AACjD,SAAO,SAAS,eAAe;AAAA,IAC3B,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACZ,CAAC;AACL;;;ACRe,SAAR,oBAAkB,UAA4B;AACjD,SAAO,SAAS,eAAe;AAAA,IAC3B,OAAO;AAAA,EACX,CAAC;AACL;;;ACJe,SAAR,mBAAkB,UAA4B;AACjD,SAAO,SAAS,eAAe;AAAA,IAC3B,MAAM;AAAA,IACN,QAAQ;AAAA,EACZ,CAAC;AACL;;;ACLe,SAAR,yBAAkB,OAAc,SAA2B;AAC9D,MAAI,SAAS;AAEb,WAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,GAAG,IAAI,QAAQ,QAAQ,IAAI,KAAK;AACjE,UAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;AAC3C,UAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;AAC3C,UAAM,YAAc,KAAK,MAAM,CAAC,KAAO,KAAK,MAAM,CAAC,KAAQ,MAAM,CAAC,KAAK,KAAK,OAAO,MAAM,CAAC,IAAI,OAAO,KAAK,MAAM;AAEhH,QAAI,WAAW;AACX,eAAS,CAAC;AAAA,IACd;AAAA,EACJ;AAEA,SAAO;AACX;;;AChBA,SAAS,gBAAgB;AAEV,SAAR,gBAAkB,UAA6B;AAClD,QAAM,QAAQ,SAAS,IAAI;AAC3B,SAAO,MAAM,QAAQ,UAAU,KAAK;AACxC;;;ACLe,SAAR,gBAAkB,KAAmB;AACxC,MAAI,OAAO,aAAa,OAAO,OAAO,UAAU;AAC5C,WAAO,KAAK,KAAK,MAAM;AAAA,EAC3B,OAAO;AACH,WAAO,SAAS,OAAO;AAAA,EAC3B;AACJ;;;ACNe,SAAR,uBAAkB,IAAoB;AACzC,MAAI,yBAAyB,UAAU;AACnC,IAAC,SAAS,oBAAiC,EAAE;AAAA,EACjD,OAAO;AACH,OAAG;AAAA,EACP;AACJ;;;ACNA,eAAO,gBAAwB,IAA2B;AACtD,SAAO,IAAI,QAAQ,aAAW,WAAW,SAAS,EAAE,CAAC;AACzD;;;ACaO,IAAM,QAAQ;AACd,IAAM,QAAQ;AACd,IAAM,OAAO,MAAM;",
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", "const STEP_TICK_SIZES = [1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000] as const;\nconst STEP_TICK_SMALL_SIZES = [.1, .5, ...STEP_TICK_SIZES];\n\nexport default function (lower: number, upper: number, target: number = 5, isSmall?: boolean): number[] {\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 { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): boolean {\n const today = DateTime.now();\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.2",
4
- "description": "Various utilities that are commonly used throughout personal projects.",
3
+ "version": "1.2.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,9 +44,9 @@
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
- "typescript": "^5.6.3"
49
+ "typescript": "^5.7.2"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "luxon": "^3.5.0",