@wexample/js-helpers 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +1 -1
  2. package/dist/Common/AsyncConstructor.js +39 -44
  3. package/dist/Common/AsyncConstructor.js.map +1 -1
  4. package/dist/Helper/Array.js +18 -19
  5. package/dist/Helper/Array.js.map +1 -1
  6. package/dist/Helper/Bytes.js +9 -13
  7. package/dist/Helper/Bytes.js.map +1 -1
  8. package/dist/Helper/Dom.js +61 -58
  9. package/dist/Helper/Dom.js.map +1 -1
  10. package/dist/Helper/Event.js +27 -31
  11. package/dist/Helper/Event.js.map +1 -1
  12. package/dist/Helper/Function.js +2 -6
  13. package/dist/Helper/Function.js.map +1 -1
  14. package/dist/Helper/KeyCode.js +2 -6
  15. package/dist/Helper/KeyCode.js.map +1 -1
  16. package/dist/Helper/Location.js +41 -43
  17. package/dist/Helper/Location.js.map +1 -1
  18. package/dist/Helper/Log.js +21 -25
  19. package/dist/Helper/Log.js.map +1 -1
  20. package/dist/Helper/Mixin.js +26 -24
  21. package/dist/Helper/Mixin.js.map +1 -1
  22. package/dist/Helper/Object.js +81 -86
  23. package/dist/Helper/Object.js.map +1 -1
  24. package/dist/Helper/Pointer.js +2 -6
  25. package/dist/Helper/Pointer.js.map +1 -1
  26. package/dist/Helper/Queue.js +72 -74
  27. package/dist/Helper/Queue.js.map +1 -1
  28. package/dist/Helper/String.js +250 -200
  29. package/dist/Helper/String.js.map +1 -1
  30. package/dist/Helper/Time.js +4 -8
  31. package/dist/Helper/Time.js.map +1 -1
  32. package/dist/Helper/Url.js +14 -18
  33. package/dist/Helper/Url.js.map +1 -1
  34. package/dist/Helper/Variables.js +9 -13
  35. package/dist/Helper/Variables.js.map +1 -1
  36. package/package.json +4 -11
  37. package/dist/Common/AsyncConstructor.cjs +0 -49
  38. package/dist/Common/AsyncConstructor.cjs.map +0 -1
  39. package/dist/Common/AsyncConstructor.d.cts +0 -13
  40. package/dist/Common/AsyncConstructor.d.ts +0 -13
  41. package/dist/Helper/Array.cjs +0 -33
  42. package/dist/Helper/Array.cjs.map +0 -1
  43. package/dist/Helper/Array.d.cts +0 -11
  44. package/dist/Helper/Array.d.ts +0 -11
  45. package/dist/Helper/Bytes.cjs +0 -17
  46. package/dist/Helper/Bytes.cjs.map +0 -1
  47. package/dist/Helper/Bytes.d.cts +0 -3
  48. package/dist/Helper/Bytes.d.ts +0 -3
  49. package/dist/Helper/Dom.cjs +0 -83
  50. package/dist/Helper/Dom.cjs.map +0 -1
  51. package/dist/Helper/Dom.d.cts +0 -32
  52. package/dist/Helper/Dom.d.ts +0 -32
  53. package/dist/Helper/Event.cjs +0 -35
  54. package/dist/Helper/Event.cjs.map +0 -1
  55. package/dist/Helper/Event.d.cts +0 -31
  56. package/dist/Helper/Event.d.ts +0 -31
  57. package/dist/Helper/Function.cjs +0 -10
  58. package/dist/Helper/Function.cjs.map +0 -1
  59. package/dist/Helper/Function.d.cts +0 -3
  60. package/dist/Helper/Function.d.ts +0 -3
  61. package/dist/Helper/KeyCode.cjs +0 -10
  62. package/dist/Helper/KeyCode.cjs.map +0 -1
  63. package/dist/Helper/KeyCode.d.cts +0 -6
  64. package/dist/Helper/KeyCode.d.ts +0 -6
  65. package/dist/Helper/Location.cjs +0 -57
  66. package/dist/Helper/Location.cjs.map +0 -1
  67. package/dist/Helper/Location.d.cts +0 -9
  68. package/dist/Helper/Location.d.ts +0 -9
  69. package/dist/Helper/Log.cjs +0 -37
  70. package/dist/Helper/Log.cjs.map +0 -1
  71. package/dist/Helper/Log.d.cts +0 -19
  72. package/dist/Helper/Log.d.ts +0 -19
  73. package/dist/Helper/Mixin.cjs +0 -29
  74. package/dist/Helper/Mixin.cjs.map +0 -1
  75. package/dist/Helper/Mixin.d.cts +0 -8
  76. package/dist/Helper/Mixin.d.ts +0 -8
  77. package/dist/Helper/Object.cjs +0 -103
  78. package/dist/Helper/Object.cjs.map +0 -1
  79. package/dist/Helper/Object.d.cts +0 -14
  80. package/dist/Helper/Object.d.ts +0 -14
  81. package/dist/Helper/Pointer.cjs +0 -10
  82. package/dist/Helper/Pointer.cjs.map +0 -1
  83. package/dist/Helper/Pointer.d.cts +0 -5
  84. package/dist/Helper/Pointer.d.ts +0 -5
  85. package/dist/Helper/Queue.cjs +0 -84
  86. package/dist/Helper/Queue.cjs.map +0 -1
  87. package/dist/Helper/Queue.d.cts +0 -35
  88. package/dist/Helper/Queue.d.ts +0 -35
  89. package/dist/Helper/String.cjs +0 -253
  90. package/dist/Helper/String.cjs.map +0 -1
  91. package/dist/Helper/String.d.cts +0 -50
  92. package/dist/Helper/String.d.ts +0 -50
  93. package/dist/Helper/Time.cjs +0 -12
  94. package/dist/Helper/Time.cjs.map +0 -1
  95. package/dist/Helper/Time.d.cts +0 -3
  96. package/dist/Helper/Time.d.ts +0 -3
  97. package/dist/Helper/Url.cjs +0 -24
  98. package/dist/Helper/Url.cjs.map +0 -1
  99. package/dist/Helper/Url.d.cts +0 -4
  100. package/dist/Helper/Url.d.ts +0 -4
  101. package/dist/Helper/Variables.cjs +0 -20
  102. package/dist/Helper/Variables.cjs.map +0 -1
  103. package/dist/Helper/Variables.d.cts +0 -12
  104. package/dist/Helper/Variables.d.ts +0 -12
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@wexample/js-helpers",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Modern, type-safe helper utilities for Wexample projects.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
8
8
  "scripts": {
9
9
  "clean": "rm -rf dist",
10
- "build": "tsup",
10
+ "build": "npm run clean && tsc",
11
11
  "lint": "npm run typecheck",
12
12
  "prepublishOnly": "npm run build"
13
13
  },
