tool-shack 1.0.0 → 1.1.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.
Files changed (265) hide show
  1. package/README.md +97 -93
  2. package/dist/cjs/browser/getCookie.d.ts.map +1 -1
  3. package/dist/cjs/browser/getCookie.js +12 -2
  4. package/dist/cjs/browser/getCookie.js.map +1 -1
  5. package/dist/cjs/browser/getQueryParams.d.ts +1 -1
  6. package/dist/cjs/browser/getQueryParams.d.ts.map +1 -1
  7. package/dist/cjs/browser/getQueryParams.js +10 -15
  8. package/dist/cjs/browser/getQueryParams.js.map +1 -1
  9. package/dist/cjs/browser/index.d.ts +2 -0
  10. package/dist/cjs/browser/index.d.ts.map +1 -1
  11. package/dist/cjs/browser/index.js +33 -18
  12. package/dist/cjs/browser/index.js.map +1 -1
  13. package/dist/cjs/browser/interfaces/index.js +17 -4
  14. package/dist/cjs/browser/interfaces/index.js.map +1 -1
  15. package/dist/cjs/browser/isPageVisible.d.ts +10 -0
  16. package/dist/cjs/browser/isPageVisible.d.ts.map +1 -0
  17. package/dist/cjs/browser/isPageVisible.js +14 -0
  18. package/dist/cjs/browser/isPageVisible.js.map +1 -0
  19. package/dist/cjs/browser/isPushNotificationSupported.d.ts +5 -2
  20. package/dist/cjs/browser/isPushNotificationSupported.d.ts.map +1 -1
  21. package/dist/cjs/browser/isPushNotificationSupported.js +6 -3
  22. package/dist/cjs/browser/isPushNotificationSupported.js.map +1 -1
  23. package/dist/cjs/browser/isTabFocused.d.ts +2 -3
  24. package/dist/cjs/browser/isTabFocused.d.ts.map +1 -1
  25. package/dist/cjs/browser/isTabFocused.js +4 -5
  26. package/dist/cjs/browser/isTabFocused.js.map +1 -1
  27. package/dist/cjs/browser/pageVisibilityListener.d.ts +12 -0
  28. package/dist/cjs/browser/pageVisibilityListener.d.ts.map +1 -0
  29. package/dist/cjs/browser/pageVisibilityListener.js +30 -0
  30. package/dist/cjs/browser/pageVisibilityListener.js.map +1 -0
  31. package/dist/cjs/browser/preferColorScheme.d.ts +4 -2
  32. package/dist/cjs/browser/preferColorScheme.d.ts.map +1 -1
  33. package/dist/cjs/browser/preferColorScheme.js +4 -2
  34. package/dist/cjs/browser/preferColorScheme.js.map +1 -1
  35. package/dist/cjs/browser/tabFocusListener.d.ts +3 -6
  36. package/dist/cjs/browser/tabFocusListener.d.ts.map +1 -1
  37. package/dist/cjs/browser/tabFocusListener.js +4 -17
  38. package/dist/cjs/browser/tabFocusListener.js.map +1 -1
  39. package/dist/cjs/dateTime/dateAsIso.d.ts +5 -3
  40. package/dist/cjs/dateTime/dateAsIso.d.ts.map +1 -1
  41. package/dist/cjs/dateTime/dateAsIso.js +5 -3
  42. package/dist/cjs/dateTime/dateAsIso.js.map +1 -1
  43. package/dist/cjs/dateTime/index.js +19 -6
  44. package/dist/cjs/dateTime/index.js.map +1 -1
  45. package/dist/cjs/dateTime/interfaces/index.js +15 -2
  46. package/dist/cjs/dateTime/interfaces/index.js.map +1 -1
  47. package/dist/cjs/dom/addAsyncEventListener.d.ts +2 -2
  48. package/dist/cjs/dom/addAsyncEventListener.d.ts.map +1 -1
  49. package/dist/cjs/dom/addAsyncEventListener.js +25 -13
  50. package/dist/cjs/dom/addAsyncEventListener.js.map +1 -1
  51. package/dist/cjs/dom/addClickOutsideListener.d.ts +2 -2
  52. package/dist/cjs/dom/addClickOutsideListener.d.ts.map +1 -1
  53. package/dist/cjs/dom/addClickOutsideListener.js +8 -4
  54. package/dist/cjs/dom/addClickOutsideListener.js.map +1 -1
  55. package/dist/cjs/dom/addEventListener.d.ts +5 -3
  56. package/dist/cjs/dom/addEventListener.d.ts.map +1 -1
  57. package/dist/cjs/dom/addEventListener.js +5 -3
  58. package/dist/cjs/dom/addEventListener.js.map +1 -1
  59. package/dist/cjs/dom/copyToClipboard.d.ts.map +1 -1
  60. package/dist/cjs/dom/copyToClipboard.js +8 -5
  61. package/dist/cjs/dom/copyToClipboard.js.map +1 -1
  62. package/dist/cjs/dom/createElement.d.ts +6 -3
  63. package/dist/cjs/dom/createElement.d.ts.map +1 -1
  64. package/dist/cjs/dom/createElement.js +1 -1
  65. package/dist/cjs/dom/createElement.js.map +1 -1
  66. package/dist/cjs/dom/fireEvent.d.ts +4 -4
  67. package/dist/cjs/dom/fireEvent.js +4 -4
  68. package/dist/cjs/dom/index.d.ts +1 -0
  69. package/dist/cjs/dom/index.d.ts.map +1 -1
  70. package/dist/cjs/dom/index.js +29 -15
  71. package/dist/cjs/dom/index.js.map +1 -1
  72. package/dist/cjs/dom/interfaces/createElement.d.ts +1 -1
  73. package/dist/cjs/dom/interfaces/index.js +16 -3
  74. package/dist/cjs/dom/interfaces/index.js.map +1 -1
  75. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +1 -1
  76. package/dist/cjs/dom/toggleFullscreenWithFallback.js +45 -34
  77. package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +1 -1
  78. package/dist/cjs/dom/types/createElement.d.ts +3 -0
  79. package/dist/cjs/dom/types/createElement.d.ts.map +1 -0
  80. package/dist/cjs/dom/types/createElement.js +3 -0
  81. package/dist/cjs/dom/types/createElement.js.map +1 -0
  82. package/dist/cjs/dom/types/index.d.ts +3 -0
  83. package/dist/cjs/dom/types/index.d.ts.map +1 -0
  84. package/dist/cjs/dom/types/index.js +19 -0
  85. package/dist/cjs/dom/types/index.js.map +1 -0
  86. package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
  87. package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
  88. package/dist/cjs/dom/types/toggleFullscreenWithFallback.js +3 -0
  89. package/dist/cjs/dom/types/toggleFullscreenWithFallback.js.map +1 -0
  90. package/dist/cjs/general/chunk.d.ts +1 -1
  91. package/dist/cjs/general/chunk.js +1 -1
  92. package/dist/cjs/general/groupBy.js +1 -1
  93. package/dist/cjs/general/groupBy.js.map +1 -1
  94. package/dist/cjs/general/index.js +23 -10
  95. package/dist/cjs/general/index.js.map +1 -1
  96. package/dist/cjs/general/isEmpty.d.ts.map +1 -1
  97. package/dist/cjs/general/isEmpty.js +3 -0
  98. package/dist/cjs/general/isEmpty.js.map +1 -1
  99. package/dist/cjs/general/isEqual.d.ts +4 -2
  100. package/dist/cjs/general/isEqual.d.ts.map +1 -1
  101. package/dist/cjs/general/isEqual.js +4 -2
  102. package/dist/cjs/general/isEqual.js.map +1 -1
  103. package/dist/cjs/index.js +21 -8
  104. package/dist/cjs/index.js.map +1 -1
  105. package/dist/cjs/package.json +3 -0
  106. package/dist/cjs/schedule/debounce.d.ts +2 -2
  107. package/dist/cjs/schedule/debounce.d.ts.map +1 -1
  108. package/dist/cjs/schedule/debounce.js +1 -1
  109. package/dist/cjs/schedule/index.js +21 -8
  110. package/dist/cjs/schedule/index.js.map +1 -1
  111. package/dist/cjs/schedule/interfaces/debounce.d.ts +1 -1
  112. package/dist/cjs/schedule/interfaces/debounce.d.ts.map +1 -1
  113. package/dist/cjs/schedule/interfaces/index.js +18 -5
  114. package/dist/cjs/schedule/interfaces/index.js.map +1 -1
  115. package/dist/cjs/schedule/interfaces/throttle.d.ts +1 -1
  116. package/dist/cjs/schedule/interfaces/throttle.d.ts.map +1 -1
  117. package/dist/cjs/schedule/runAsync.d.ts +5 -3
  118. package/dist/cjs/schedule/runAsync.d.ts.map +1 -1
  119. package/dist/cjs/schedule/runAsync.js +5 -3
  120. package/dist/cjs/schedule/runAsync.js.map +1 -1
  121. package/dist/cjs/schedule/throttle.d.ts +2 -2
  122. package/dist/cjs/schedule/throttle.d.ts.map +1 -1
  123. package/dist/cjs/schedule/throttle.js +1 -1
  124. package/dist/cjs/storage/index.js +23 -10
  125. package/dist/cjs/storage/index.js.map +1 -1
  126. package/dist/cjs/storage/interfaces/index.js +15 -2
  127. package/dist/cjs/storage/interfaces/index.js.map +1 -1
  128. package/dist/cjs/storage/setLocalStorage.d.ts +1 -1
  129. package/dist/cjs/storage/setLocalStorage.d.ts.map +1 -1
  130. package/dist/cjs/storage/setLocalStorage.js +4 -1
  131. package/dist/cjs/storage/setLocalStorage.js.map +1 -1
  132. package/dist/cjs/storage/setSessionStorage.d.ts +1 -1
  133. package/dist/cjs/storage/setSessionStorage.d.ts.map +1 -1
  134. package/dist/cjs/storage/setSessionStorage.js +4 -1
  135. package/dist/cjs/storage/setSessionStorage.js.map +1 -1
  136. package/dist/cjs/string/escapeHTML.d.ts +5 -3
  137. package/dist/cjs/string/escapeHTML.d.ts.map +1 -1
  138. package/dist/cjs/string/escapeHTML.js +11 -8
  139. package/dist/cjs/string/escapeHTML.js.map +1 -1
  140. package/dist/cjs/string/index.js +32 -19
  141. package/dist/cjs/string/index.js.map +1 -1
  142. package/dist/cjs/string/interfaces/index.js +15 -2
  143. package/dist/cjs/string/interfaces/index.js.map +1 -1
  144. package/dist/cjs/string/slugify.js +2 -2
  145. package/dist/cjs/string/slugify.js.map +1 -1
  146. package/dist/esm/browser/getCookie.d.ts.map +1 -1
  147. package/dist/esm/browser/getCookie.js +12 -2
  148. package/dist/esm/browser/getCookie.js.map +1 -1
  149. package/dist/esm/browser/getQueryParams.d.ts +1 -1
  150. package/dist/esm/browser/getQueryParams.d.ts.map +1 -1
  151. package/dist/esm/browser/getQueryParams.js +10 -15
  152. package/dist/esm/browser/getQueryParams.js.map +1 -1
  153. package/dist/esm/browser/index.d.ts +2 -0
  154. package/dist/esm/browser/index.d.ts.map +1 -1
  155. package/dist/esm/browser/index.js +2 -0
  156. package/dist/esm/browser/index.js.map +1 -1
  157. package/dist/esm/browser/isPageVisible.d.ts +10 -0
  158. package/dist/esm/browser/isPageVisible.d.ts.map +1 -0
  159. package/dist/esm/browser/isPageVisible.js +10 -0
  160. package/dist/esm/browser/isPageVisible.js.map +1 -0
  161. package/dist/esm/browser/isPushNotificationSupported.d.ts +5 -2
  162. package/dist/esm/browser/isPushNotificationSupported.d.ts.map +1 -1
  163. package/dist/esm/browser/isPushNotificationSupported.js +6 -3
  164. package/dist/esm/browser/isPushNotificationSupported.js.map +1 -1
  165. package/dist/esm/browser/isTabFocused.d.ts +2 -3
  166. package/dist/esm/browser/isTabFocused.d.ts.map +1 -1
  167. package/dist/esm/browser/isTabFocused.js +4 -4
  168. package/dist/esm/browser/isTabFocused.js.map +1 -1
  169. package/dist/esm/browser/pageVisibilityListener.d.ts +12 -0
  170. package/dist/esm/browser/pageVisibilityListener.d.ts.map +1 -0
  171. package/dist/esm/browser/pageVisibilityListener.js +26 -0
  172. package/dist/esm/browser/pageVisibilityListener.js.map +1 -0
  173. package/dist/esm/browser/preferColorScheme.d.ts +4 -2
  174. package/dist/esm/browser/preferColorScheme.d.ts.map +1 -1
  175. package/dist/esm/browser/preferColorScheme.js +4 -2
  176. package/dist/esm/browser/preferColorScheme.js.map +1 -1
  177. package/dist/esm/browser/tabFocusListener.d.ts +3 -6
  178. package/dist/esm/browser/tabFocusListener.d.ts.map +1 -1
  179. package/dist/esm/browser/tabFocusListener.js +4 -16
  180. package/dist/esm/browser/tabFocusListener.js.map +1 -1
  181. package/dist/esm/dateTime/dateAsIso.d.ts +5 -3
  182. package/dist/esm/dateTime/dateAsIso.d.ts.map +1 -1
  183. package/dist/esm/dateTime/dateAsIso.js +5 -3
  184. package/dist/esm/dateTime/dateAsIso.js.map +1 -1
  185. package/dist/esm/dom/addAsyncEventListener.d.ts +2 -2
  186. package/dist/esm/dom/addAsyncEventListener.d.ts.map +1 -1
  187. package/dist/esm/dom/addAsyncEventListener.js +25 -13
  188. package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
  189. package/dist/esm/dom/addClickOutsideListener.d.ts +2 -2
  190. package/dist/esm/dom/addClickOutsideListener.d.ts.map +1 -1
  191. package/dist/esm/dom/addClickOutsideListener.js +8 -4
  192. package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
  193. package/dist/esm/dom/addEventListener.d.ts +5 -3
  194. package/dist/esm/dom/addEventListener.d.ts.map +1 -1
  195. package/dist/esm/dom/addEventListener.js +5 -3
  196. package/dist/esm/dom/addEventListener.js.map +1 -1
  197. package/dist/esm/dom/copyToClipboard.d.ts.map +1 -1
  198. package/dist/esm/dom/copyToClipboard.js +8 -5
  199. package/dist/esm/dom/copyToClipboard.js.map +1 -1
  200. package/dist/esm/dom/createElement.d.ts +6 -3
  201. package/dist/esm/dom/createElement.d.ts.map +1 -1
  202. package/dist/esm/dom/createElement.js +1 -1
  203. package/dist/esm/dom/createElement.js.map +1 -1
  204. package/dist/esm/dom/fireEvent.d.ts +4 -4
  205. package/dist/esm/dom/fireEvent.js +4 -4
  206. package/dist/esm/dom/index.d.ts +1 -0
  207. package/dist/esm/dom/index.d.ts.map +1 -1
  208. package/dist/esm/dom/index.js +1 -0
  209. package/dist/esm/dom/index.js.map +1 -1
  210. package/dist/esm/dom/interfaces/createElement.d.ts +1 -1
  211. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +1 -1
  212. package/dist/esm/dom/toggleFullscreenWithFallback.js +45 -34
  213. package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -1
  214. package/dist/esm/dom/types/createElement.d.ts +3 -0
  215. package/dist/esm/dom/types/createElement.d.ts.map +1 -0
  216. package/dist/esm/dom/types/createElement.js +2 -0
  217. package/dist/esm/dom/types/createElement.js.map +1 -0
  218. package/dist/esm/dom/types/index.d.ts +3 -0
  219. package/dist/esm/dom/types/index.d.ts.map +1 -0
  220. package/dist/esm/dom/types/index.js +3 -0
  221. package/dist/esm/dom/types/index.js.map +1 -0
  222. package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
  223. package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
  224. package/dist/esm/dom/types/toggleFullscreenWithFallback.js +2 -0
  225. package/dist/esm/dom/types/toggleFullscreenWithFallback.js.map +1 -0
  226. package/dist/esm/general/chunk.d.ts +1 -1
  227. package/dist/esm/general/chunk.js +1 -1
  228. package/dist/esm/general/groupBy.js +1 -1
  229. package/dist/esm/general/groupBy.js.map +1 -1
  230. package/dist/esm/general/isEmpty.d.ts.map +1 -1
  231. package/dist/esm/general/isEmpty.js +3 -0
  232. package/dist/esm/general/isEmpty.js.map +1 -1
  233. package/dist/esm/general/isEqual.d.ts +4 -2
  234. package/dist/esm/general/isEqual.d.ts.map +1 -1
  235. package/dist/esm/general/isEqual.js +4 -2
  236. package/dist/esm/general/isEqual.js.map +1 -1
  237. package/dist/esm/schedule/debounce.d.ts +2 -2
  238. package/dist/esm/schedule/debounce.d.ts.map +1 -1
  239. package/dist/esm/schedule/debounce.js +1 -1
  240. package/dist/esm/schedule/interfaces/debounce.d.ts +1 -1
  241. package/dist/esm/schedule/interfaces/debounce.d.ts.map +1 -1
  242. package/dist/esm/schedule/interfaces/throttle.d.ts +1 -1
  243. package/dist/esm/schedule/interfaces/throttle.d.ts.map +1 -1
  244. package/dist/esm/schedule/runAsync.d.ts +5 -3
  245. package/dist/esm/schedule/runAsync.d.ts.map +1 -1
  246. package/dist/esm/schedule/runAsync.js +5 -3
  247. package/dist/esm/schedule/runAsync.js.map +1 -1
  248. package/dist/esm/schedule/throttle.d.ts +2 -2
  249. package/dist/esm/schedule/throttle.d.ts.map +1 -1
  250. package/dist/esm/schedule/throttle.js +1 -1
  251. package/dist/esm/storage/setLocalStorage.d.ts +1 -1
  252. package/dist/esm/storage/setLocalStorage.d.ts.map +1 -1
  253. package/dist/esm/storage/setLocalStorage.js +4 -1
  254. package/dist/esm/storage/setLocalStorage.js.map +1 -1
  255. package/dist/esm/storage/setSessionStorage.d.ts +1 -1
  256. package/dist/esm/storage/setSessionStorage.d.ts.map +1 -1
  257. package/dist/esm/storage/setSessionStorage.js +4 -1
  258. package/dist/esm/storage/setSessionStorage.js.map +1 -1
  259. package/dist/esm/string/escapeHTML.d.ts +5 -3
  260. package/dist/esm/string/escapeHTML.d.ts.map +1 -1
  261. package/dist/esm/string/escapeHTML.js +11 -8
  262. package/dist/esm/string/escapeHTML.js.map +1 -1
  263. package/dist/esm/string/slugify.js +2 -2
  264. package/dist/esm/string/slugify.js.map +1 -1
  265. package/package.json +10 -9