@@ -33,15 +33,8 @@
33
33
  ],
34
34
  "exports": {
35
35
  "./*": {
36
- "types": "./dist/*.d.ts",
37
- "default": "./dist/*.js"
38
- }
39
- },
40
- "typesVersions": {
41
- "*": {
42
- "*": [
43
- "dist/*"
44
- ]
36
+ "types": "./dist/*",
37
+ "default": "./dist/*"
45
38
  }
46
39
  }
47
40
  }
@@ -1,49 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Function.ts
4
- function functionIsType(value) {
5
- return typeof value === "function";
6
- }
7
-
8
- // src/Common/AsyncConstructor.ts
9
- var AsyncConstructor = class {
10
- constructor() {
11
- this._isReady = false;
12
- this._readyArgs = null;
13
- this.readyCallbacks = [];
14
- }
15
- get isReady() {
16
- return this._isReady;
17
- }
18
- defer(fn) {
19
- if (typeof queueMicrotask === "function") queueMicrotask(fn);
20
- else setTimeout(fn, 0);
21
- }
22
- ready(cb) {
23
- if (this._isReady) {
24
- const args = this._readyArgs ?? [];
25
- this.defer(() => void cb.apply(this, args));
26
- return;
27
- }
28
- this.readyCallbacks.push(cb);
29
- }
30
- async readyComplete(...args) {
31
- if (this._isReady) return;
32
- this._isReady = true;
33
- this._readyArgs = args;
34
- const callbacks = this.readyCallbacks.splice(0);
35
- for (const cb of callbacks) {
36
- if (!functionIsType(cb)) {
37
- throw new TypeError("Ready callback must be a function.");
38
- }
39
- await cb.apply(this, args);
40
- }
41
- }
42
- seal() {
43
- Object.seal(this);
44
- }
45
- };
46
-
47
- module.exports = AsyncConstructor;
48
- //# sourceMappingURL=AsyncConstructor.cjs.map
49
- //# sourceMappingURL=AsyncConstructor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Function.ts","../../src/Common/AsyncConstructor.ts"],"names":[],"mappings":";;;AAAO,SAAS,eACd,KAAA,EACgC;AAChC,EAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AAC1B;;;ACAA,IAA8B,mBAA9B,MAAoF;AAAA,EAApF,WAAA,GAAA;AACE,IAAA,IAAA,CAAQ,QAAA,GAAW,KAAA;AACnB,IAAA,IAAA,CAAQ,UAAA,GAA2B,IAAA;AACnC,IAAA,IAAA,CAAiB,iBAA4C,EAAC;AAAA,EAAA;AAAA,EAE9D,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAK,QAAA;AAAA,EACd;AAAA,EAEU,MAAM,EAAA,EAAsB;AACpC,IAAA,IAAI,OAAO,cAAA,KAAmB,UAAA,EAAY,cAAA,CAAe,EAAE,CAAA;AAAA,SACtD,UAAA,CAAW,IAAI,CAAC,CAAA;AAAA,EACvB;AAAA,EAEA,MAAM,EAAA,EAA8B;AAClC,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,UAAA,IAAe,EAAC;AAClC,MAAA,IAAA,CAAK,MAAM,MAAM,KAAK,GAAG,KAAA,CAAM,IAAA,EAAM,IAAI,CAAC,CAAA;AAC1C,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,cAAA,CAAe,KAAK,EAAE,CAAA;AAAA,EAC7B;AAAA,EAEA,MAAgB,iBAAiB,IAAA,EAA4B;AAC3D,IAAA,IAAI,KAAK,QAAA,EAAU;AAEnB,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAElB,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,CAAC,CAAA;AAE9C,IAAA,KAAA,MAAW,MAAM,SAAA,EAAW;AAC1B,MAAA,IAAI,CAAC,cAAA,CAAe,EAAE,CAAA,EAAG;AACvB,QAAA,MAAM,IAAI,UAAU,oCAAoC,CAAA;AAAA,MAC1D;AACA,MAAA,MAAM,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAAA,IAC3B;AAAA,EACF;AAAA,EAEU,IAAA,GAAa;AACrB,IAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,EAClB;AACF","file":"AsyncConstructor.cjs","sourcesContent":["export function functionIsType<TArgs extends unknown[] = unknown[], R = unknown>(\n value: unknown\n): value is (...args: TArgs) => R {\n return typeof value === 'function';\n}\n","import { functionIsType } from '../Helper/Function.js';\n\ntype AnyFn<TThis, TArgs extends unknown[]> = (this: TThis, ...args: TArgs) => void | Promise<void>;\n\nexport default abstract class AsyncConstructor<TArgs extends unknown[] = unknown[]> {\n private _isReady = false;\n private _readyArgs: TArgs | null = null;\n private readonly readyCallbacks: Array<AnyFn<this, TArgs>> = [];\n\n get isReady(): boolean {\n return this._isReady;\n }\n\n protected defer(fn: () => void): void {\n if (typeof queueMicrotask === 'function') queueMicrotask(fn);\n else setTimeout(fn, 0);\n }\n\n ready(cb: AnyFn<this, TArgs>): void {\n if (this._isReady) {\n const args = this._readyArgs ?? ([] as unknown as TArgs);\n this.defer(() => void cb.apply(this, args));\n return;\n }\n this.readyCallbacks.push(cb);\n }\n\n protected async readyComplete(...args: TArgs): Promise<void> {\n if (this._isReady) return;\n\n this._isReady = true;\n this._readyArgs = args;\n\n const callbacks = this.readyCallbacks.splice(0);\n\n for (const cb of callbacks) {\n if (!functionIsType(cb)) {\n throw new TypeError('Ready callback must be a function.');\n }\n await cb.apply(this, args);\n }\n }\n\n protected seal(): void {\n Object.seal(this);\n }\n}\n"]}
@@ -1,13 +0,0 @@
1
- type AnyFn<TThis, TArgs extends unknown[]> = (this: TThis, ...args: TArgs) => void | Promise<void>;
2
- declare abstract class AsyncConstructor<TArgs extends unknown[] = unknown[]> {
3
- private _isReady;
4
- private _readyArgs;
5
- private readonly readyCallbacks;
6
- get isReady(): boolean;
7
- protected defer(fn: () => void): void;
8
- ready(cb: AnyFn<this, TArgs>): void;
9
- protected readyComplete(...args: TArgs): Promise<void>;
10
- protected seal(): void;
11
- }
12
-
13
- export { AsyncConstructor as default };
@@ -1,13 +0,0 @@
1
- type AnyFn<TThis, TArgs extends unknown[]> = (this: TThis, ...args: TArgs) => void | Promise<void>;
2
- declare abstract class AsyncConstructor<TArgs extends unknown[] = unknown[]> {
3
- private _isReady;
4
- private _readyArgs;
5
- private readonly readyCallbacks;
6
- get isReady(): boolean;
7
- protected defer(fn: () => void): void;
8
- ready(cb: AnyFn<this, TArgs>): void;
9
- protected readyComplete(...args: TArgs): Promise<void>;
10
- protected seal(): void;
11
- }
12
-
13
- export { AsyncConstructor as default };
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Array.ts
4
- function arrayDeleteItem(haystack, needle) {
5
- return arrayDeleteByIndex(haystack, haystack.indexOf(needle));
6
- }
7
- function arrayDeleteByIndex(haystack, index) {
8
- if (index !== -1) {
9
- haystack.splice(index, 1);
10
- }
11
- return haystack;
12
- }
13
- function arrayFromArguments(args) {
14
- return Array.prototype.slice.call(args);
15
- }
16
- function arrayShallowCopy(array) {
17
- return array.slice(0);
18
- }
19
- function arrayUnique(array) {
20
- return array.filter((value, index) => array.indexOf(value) === index);
21
- }
22
- function arrayFindByIndex(array, position) {
23
- return array[position >= 0 ? position : array.length + position];
24
- }
25
-
26
- exports.arrayDeleteByIndex = arrayDeleteByIndex;
27
- exports.arrayDeleteItem = arrayDeleteItem;
28
- exports.arrayFindByIndex = arrayFindByIndex;
29
- exports.arrayFromArguments = arrayFromArguments;
30
- exports.arrayShallowCopy = arrayShallowCopy;
31
- exports.arrayUnique = arrayUnique;
32
- //# sourceMappingURL=Array.cjs.map
33
- //# sourceMappingURL=Array.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Array.ts"],"names":[],"mappings":";;;AAAO,SAAS,eAAA,CAAmB,UAAe,MAAA,EAAgB;AAChE,EAAA,OAAO,kBAAA,CAAmB,QAAA,EAAU,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAC,CAAA;AAC9D;AAEO,SAAS,kBAAA,CAAsB,UAAe,KAAA,EAAoB;AACvE,EAAA,IAAI,UAAU,EAAA,EAAI;AAChB,IAAA,QAAA,CAAS,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,QAAA;AACT;AAKO,SAAS,mBAAsB,IAAA,EAAyB;AAC7D,EAAA,OAAO,KAAA,CAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACxC;AAEO,SAAS,iBAAoB,KAAA,EAAiB;AACnD,EAAA,OAAO,KAAA,CAAM,MAAM,CAAC,CAAA;AACtB;AAEO,SAAS,YAAe,KAAA,EAAiB;AAC9C,EAAA,OAAO,KAAA,CAAM,OAAO,CAAC,KAAA,EAAO,UAAU,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,KAAM,KAAK,CAAA;AACtE;AAEO,SAAS,gBAAA,CAAoB,OAAY,QAAA,EAAiC;AAC/E,EAAA,OAAO,MAAM,QAAA,IAAY,CAAA,GAAI,QAAA,GAAW,KAAA,CAAM,SAAS,QAAQ,CAAA;AACjE","file":"Array.cjs","sourcesContent":["export function arrayDeleteItem<T>(haystack: T[], needle: T): T[] {\n return arrayDeleteByIndex(haystack, haystack.indexOf(needle));\n}\n\nexport function arrayDeleteByIndex<T>(haystack: T[], index: number): T[] {\n if (index !== -1) {\n haystack.splice(index, 1);\n }\n\n return haystack;\n}\n\n/**\n * Functions \"arguments\" object may be transformed to real array for extra manipulations.\n */\nexport function arrayFromArguments<T>(args: ArrayLike<T>): T[] {\n return Array.prototype.slice.call(args);\n}\n\nexport function arrayShallowCopy<T>(array: T[]): T[] {\n return array.slice(0);\n}\n\nexport function arrayUnique<T>(array: T[]): T[] {\n return array.filter((value, index) => array.indexOf(value) === index);\n}\n\nexport function arrayFindByIndex<T>(array: T[], position: number): T | undefined {\n return array[position >= 0 ? position : array.length + position];\n}\n"]}
@@ -1,11 +0,0 @@
1
- declare function arrayDeleteItem<T>(haystack: T[], needle: T): T[];
2
- declare function arrayDeleteByIndex<T>(haystack: T[], index: number): T[];
3
- /**
4
- * Functions "arguments" object may be transformed to real array for extra manipulations.
5
- */
6
- declare function arrayFromArguments<T>(args: ArrayLike<T>): T[];
7
- declare function arrayShallowCopy<T>(array: T[]): T[];
8
- declare function arrayUnique<T>(array: T[]): T[];
9
- declare function arrayFindByIndex<T>(array: T[], position: number): T | undefined;
10
-
11
- export { arrayDeleteByIndex, arrayDeleteItem, arrayFindByIndex, arrayFromArguments, arrayShallowCopy, arrayUnique };
@@ -1,11 +0,0 @@
1
- declare function arrayDeleteItem<T>(haystack: T[], needle: T): T[];
2
- declare function arrayDeleteByIndex<T>(haystack: T[], index: number): T[];
3
- /**
4
- * Functions "arguments" object may be transformed to real array for extra manipulations.
5
- */
6
- declare function arrayFromArguments<T>(args: ArrayLike<T>): T[];
7
- declare function arrayShallowCopy<T>(array: T[]): T[];
8
- declare function arrayUnique<T>(array: T[]): T[];
9
- declare function arrayFindByIndex<T>(array: T[], position: number): T | undefined;
10
-
11
- export { arrayDeleteByIndex, arrayDeleteItem, arrayFindByIndex, arrayFromArguments, arrayShallowCopy, arrayUnique };
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Bytes.ts
4
- function bytesFormatBytes(bytes, decimals = 2) {
5
- if (bytes === 0) {
6
- return "0 Bytes";
7
- }
8
- const k = 1024;
9
- const dm = decimals < 0 ? 0 : decimals;
10
- const sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
11
- const i = Math.floor(Math.log(bytes) / Math.log(k));
12
- return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;
13
- }
14
-
15
- exports.bytesFormatBytes = bytesFormatBytes;
16
- //# sourceMappingURL=Bytes.cjs.map
17
- //# sourceMappingURL=Bytes.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Bytes.ts"],"names":[],"mappings":";;;AAAO,SAAS,gBAAA,CAAiB,KAAA,EAAe,QAAA,GAAW,CAAA,EAAW;AACpE,EAAA,IAAI,UAAU,CAAA,EAAG;AACf,IAAA,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,MAAM,CAAA,GAAI,IAAA;AACV,EAAA,MAAM,EAAA,GAAK,QAAA,GAAW,CAAA,GAAI,CAAA,GAAI,QAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,CAAC,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAClE,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA;AAElD,EAAA,OAAO,CAAA,EAAG,UAAA,CAAA,CAAY,KAAA,GAAQ,CAAA,IAAK,CAAA,EAAG,OAAA,CAAQ,EAAE,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChE","file":"Bytes.cjs","sourcesContent":["export function bytesFormatBytes(bytes: number, decimals = 2): string {\n if (bytes === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;\n}\n"]}
@@ -1,3 +0,0 @@
1
- declare function bytesFormatBytes(bytes: number, decimals?: number): string;
2
-
3
- export { bytesFormatBytes };
@@ -1,3 +0,0 @@
1
- declare function bytesFormatBytes(bytes: number, decimals?: number): string;
2
-
3
- export { bytesFormatBytes };
@@ -1,83 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Dom.ts
4
- var DOM_ATTRIBUTE = {
5
- HREF: "href",
6
- ID: "id",
7
- REL: "rel",
8
- SRC: "src"
9
- };
10
- var DOM_ATTRIBUTE_VALUE = {
11
- STYLESHEET: "stylesheet"
12
- };
13
- var DOM_INSERT_POSITION = {
14
- BEFORE_END: "beforeend"
15
- };
16
- var DOM_TAG_NAME = {
17
- A: "a",
18
- DIV: "div",
19
- LINK: "link",
20
- SCRIPT: "script"
21
- };
22
- function domAppendInnerHtml(el, html) {
23
- el.insertAdjacentHTML(DOM_INSERT_POSITION.BEFORE_END, html);
24
- }
25
- function domFindPreviousNode(el) {
26
- let current = el;
27
- do {
28
- current = current?.previousSibling ?? null;
29
- } while (current && current.nodeType === Node.TEXT_NODE);
30
- return current;
31
- }
32
- function domFindScrollParent(element, includeHidden = false) {
33
- const style = getComputedStyle(element);
34
- const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
35
- const excludeStaticParent = style.position === "absolute";
36
- if (style.position === "fixed") {
37
- return document.body;
38
- }
39
- let parent = element.parentElement;
40
- while (parent) {
41
- const parentStyle = getComputedStyle(parent);
42
- if ((!excludeStaticParent || parentStyle.position !== "static") && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {
43
- return parent;
44
- }
45
- parent = parent.parentElement;
46
- }
47
- return document.body;
48
- }
49
- function domToggleMainOverlay(visible = null) {
50
- const overlay = document.getElementById("main-overlay");
51
- if (!overlay) return;
52
- const classList = overlay.classList;
53
- const shouldShow = visible !== null ? visible : !classList.contains("visible");
54
- classList[shouldShow ? "add" : "remove"]("visible");
55
- }
56
- function domCreateHtmlDocumentFromHtml(html) {
57
- const root = document.createElement("html");
58
- root.innerHTML = html;
59
- return root;
60
- }
61
- function domRemoveAllClasses(el, classesToRemove) {
62
- for (const className of classesToRemove) {
63
- el.classList.remove(className);
64
- }
65
- }
66
- function domReplaceByOneClass(el, newState, classesToRemove) {
67
- domRemoveAllClasses(el, classesToRemove);
68
- el.classList.add(newState);
69
- }
70
-
71
- exports.DOM_ATTRIBUTE = DOM_ATTRIBUTE;
72
- exports.DOM_ATTRIBUTE_VALUE = DOM_ATTRIBUTE_VALUE;
73
- exports.DOM_INSERT_POSITION = DOM_INSERT_POSITION;
74
- exports.DOM_TAG_NAME = DOM_TAG_NAME;
75
- exports.domAppendInnerHtml = domAppendInnerHtml;
76
- exports.domCreateHtmlDocumentFromHtml = domCreateHtmlDocumentFromHtml;
77
- exports.domFindPreviousNode = domFindPreviousNode;
78
- exports.domFindScrollParent = domFindScrollParent;
79
- exports.domRemoveAllClasses = domRemoveAllClasses;
80
- exports.domReplaceByOneClass = domReplaceByOneClass;
81
- exports.domToggleMainOverlay = domToggleMainOverlay;
82
- //# sourceMappingURL=Dom.cjs.map
83
- //# sourceMappingURL=Dom.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Dom.ts"],"names":[],"mappings":"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","file":"Dom.cjs","sourcesContent":["export const DOM_ATTRIBUTE = {\n HREF: 'href',\n ID: 'id',\n REL: 'rel',\n SRC: 'src',\n} as const;\n\nexport const DOM_ATTRIBUTE_VALUE = {\n STYLESHEET: 'stylesheet',\n} as const;\n\nexport const DOM_INSERT_POSITION = {\n BEFORE_END: 'beforeend' as InsertPosition,\n} as const;\n\nexport const DOM_TAG_NAME = {\n A: 'a',\n DIV: 'div',\n LINK: 'link',\n SCRIPT: 'script',\n} as const;\n\nexport function domAppendInnerHtml(el: HTMLElement, html: string): void {\n el.insertAdjacentHTML(DOM_INSERT_POSITION.BEFORE_END, html);\n}\n\nexport function domFindPreviousNode(el: HTMLElement): HTMLElement | null {\n let current: ChildNode | null = el;\n\n do {\n current = current?.previousSibling ?? null;\n } while (current && current.nodeType === Node.TEXT_NODE);\n\n return current as HTMLElement | null;\n}\n\n/**\n * Return first scrollable parent.\n *\n * @see https://stackoverflow.com/a/42543908/2057976\n */\nexport function domFindScrollParent(element: HTMLElement, includeHidden = false): HTMLElement {\n const style = getComputedStyle(element);\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;\n const excludeStaticParent = style.position === 'absolute';\n\n if (style.position === 'fixed') {\n return document.body;\n }\n\n let parent: HTMLElement | null = element.parentElement;\n while (parent) {\n const parentStyle = getComputedStyle(parent);\n\n if (\n (!excludeStaticParent || parentStyle.position !== 'static') &&\n overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)\n ) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return document.body;\n}\n\nexport function domToggleMainOverlay(visible: boolean | null = null): void {\n const overlay = document.getElementById('main-overlay');\n if (!overlay) return;\n\n const classList = overlay.classList;\n const shouldShow = visible !== null ? visible : !classList.contains('visible');\n\n classList[shouldShow ? 'add' : 'remove']('visible');\n}\n\nexport function domCreateHtmlDocumentFromHtml(html: string): HTMLHtmlElement {\n const root = document.createElement('html');\n root.innerHTML = html;\n return root;\n}\n\nexport function domRemoveAllClasses(el: HTMLElement, classesToRemove: Iterable<string>): void {\n for (const className of classesToRemove) {\n el.classList.remove(className);\n }\n}\n\nexport function domReplaceByOneClass(\n el: HTMLElement,\n newState: string,\n classesToRemove: Iterable<string>\n): void {\n domRemoveAllClasses(el, classesToRemove);\n el.classList.add(newState);\n}\n"]}
@@ -1,32 +0,0 @@
1
- declare const DOM_ATTRIBUTE: {
2
- readonly HREF: "href";
3
- readonly ID: "id";
4
- readonly REL: "rel";
5
- readonly SRC: "src";
6
- };
7
- declare const DOM_ATTRIBUTE_VALUE: {
8
- readonly STYLESHEET: "stylesheet";
9
- };
10
- declare const DOM_INSERT_POSITION: {
11
- readonly BEFORE_END: InsertPosition;
12
- };
13
- declare const DOM_TAG_NAME: {
14
- readonly A: "a";
15
- readonly DIV: "div";
16
- readonly LINK: "link";
17
- readonly SCRIPT: "script";
18
- };
19
- declare function domAppendInnerHtml(el: HTMLElement, html: string): void;
20
- declare function domFindPreviousNode(el: HTMLElement): HTMLElement | null;
21
- /**
22
- * Return first scrollable parent.
23
- *
24
- * @see https://stackoverflow.com/a/42543908/2057976
25
- */
26
- declare function domFindScrollParent(element: HTMLElement, includeHidden?: boolean): HTMLElement;
27
- declare function domToggleMainOverlay(visible?: boolean | null): void;
28
- declare function domCreateHtmlDocumentFromHtml(html: string): HTMLHtmlElement;
29
- declare function domRemoveAllClasses(el: HTMLElement, classesToRemove: Iterable<string>): void;
30
- declare function domReplaceByOneClass(el: HTMLElement, newState: string, classesToRemove: Iterable<string>): void;
31
-
32
- export { DOM_ATTRIBUTE, DOM_ATTRIBUTE_VALUE, DOM_INSERT_POSITION, DOM_TAG_NAME, domAppendInnerHtml, domCreateHtmlDocumentFromHtml, domFindPreviousNode, domFindScrollParent, domRemoveAllClasses, domReplaceByOneClass, domToggleMainOverlay };
@@ -1,32 +0,0 @@
1
- declare const DOM_ATTRIBUTE: {
2
- readonly HREF: "href";
3
- readonly ID: "id";
4
- readonly REL: "rel";
5
- readonly SRC: "src";
6
- };
7
- declare const DOM_ATTRIBUTE_VALUE: {
8
- readonly STYLESHEET: "stylesheet";
9
- };
10
- declare const DOM_INSERT_POSITION: {
11
- readonly BEFORE_END: InsertPosition;
12
- };
13
- declare const DOM_TAG_NAME: {
14
- readonly A: "a";
15
- readonly DIV: "div";
16
- readonly LINK: "link";
17
- readonly SCRIPT: "script";
18
- };
19
- declare function domAppendInnerHtml(el: HTMLElement, html: string): void;
20
- declare function domFindPreviousNode(el: HTMLElement): HTMLElement | null;
21
- /**
22
- * Return first scrollable parent.
23
- *
24
- * @see https://stackoverflow.com/a/42543908/2057976
25
- */
26
- declare function domFindScrollParent(element: HTMLElement, includeHidden?: boolean): HTMLElement;
27
- declare function domToggleMainOverlay(visible?: boolean | null): void;
28
- declare function domCreateHtmlDocumentFromHtml(html: string): HTMLHtmlElement;
29
- declare function domRemoveAllClasses(el: HTMLElement, classesToRemove: Iterable<string>): void;
30
- declare function domReplaceByOneClass(el: HTMLElement, newState: string, classesToRemove: Iterable<string>): void;
31
-
32
- export { DOM_ATTRIBUTE, DOM_ATTRIBUTE_VALUE, DOM_INSERT_POSITION, DOM_TAG_NAME, domAppendInnerHtml, domCreateHtmlDocumentFromHtml, domFindPreviousNode, domFindScrollParent, domRemoveAllClasses, domReplaceByOneClass, domToggleMainOverlay };
@@ -1,35 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Event.ts
4
- var EVENT = {
5
- CLICK: "click",
6
- DBLCLICK: "dblclick",
7
- CONTEXTMENU: "contextmenu",
8
- KEYDOWN: "keydown",
9
- KEYUP: "keyup",
10
- KEYPRESS: "keypress",
11
- INPUT: "input",
12
- CHANGE: "change",
13
- FOCUS: "focus",
14
- BLUR: "blur",
15
- SUBMIT: "submit",
16
- RESET: "reset",
17
- MOUSEUP: "mouseup",
18
- MOUSEDOWN: "mousedown",
19
- MOUSEMOVE: "mousemove",
20
- MOUSEENTER: "mouseenter",
21
- MOUSELEAVE: "mouseleave",
22
- WHEEL: "wheel",
23
- SCROLL: "scroll",
24
- RESIZE: "resize",
25
- TOUCHSTART: "touchstart",
26
- TOUCHMOVE: "touchmove",
27
- TOUCHEND: "touchend",
28
- POINTERDOWN: "pointerdown",
29
- POINTERMOVE: "pointermove",
30
- POINTERUP: "pointerup"
31
- };
32
-
33
- exports.EVENT = EVENT;
34
- //# sourceMappingURL=Event.cjs.map
35
- //# sourceMappingURL=Event.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Event.ts"],"names":[],"mappings":";;;AAAO,IAAM,KAAA,GAAQ;AAAA,EACnB,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,WAAA;AAAA,EACX,SAAA,EAAW,WAAA;AAAA,EACX,UAAA,EAAY,YAAA;AAAA,EACZ,UAAA,EAAY,YAAA;AAAA,EACZ,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,UAAA,EAAY,YAAA;AAAA,EACZ,SAAA,EAAW,WAAA;AAAA,EACX,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,WAAA,EAAa,aAAA;AAAA,EACb,SAAA,EAAW;AACb","file":"Event.cjs","sourcesContent":["export const EVENT = {\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n CONTEXTMENU: 'contextmenu',\n KEYDOWN: 'keydown',\n KEYUP: 'keyup',\n KEYPRESS: 'keypress',\n INPUT: 'input',\n CHANGE: 'change',\n FOCUS: 'focus',\n BLUR: 'blur',\n SUBMIT: 'submit',\n RESET: 'reset',\n MOUSEUP: 'mouseup',\n MOUSEDOWN: 'mousedown',\n MOUSEMOVE: 'mousemove',\n MOUSEENTER: 'mouseenter',\n MOUSELEAVE: 'mouseleave',\n WHEEL: 'wheel',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n TOUCHSTART: 'touchstart',\n TOUCHMOVE: 'touchmove',\n TOUCHEND: 'touchend',\n POINTERDOWN: 'pointerdown',\n POINTERMOVE: 'pointermove',\n POINTERUP: 'pointerup',\n} as const;\n\nexport type EventName = (typeof EVENT)[keyof typeof EVENT];\n"]}
@@ -1,31 +0,0 @@
1
- declare const EVENT: {
2
- readonly CLICK: "click";
3
- readonly DBLCLICK: "dblclick";
4
- readonly CONTEXTMENU: "contextmenu";
5
- readonly KEYDOWN: "keydown";
6
- readonly KEYUP: "keyup";
7
- readonly KEYPRESS: "keypress";
8
- readonly INPUT: "input";
9
- readonly CHANGE: "change";
10
- readonly FOCUS: "focus";
11
- readonly BLUR: "blur";
12
- readonly SUBMIT: "submit";
13
- readonly RESET: "reset";
14
- readonly MOUSEUP: "mouseup";
15
- readonly MOUSEDOWN: "mousedown";
16
- readonly MOUSEMOVE: "mousemove";
17
- readonly MOUSEENTER: "mouseenter";
18
- readonly MOUSELEAVE: "mouseleave";
19
- readonly WHEEL: "wheel";
20
- readonly SCROLL: "scroll";
21
- readonly RESIZE: "resize";
22
- readonly TOUCHSTART: "touchstart";
23
- readonly TOUCHMOVE: "touchmove";
24
- readonly TOUCHEND: "touchend";
25
- readonly POINTERDOWN: "pointerdown";
26
- readonly POINTERMOVE: "pointermove";
27
- readonly POINTERUP: "pointerup";
28
- };
29
- type EventName = (typeof EVENT)[keyof typeof EVENT];
30
-
31
- export { EVENT, type EventName };
@@ -1,31 +0,0 @@
1
- declare const EVENT: {
2
- readonly CLICK: "click";
3
- readonly DBLCLICK: "dblclick";
4
- readonly CONTEXTMENU: "contextmenu";
5
- readonly KEYDOWN: "keydown";
6
- readonly KEYUP: "keyup";
7
- readonly KEYPRESS: "keypress";
8
- readonly INPUT: "input";
9
- readonly CHANGE: "change";
10
- readonly FOCUS: "focus";
11
- readonly BLUR: "blur";
12
- readonly SUBMIT: "submit";
13
- readonly RESET: "reset";
14
- readonly MOUSEUP: "mouseup";
15
- readonly MOUSEDOWN: "mousedown";
16
- readonly MOUSEMOVE: "mousemove";
17
- readonly MOUSEENTER: "mouseenter";
18
- readonly MOUSELEAVE: "mouseleave";
19
- readonly WHEEL: "wheel";
20
- readonly SCROLL: "scroll";
21
- readonly RESIZE: "resize";
22
- readonly TOUCHSTART: "touchstart";
23
- readonly TOUCHMOVE: "touchmove";
24
- readonly TOUCHEND: "touchend";
25
- readonly POINTERDOWN: "pointerdown";
26
- readonly POINTERMOVE: "pointermove";
27
- readonly POINTERUP: "pointerup";
28
- };
29
- type EventName = (typeof EVENT)[keyof typeof EVENT];
30
-
31
- export { EVENT, type EventName };
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Function.ts
4
- function functionIsType(value) {
5
- return typeof value === "function";
6
- }
7
-
8
- exports.functionIsType = functionIsType;
9
- //# sourceMappingURL=Function.cjs.map
10
- //# sourceMappingURL=Function.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Function.ts"],"names":[],"mappings":";;;AAAO,SAAS,eACd,KAAA,EACgC;AAChC,EAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AAC1B","file":"Function.cjs","sourcesContent":["export function functionIsType<TArgs extends unknown[] = unknown[], R = unknown>(\n value: unknown\n): value is (...args: TArgs) => R {\n return typeof value === 'function';\n}\n"]}
@@ -1,3 +0,0 @@
1
- declare function functionIsType<TArgs extends unknown[] = unknown[], R = unknown>(value: unknown): value is (...args: TArgs) => R;
2
-
3
- export { functionIsType };
@@ -1,3 +0,0 @@
1
- declare function functionIsType<TArgs extends unknown[] = unknown[], R = unknown>(value: unknown): value is (...args: TArgs) => R;
2
-
3
- export { functionIsType };
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/KeyCode.ts
4
- var KEY_CODE = {
5
- ESCAPE: "Escape"
6
- };
7
-
8
- exports.KEY_CODE = KEY_CODE;
9
- //# sourceMappingURL=KeyCode.cjs.map
10
- //# sourceMappingURL=KeyCode.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/KeyCode.ts"],"names":[],"mappings":";;;AAAO,IAAM,QAAA,GAAW;AAAA,EACtB,MAAA,EAAQ;AACV","file":"KeyCode.cjs","sourcesContent":["export const KEY_CODE = {\n ESCAPE: 'Escape',\n} as const;\n\nexport type KeyCode = (typeof KEY_CODE)[keyof typeof KEY_CODE];\n"]}
@@ -1,6 +0,0 @@
1
- declare const KEY_CODE: {
2
- readonly ESCAPE: "Escape";
3
- };
4
- type KeyCode = (typeof KEY_CODE)[keyof typeof KEY_CODE];
5
-
6
- export { KEY_CODE, type KeyCode };
@@ -1,6 +0,0 @@
1
- declare const KEY_CODE: {
2
- readonly ESCAPE: "Escape";
3
- };
4
- type KeyCode = (typeof KEY_CODE)[keyof typeof KEY_CODE];
5
-
6
- export { KEY_CODE, type KeyCode };
@@ -1,57 +0,0 @@
1
- 'use strict';
2
-
3
- // src/Helper/Location.ts
4
- var locationParamsHash = null;
5
- function locationParamReload() {
6
- locationParamsHash = new URLSearchParams(window.location.hash.slice(1));
7
- return locationParamsHash;
8
- }
9
- function locationHashParamGet(name, defaultValue = "") {
10
- const params = locationParamReload();
11
- const value = params.get(name);
12
- return value !== null ? value : defaultValue;
13
- }
14
- function locationHashParamSet(name, value, ignoreHistory = false) {
15
- const params = locationParamReload();
16
- params.set(name, value);
17
- const { pathname, search } = window.location;
18
- locationUpdate(`${pathname}${search}#${params.toString()}`, ignoreHistory);
19
- }
20
- function locationUpdate(href, ignoreHistory = false) {
21
- let nextHref = href;
22
- if (nextHref.endsWith("#")) {
23
- nextHref = nextHref.slice(0, -1);
24
- }
25
- const method = ignoreHistory ? "replaceState" : "pushState";
26
- window.history[method]({ manualState: true }, document.title, nextHref);
27
- }
28
- function locationDetectLanguageAndRedirect(config) {
29
- const userLanguage = (navigator.language || navigator?.userLanguage || "").toLowerCase();
30
- const currentPath = window.location.pathname;
31
- const redirectUrls = Object.values(config);
32
- const escaped = redirectUrls.map((url) => url.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
33
- const redirectPattern = new RegExp(`^(${escaped.join("|")})`);
34
- if (redirectPattern.test(currentPath)) {
35
- return;
36
- }
37
- let redirectUrl = config._default;
38
- for (const [lang, url] of Object.entries(config)) {
39
- if (lang === "_default") {
40
- continue;
41
- }
42
- if (userLanguage.startsWith(lang.toLowerCase())) {
43
- redirectUrl = url;
44
- break;
45
- }
46
- }
47
- const restOfPath = currentPath.replace(/^\//, "");
48
- window.location.href = `${redirectUrl}${restOfPath}`;
49
- }
50
-
51
- exports.locationDetectLanguageAndRedirect = locationDetectLanguageAndRedirect;
52
- exports.locationHashParamGet = locationHashParamGet;
53
- exports.locationHashParamSet = locationHashParamSet;
54
- exports.locationParamReload = locationParamReload;
55
- exports.locationUpdate = locationUpdate;
56
- //# sourceMappingURL=Location.cjs.map
57
- //# sourceMappingURL=Location.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Helper/Location.ts"],"names":[],"mappings":";;;AAAA,IAAI,kBAAA,GAA6C,IAAA;AAE1C,SAAS,mBAAA,GAAuC;AACrD,EAAA,kBAAA,GAAqB,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACtE,EAAA,OAAO,kBAAA;AACT;AAEO,SAAS,oBAAA,CAAqB,IAAA,EAAc,YAAA,GAAe,EAAA,EAAY;AAC5E,EAAA,MAAM,SAAS,mBAAA,EAAoB;AACnC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA;AAC7B,EAAA,OAAO,KAAA,KAAU,OAAO,KAAA,GAAQ,YAAA;AAClC;AAEO,SAAS,oBAAA,CAAqB,IAAA,EAAc,KAAA,EAAe,aAAA,GAAgB,KAAA,EAAa;AAC7F,EAAA,MAAM,SAAS,mBAAA,EAAoB;AACnC,EAAA,MAAA,CAAO,GAAA,CAAI,MAAM,KAAK,CAAA;AAEtB,EAAA,MAAM,EAAE,QAAA,EAAU,MAAA,EAAO,GAAI,MAAA,CAAO,QAAA;AACpC,EAAA,cAAA,CAAe,CAAA,EAAG,QAAQ,CAAA,EAAG,MAAM,IAAI,MAAA,CAAO,QAAA,EAAU,CAAA,CAAA,EAAI,aAAa,CAAA;AAC3E;AAEO,SAAS,cAAA,CAAe,IAAA,EAAc,aAAA,GAAgB,KAAA,EAAa;AACxE,EAAA,IAAI,QAAA,GAAW,IAAA;AAEf,EAAA,IAAI,QAAA,CAAS,QAAA,CAAS,GAAG,CAAA,EAAG;AAC1B,IAAA,QAAA,GAAW,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,EACjC;AAEA,EAAA,MAAM,MAAA,GAAuC,gBAAgB,cAAA,GAAiB,WAAA;AAC9E,EAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,EAAE,aAAa,IAAA,EAAK,EAAG,QAAA,CAAS,KAAA,EAAO,QAAQ,CAAA;AACxE;AAEO,SAAS,kCACd,MAAA,EACM;AACN,EAAA,MAAM,gBACJ,SAAA,CAAU,QAAA,IACT,SAAA,EAAoD,YAAA,IACrD,IACA,WAAA,EAAY;AACd,EAAA,MAAM,WAAA,GAAc,OAAO,QAAA,CAAS,QAAA;AAEpC,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AACzC,EAAA,MAAM,OAAA,GAAU,aAAa,GAAA,CAAI,CAAC,QAAQ,GAAA,CAAI,OAAA,CAAQ,qBAAA,EAAuB,MAAM,CAAC,CAAA;AACpF,EAAA,MAAM,eAAA,GAAkB,IAAI,MAAA,CAAO,CAAA,EAAA,EAAK,QAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAG,CAAA;AAE5D,EAAA,IAAI,eAAA,CAAgB,IAAA,CAAK,WAAW,CAAA,EAAG;AACrC,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,cAAc,MAAA,CAAO,QAAA;AAEzB,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,GAAG,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AAChD,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA;AAAA,IACF;AACA,IAAA,IAAI,YAAA,CAAa,UAAA,CAAW,IAAA,CAAK,WAAA,EAAa,CAAA,EAAG;AAC/C,MAAA,WAAA,GAAc,GAAA;AACd,MAAA;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,WAAA,CAAY,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChD,EAAA,MAAA,CAAO,QAAA,CAAS,IAAA,GAAO,CAAA,EAAG,WAAW,GAAG,UAAU,CAAA,CAAA;AACpD","file":"Location.cjs","sourcesContent":["let locationParamsHash: URLSearchParams | null = null;\n\nexport function locationParamReload(): URLSearchParams {\n locationParamsHash = new URLSearchParams(window.location.hash.slice(1));\n return locationParamsHash;\n}\n\nexport function locationHashParamGet(name: string, defaultValue = ''): string {\n const params = locationParamReload();\n const value = params.get(name);\n return value !== null ? value : defaultValue;\n}\n\nexport function locationHashParamSet(name: string, value: string, ignoreHistory = false): void {\n const params = locationParamReload();\n params.set(name, value);\n\n const { pathname, search } = window.location;\n locationUpdate(`${pathname}${search}#${params.toString()}`, ignoreHistory);\n}\n\nexport function locationUpdate(href: string, ignoreHistory = false): void {\n let nextHref = href;\n\n if (nextHref.endsWith('#')) {\n nextHref = nextHref.slice(0, -1);\n }\n\n const method: 'pushState' | 'replaceState' = ignoreHistory ? 'replaceState' : 'pushState';\n window.history[method]({ manualState: true }, document.title, nextHref);\n}\n\nexport function locationDetectLanguageAndRedirect(\n config: Record<string, string> & { _default: string }\n): void {\n const userLanguage = (\n navigator.language ||\n (navigator as unknown as { userLanguage?: string })?.userLanguage ||\n ''\n ).toLowerCase();\n const currentPath = window.location.pathname;\n\n const redirectUrls = Object.values(config);\n const escaped = redirectUrls.map((url) => url.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'));\n const redirectPattern = new RegExp(`^(${escaped.join('|')})`);\n\n if (redirectPattern.test(currentPath)) {\n return;\n }\n\n let redirectUrl = config._default;\n\n for (const [lang, url] of Object.entries(config)) {\n if (lang === '_default') {\n continue;\n }\n if (userLanguage.startsWith(lang.toLowerCase())) {\n redirectUrl = url;\n break;\n }\n }\n\n const restOfPath = currentPath.replace(/^\\//, '');\n window.location.href = `${redirectUrl}${restOfPath}`;\n}\n"]}
@@ -1,9 +0,0 @@
1
- declare function locationParamReload(): URLSearchParams;
2
- declare function locationHashParamGet(name: string, defaultValue?: string): string;
3
- declare function locationHashParamSet(name: string, value: string, ignoreHistory?: boolean): void;
4
- declare function locationUpdate(href: string, ignoreHistory?: boolean): void;
5
- declare function locationDetectLanguageAndRedirect(config: Record<string, string> & {
6
- _default: string;
7
- }): void;
8
-
9
- export { locationDetectLanguageAndRedirect, locationHashParamGet, locationHashParamSet, locationParamReload, locationUpdate };
@@ -1,9 +0,0 @@
1
- declare function locationParamReload(): URLSearchParams;
2
- declare function locationHashParamGet(name: string, defaultValue?: string): string;
3
- declare function locationHashParamSet(name: string, value: string, ignoreHistory?: boolean): void;
4
- declare function locationUpdate(href: string, ignoreHistory?: boolean): void;
5
- declare function locationDetectLanguageAndRedirect(config: Record<string, string> & {
6
- _default: string;
7
- }): void;
8
-
9
- export { locationDetectLanguageAndRedirect, locationHashParamGet, locationHashParamSet, locationParamReload, locationUpdate };