@@ -1,3 +1,27 @@
1
+ const pseudoFullscreenState = new WeakMap();
2
+ const restorePseudoFullscreen = (element, state) => {
3
+ switch (state.mode) {
4
+ case 'class':
5
+ if (state.added) {
6
+ element.classList.remove(state.className);
7
+ }
8
+ break;
9
+ case 'style':
10
+ element.style.position = state.position;
11
+ element.style.top = state.top;
12
+ element.style.left = state.left;
13
+ element.style.width = state.width;
14
+ element.style.height = state.height;
15
+ element.style.zIndex = state.zIndex;
16
+ element.style.overflow = state.overflow;
17
+ break;
18
+ default: {
19
+ const _exhaustive = state;
20
+ throw new Error(`Unhandled pseudo-fullscreen state: ${_exhaustive}`);
21
+ }
22
+ }
23
+ pseudoFullscreenState.delete(element);
24
+ };
1
25
  /**
2
26
  * Toggle fullscreen mode with CSS pseudo-fullscreen fallback for unsupported environments (such as iOS Safari)
3
27
  *
@@ -16,44 +40,31 @@ export const toggleFullscreenWithFallback = async (element = document.documentEl
16
40
  await element.requestFullscreen();
17
41
  return true;
18
42
  }
19
- // Fallback: CSS pseudo-fullscreen
20
- const customClass = options?.className;
21
- const zIndex = options?.zIndex ?? 9999;
22
- const isPseudoActive = element.dataset.pseudoFullscreen === 'true';
23
- if (isPseudoActive) {
24
- if (customClass) {
25
- element.classList.remove(customClass);
26
- }
27
- else {
28
- element.style.position = element.dataset.prevPosition ?? '';
29
- element.style.top = element.dataset.prevTop ?? '';
30
- element.style.left = element.dataset.prevLeft ?? '';
31
- element.style.width = element.dataset.prevWidth ?? '';
32
- element.style.height = element.dataset.prevHeight ?? '';
33
- element.style.zIndex = element.dataset.prevZIndex ?? '';
34
- element.style.overflow = element.dataset.prevOverflow ?? '';
35
- delete element.dataset.prevPosition;
36
- delete element.dataset.prevTop;
37
- delete element.dataset.prevLeft;
38
- delete element.dataset.prevWidth;
39
- delete element.dataset.prevHeight;
40
- delete element.dataset.prevZIndex;
41
- delete element.dataset.prevOverflow;
42
- }
43
- delete element.dataset.pseudoFullscreen;
43
+ const existingState = pseudoFullscreenState.get(element);
44
+ if (existingState) {
45
+ restorePseudoFullscreen(element, existingState);
44
46
  return false;
45
47
  }
48
+ const customClass = options?.className;
49
+ const zIndex = options?.zIndex ?? 9999;
46
50
  if (customClass) {
47
- element.classList.add(customClass);
51
+ const added = !element.classList.contains(customClass);
52
+ if (added) {
53
+ element.classList.add(customClass);
54
+ }
55
+ pseudoFullscreenState.set(element, { mode: 'class', className: customClass, added });
48
56
  }
49
57
  else {
50
- element.dataset.prevPosition = element.style.position;
51
- element.dataset.prevTop = element.style.top;
52
- element.dataset.prevLeft = element.style.left;
53
- element.dataset.prevWidth = element.style.width;
54
- element.dataset.prevHeight = element.style.height;
55
- element.dataset.prevZIndex = element.style.zIndex;
56
- element.dataset.prevOverflow = element.style.overflow;
58
+ const styleState = {
59
+ mode: 'style',
60
+ position: element.style.position,
61
+ top: element.style.top,
62
+ left: element.style.left,
63
+ width: element.style.width,
64
+ height: element.style.height,
65
+ zIndex: element.style.zIndex,
66
+ overflow: element.style.overflow,
67
+ };
57
68
  element.style.position = 'fixed';
58
69
  element.style.top = '0';
59
70
  element.style.left = '0';
@@ -61,8 +72,8 @@ export const toggleFullscreenWithFallback = async (element = document.documentEl
61
72
  element.style.height = '100vh';
62
73
  element.style.zIndex = String(zIndex);
63
74
  element.style.overflow = 'auto';
75
+ pseudoFullscreenState.set(element, styleState);
64
76
  }
65
- element.dataset.pseudoFullscreen = 'true';
66
77
  return true;
67
78
  };
68
79
  //# sourceMappingURL=toggleFullscreenWithFallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggleFullscreenWithFallback.js","sourceRoot":"","sources":["../../../src/dom/toggleFullscreenWithFallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toggleFullscreenWithFallback.js","sourceRoot":"","sources":["../../../src/dom/toggleFullscreenWithFallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { IExtendingElementProps } from '../interfaces/createElement.js';
2
+ export type TCreateElementProps<T extends HTMLElement> = Partial<Omit<T, 'children' | 'dataset' | 'style'>> & IExtendingElementProps;
3
+ //# sourceMappingURL=createElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAC9D,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAC1C,GACC,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './createElement.js';
2
+ export * from './toggleFullscreenWithFallback.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './createElement.js';
2
+ export * from './toggleFullscreenWithFallback.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dom/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type TPseudoFullscreenState = {
2
+ mode: 'class';
3
+ className: string;
4
+ added: boolean;
5
+ } | {
6
+ mode: 'style';
7
+ position: string;
8
+ top: string;
9
+ left: string;
10
+ width: string;
11
+ height: string;
12
+ zIndex: string;
13
+ overflow: string;
14
+ };
15
+ //# sourceMappingURL=toggleFullscreenWithFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleFullscreenWithFallback.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/toggleFullscreenWithFallback.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toggleFullscreenWithFallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleFullscreenWithFallback.js","sourceRoot":"","sources":["../../../../src/dom/types/toggleFullscreenWithFallback.ts"],"names":[],"mappings":""}
@@ -2,7 +2,7 @@
2
2
  * Split array into chunks of specified size
3
3
  *
4
4
  * @param array Array to split
5
- * @param size Size of each chunk
5
+ * @param size Size of each chunk (default 1)
6
6
  * @returns Array of chunked arrays
7
7
  */
8
8
  export declare const chunk: <T>(array: T[], size?: number) => T[][];
@@ -2,7 +2,7 @@
2
2
  * Split array into chunks of specified size
3
3
  *
4
4
  * @param array Array to split
5
- * @param size Size of each chunk
5
+ * @param size Size of each chunk (default 1)
6
6
  * @returns Array of chunked arrays
7
7
  */
8
8
  export const chunk = (array, size = 1) => {
@@ -6,7 +6,7 @@
6
6
  * @returns Object grouped by keys
7
7
  */
8
8
  export const groupBy = (array, keyFn) => {
9
- const result = {};
9
+ const result = Object.create(null);
10
10
  array.forEach((item, index) => {
11
11
  const key = keyFn(item, index);
12
12
  if (!result[key]) {
@@ -1 +1 @@
1
- {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/general/groupBy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAU,EACV,KAAoC,EACpB,EAAE;IAClB,MAAM,MAAM,GAAG,EAAoB,CAAC;IAEpC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/general/groupBy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAU,EACV,KAAoC,EACpB,EAAE;IAClB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAmB,CAAC;IAErD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isEmpty.d.ts","sourceRoot":"","sources":["../../../src/general/isEmpty.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAgBxC,CAAC"}
1
+ {"version":3,"file":"isEmpty.d.ts","sourceRoot":"","sources":["../../../src/general/isEmpty.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAoBxC,CAAC"}
@@ -12,6 +12,9 @@ export const isEmpty = (value) => {
12
12
  if (value instanceof Map || value instanceof Set) {
13
13
  return value.size === 0;
14
14
  }
15
+ if (value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === null) {
16
+ return !Object.keys(value).length;
17
+ }
15
18
  return (isNil(value) ||
16
19
  (value instanceof Object &&
17
20
  !Object.keys(value).length &&
@@ -1 +1 @@
1
- {"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../../src/general/isEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE;IACjD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CACL,KAAK,CAAC,KAAK,CAAC;QACZ,CAAC,KAAK,YAAY,MAAM;YACtB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;YAC1B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;QACpD,CAAC,MAAM,CAAE,KAAoC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../../src/general/isEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE;IACjD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,OAAO,CACL,KAAK,CAAC,KAAK,CAAC;QACZ,CAAC,KAAK,YAAY,MAAM;YACtB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;YAC1B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;QACpD,CAAC,MAAM,CAAE,KAAoC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC;AACJ,CAAC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  /**
2
- * Perform deep structural comparison between two values
2
+ * Compare two values by `Object.is`, then Date time, RegExp `toString`, arrays, and own enumerable string keys
3
+ *
4
+ * Map, Set, cyclic objects, and symbol keys are not treated as a general deep-equality API.
3
5
  *
4
6
  * @param a First value to compare
5
7
  * @param b Second value to compare
6
- * @returns Boolean indicating whether two values are structurally equal
8
+ * @returns Whether the compared shapes are equal under those rules
7
9
  */
8
10
  export declare const isEqual: (a: unknown, b: unknown) => boolean;
9
11
  //# sourceMappingURL=isEqual.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isEqual.d.ts","sourceRoot":"","sources":["../../../src/general/isEqual.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OA2DhD,CAAC"}
1
+ {"version":3,"file":"isEqual.d.ts","sourceRoot":"","sources":["../../../src/general/isEqual.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OA2DhD,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { isNil } from './isNil.js';
2
2
  /**
3
- * Perform deep structural comparison between two values
3
+ * Compare two values by `Object.is`, then Date time, RegExp `toString`, arrays, and own enumerable string keys
4
+ *
5
+ * Map, Set, cyclic objects, and symbol keys are not treated as a general deep-equality API.
4
6
  *
5
7
  * @param a First value to compare
6
8
  * @param b Second value to compare
7
- * @returns Boolean indicating whether two values are structurally equal
9
+ * @returns Whether the compared shapes are equal under those rules
8
10
  */
9
11
  export const isEqual = (a, b) => {
10
12
  if (Object.is(a, b)) {
@@ -1 +1 @@
1
- {"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../src/general/isEqual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IACzD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,CAA4B,CAAC;QAC7C,MAAM,OAAO,GAAG,CAA4B,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../src/general/isEqual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IACzD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,CAA4B,CAAC;QAC7C,MAAM,OAAO,GAAG,CAA4B,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -3,8 +3,8 @@ import type { IDebouncedFunction } from './interfaces/debounce.js';
3
3
  * Creates a debounced function that delays invoking callback until after delay milliseconds
4
4
  *
5
5
  * @param callback Function to debounce
6
- * @param delay Milliseconds to delay
6
+ * @param delay Milliseconds to delay (default 300)
7
7
  * @returns Debounced function with cancel method
8
8
  */
9
- export declare const debounce: <T extends (...args: unknown[]) => unknown>(callback: T, delay?: number) => IDebouncedFunction<T>;
9
+ export declare const debounce: <T extends (...args: never[]) => unknown>(callback: T, delay?: number) => IDebouncedFunction<T>;
10
10
  //# sourceMappingURL=debounce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/schedule/debounce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAChE,UAAU,CAAC,EACX,cAAW,KACV,kBAAkB,CAAC,CAAC,CAsBtB,CAAC"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/schedule/debounce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAC9D,UAAU,CAAC,EACX,cAAW,KACV,kBAAkB,CAAC,CAAC,CAsBtB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Creates a debounced function that delays invoking callback until after delay milliseconds
3
3
  *
4
4
  * @param callback Function to debounce
5
- * @param delay Milliseconds to delay
5
+ * @param delay Milliseconds to delay (default 300)
6
6
  * @returns Debounced function with cancel method
7
7
  */
8
8
  export const debounce = (callback, delay = 300) => {
@@ -1,4 +1,4 @@
1
- export interface IDebouncedFunction<T extends (...args: unknown[]) => unknown> {
1
+ export interface IDebouncedFunction<T extends (...args: never[]) => unknown> {
2
2
  (...args: Parameters<T>): void;
3
3
  cancel: () => void;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../src/schedule/interfaces/debounce.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;IAC3E,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../src/schedule/interfaces/debounce.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO;IACzE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
@@ -1,4 +1,4 @@
1
- export interface IThrottledFunction<T extends (...args: unknown[]) => unknown> {
1
+ export interface IThrottledFunction<T extends (...args: never[]) => unknown> {
2
2
  (...args: Parameters<T>): void;
3
3
  cancel: () => void;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../../src/schedule/interfaces/throttle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;IAC3E,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../../src/schedule/interfaces/throttle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO;IACzE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Run function in asynchronously in Worker
2
+ * Run a function in a Web Worker by serializing its source into a Blob URL
3
3
  *
4
- * @param workerFunction Function to be run asynchronously in a worker
5
- * @returns Promise of expected result
4
+ * Closures, imports, and `this` are not available. Async callbacks are not awaited before `postMessage`.
5
+ *
6
+ * @param workerFunction Function whose source is run in the worker
7
+ * @returns Promise of the posted result
6
8
  */
7
9
  export declare const runAsync: <T>(workerFunction: () => T | Promise<T>) => Promise<T>;
8
10
  //# sourceMappingURL=runAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runAsync.d.ts","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,gBAAgB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAc3E,CAAC"}
1
+ {"version":3,"file":"runAsync.d.ts","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,gBAAgB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAc3E,CAAC"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Run function in asynchronously in Worker
2
+ * Run a function in a Web Worker by serializing its source into a Blob URL
3
3
  *
4
- * @param workerFunction Function to be run asynchronously in a worker
5
- * @returns Promise of expected result
4
+ * Closures, imports, and `this` are not available. Async callbacks are not awaited before `postMessage`.
5
+ *
6
+ * @param workerFunction Function whose source is run in the worker
7
+ * @returns Promise of the posted result
6
8
  */
7
9
  export const runAsync = (workerFunction) => {
8
10
  const worker = new Worker(URL.createObjectURL(new Blob([`postMessage((${workerFunction})());`])));
@@ -1 +1 @@
1
- {"version":3,"file":"runAsync.js","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,cAAoC,EAAc,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,gBAAgB,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAElG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAmB,EAAE,EAAE;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"runAsync.js","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,cAAoC,EAAc,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,gBAAgB,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAElG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAmB,EAAE,EAAE;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -3,8 +3,8 @@ import type { IThrottledFunction } from './interfaces/throttle.js';
3
3
  * Creates a throttled function that only invokes callback at most once per every limit milliseconds
4
4
  *
5
5
  * @param callback Function to throttle
6
- * @param limit Milliseconds to limit invocations
6
+ * @param limit Milliseconds to limit invocations (default 300)
7
7
  * @returns Throttled function with cancel method
8
8
  */
9
- export declare const throttle: <T extends (...args: unknown[]) => unknown>(callback: T, limit?: number) => IThrottledFunction<T>;
9
+ export declare const throttle: <T extends (...args: never[]) => unknown>(callback: T, limit?: number) => IThrottledFunction<T>;
10
10
  //# sourceMappingURL=throttle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/schedule/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAChE,UAAU,CAAC,EACX,cAAW,KACV,kBAAkB,CAAC,CAAC,CA6BtB,CAAC"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/schedule/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAC9D,UAAU,CAAC,EACX,cAAW,KACV,kBAAkB,CAAC,CAAC,CA6BtB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Creates a throttled function that only invokes callback at most once per every limit milliseconds
3
3
  *
4
4
  * @param callback Function to throttle
5
- * @param limit Milliseconds to limit invocations
5
+ * @param limit Milliseconds to limit invocations (default 300)
6
6
  * @returns Throttled function with cancel method
7
7
  */
8
8
  export const throttle = (callback, limit = 300) => {
@@ -5,7 +5,7 @@ import type { IStorageOptions } from './interfaces/storage.js';
5
5
  * @param key Storage key
6
6
  * @param value Value to store
7
7
  * @param options Storage options including optional Base64 encoding
8
- * @returns Boolean indicating whether operation succeeded
8
+ * @returns Whether a JSON-serializable payload was stored
9
9
  */
10
10
  export declare const setLocalStorage: <T>(key: string, value: T, options?: IStorageOptions) => boolean;
11
11
  //# sourceMappingURL=setLocalStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setLocalStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAYrF,CAAC"}
1
+ {"version":3,"file":"setLocalStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAerF,CAAC"}
@@ -5,7 +5,7 @@ import { encodeBase64 } from '../string/index.js';
5
5
  * @param key Storage key
6
6
  * @param value Value to store
7
7
  * @param options Storage options including optional Base64 encoding
8
- * @returns Boolean indicating whether operation succeeded
8
+ * @returns Whether a JSON-serializable payload was stored
9
9
  */
10
10
  export const setLocalStorage = (key, value, options) => {
11
11
  try {
@@ -13,6 +13,9 @@ export const setLocalStorage = (key, value, options) => {
13
13
  return false;
14
14
  }
15
15
  const json = JSON.stringify(value);
16
+ if (json === undefined) {
17
+ return false;
18
+ }
16
19
  const payload = options?.encode ? encodeBase64(json) : json;
17
20
  localStorage.setItem(key, payload);
18
21
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"setLocalStorage.js","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAC9F,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"setLocalStorage.js","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAC9F,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
@@ -5,7 +5,7 @@ import type { IStorageOptions } from './interfaces/storage.js';
5
5
  * @param key Storage key
6
6
  * @param value Value to store
7
7
  * @param options Storage options including optional Base64 encoding
8
- * @returns Boolean indicating whether operation succeeded
8
+ * @returns Whether a JSON-serializable payload was stored
9
9
  */
10
10
  export declare const setSessionStorage: <T>(key: string, value: T, options?: IStorageOptions) => boolean;
11
11
  //# sourceMappingURL=setSessionStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setSessionStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAYvF,CAAC"}
1
+ {"version":3,"file":"setSessionStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAevF,CAAC"}
@@ -5,7 +5,7 @@ import { encodeBase64 } from '../string/index.js';
5
5
  * @param key Storage key
6
6
  * @param value Value to store
7
7
  * @param options Storage options including optional Base64 encoding
8
- * @returns Boolean indicating whether operation succeeded
8
+ * @returns Whether a JSON-serializable payload was stored
9
9
  */
10
10
  export const setSessionStorage = (key, value, options) => {
11
11
  try {
@@ -13,6 +13,9 @@ export const setSessionStorage = (key, value, options) => {
13
13
  return false;
14
14
  }
15
15
  const json = JSON.stringify(value);
16
+ if (json === undefined) {
17
+ return false;
18
+ }
16
19
  const payload = options?.encode ? encodeBase64(json) : json;
17
20
  sessionStorage.setItem(key, payload);
18
21
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"setSessionStorage.js","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAChG,IAAI,CAAC;QACH,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"setSessionStorage.js","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAChG,IAAI,CAAC;QACH,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Escape special HTML related characters from string
2
+ * Encode `&`, `<`, `>`, `"`, and `'` as HTML entities for ordinary text content or quoted attributes.
3
3
  *
4
- * @param html String containing HTML related characters
5
- * @returns Safe string with escaped HTML related characters
4
+ * This is not an HTML sanitizer and is not safe for script, style, URL, or unquoted-attribute contexts.
5
+ *
6
+ * @param html String that may contain HTML-significant characters
7
+ * @returns String with `&`, `<`, `>`, `"`, and `'` replaced by HTML entities
6
8
  */
7
9
  export declare const escapeHTML: (html: string) => string;
8
10
  //# sourceMappingURL=escapeHTML.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escapeHTML.d.ts","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKzC,CAAC"}
1
+ {"version":3,"file":"escapeHTML.d.ts","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAMf,CAAC"}
@@ -1,12 +1,15 @@
1
1
  /**
2
- * Escape special HTML related characters from string
2
+ * Encode `&`, `<`, `>`, `"`, and `'` as HTML entities for ordinary text content or quoted attributes.
3
3
  *
4
- * @param html String containing HTML related characters
5
- * @returns Safe string with escaped HTML related characters
4
+ * This is not an HTML sanitizer and is not safe for script, style, URL, or unquoted-attribute contexts.
5
+ *
6
+ * @param html String that may contain HTML-significant characters
7
+ * @returns String with `&`, `<`, `>`, `"`, and `'` replaced by HTML entities
6
8
  */
7
- export const escapeHTML = (html) => {
8
- const tempDiv = document.createElement('div');
9
- tempDiv.innerText = html;
10
- return tempDiv.innerHTML;
11
- };
9
+ export const escapeHTML = (html) => html
10
+ .replace(/&/g, '&amp;')
11
+ .replace(/</g, '&lt;')
12
+ .replace(/>/g, '&gt;')
13
+ .replace(/"/g, '&quot;')
14
+ .replace(/'/g, '&#39;');
12
15
  //# sourceMappingURL=escapeHTML.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"escapeHTML.js","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAEzB,OAAO,OAAO,CAAC,SAAS,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"escapeHTML.js","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI;KACD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;KACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;KACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC"}
@@ -8,8 +8,8 @@ import { removeDiacritics } from './removeDiacritics.js';
8
8
  */
9
9
  export const slugify = (value, separator = '-') => {
10
10
  separator = separator.trim().substring(0, 1) || '-';
11
- const removeCharsRegex = new RegExp(`[^\\w\\s${separator}]`, 'g');
12
- const escapedSeparator = separator.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
11
+ const escapedSeparator = separator.replace(/[.*+?^${}()|[\]\\-]/g, '\\$&');
12
+ const removeCharsRegex = new RegExp(`[^\\w\\s${escapedSeparator}]`, 'g');
13
13
  const multipleSeparatorsRegex = new RegExp(`${escapedSeparator}+`, 'g');
14
14
  const trimSeparatorsRegex = new RegExp(`^${escapedSeparator}+|${escapedSeparator}+$`, 'g');
15
15
  return removeDiacritics(value.trim().toLowerCase())
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../src/string/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAChE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,WAAW,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,gBAAgB,KAAK,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC;IAE3F,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChD,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;SAC1B,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC;SAC3C,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../src/string/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAChE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;IACpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,WAAW,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IACzE,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,gBAAgB,KAAK,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC;IAE3F,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChD,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;SAC1B,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC;SAC3C,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC"}