@untemps/utils 2.6.0 → 3.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 (132) hide show
  1. package/README.md +23 -0
  2. package/dist/array/extractByIndices.cjs +1 -0
  3. package/dist/array/extractByIndices.d.ts +18 -0
  4. package/dist/array/extractByIndices.d.ts.map +1 -0
  5. package/dist/array/extractByIndices.js +4 -0
  6. package/dist/async/standby.cjs +1 -0
  7. package/dist/async/standby.d.ts +20 -0
  8. package/dist/async/standby.d.ts.map +1 -0
  9. package/dist/async/standby.js +4 -0
  10. package/dist/dom/createElement.cjs +1 -0
  11. package/dist/dom/createElement.d.ts +52 -0
  12. package/dist/dom/createElement.d.ts.map +1 -0
  13. package/dist/dom/createElement.js +10 -0
  14. package/dist/dom/doElementsOverlap.cjs +1 -0
  15. package/dist/dom/doElementsOverlap.d.ts +29 -0
  16. package/dist/dom/doElementsOverlap.d.ts.map +1 -0
  17. package/dist/dom/doElementsOverlap.js +7 -0
  18. package/dist/dom/getCSSDeclaration.cjs +1 -0
  19. package/dist/dom/getCSSDeclaration.d.ts +22 -0
  20. package/dist/dom/getCSSDeclaration.d.ts.map +1 -0
  21. package/dist/dom/getCSSDeclaration.js +10 -0
  22. package/dist/dom/getElement.cjs +1 -0
  23. package/dist/dom/getElement.d.ts +19 -0
  24. package/dist/dom/getElement.d.ts.map +1 -0
  25. package/dist/dom/getElement.js +4 -0
  26. package/dist/dom/isElement.cjs +1 -0
  27. package/dist/dom/isElement.d.ts +16 -0
  28. package/dist/dom/isElement.d.ts.map +1 -0
  29. package/dist/dom/isElement.js +4 -0
  30. package/dist/dom/modifyElement.cjs +1 -0
  31. package/dist/dom/modifyElement.d.ts +20 -0
  32. package/dist/dom/modifyElement.d.ts.map +1 -0
  33. package/dist/dom/modifyElement.js +9 -0
  34. package/dist/dom/removeElement.cjs +1 -0
  35. package/dist/dom/removeElement.d.ts +19 -0
  36. package/dist/dom/removeElement.d.ts.map +1 -0
  37. package/dist/dom/removeElement.js +8 -0
  38. package/dist/dom/resolveClassName.cjs +1 -0
  39. package/dist/dom/resolveClassName.d.ts +22 -0
  40. package/dist/dom/resolveClassName.d.ts.map +1 -0
  41. package/dist/dom/resolveClassName.js +11 -0
  42. package/dist/function/isFunction.cjs +1 -0
  43. package/dist/function/isFunction.d.ts +16 -0
  44. package/dist/function/isFunction.d.ts.map +1 -0
  45. package/dist/function/isFunction.js +4 -0
  46. package/dist/index.cjs +1 -0
  47. package/dist/index.d.ts +26 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +22 -0
  50. package/dist/lang/isNil.cjs +1 -0
  51. package/dist/lang/isNil.d.ts +16 -0
  52. package/dist/lang/isNil.d.ts.map +1 -0
  53. package/dist/lang/isNil.js +4 -0
  54. package/dist/number/getRandomInteger.cjs +1 -0
  55. package/dist/number/getRandomInteger.d.ts +18 -0
  56. package/dist/number/getRandomInteger.d.ts.map +1 -0
  57. package/dist/number/getRandomInteger.js +8 -0
  58. package/dist/number/normalizeMinMax.cjs +1 -0
  59. package/dist/number/normalizeMinMax.d.ts +21 -0
  60. package/dist/number/normalizeMinMax.d.ts.map +1 -0
  61. package/dist/number/normalizeMinMax.js +7 -0
  62. package/dist/object/deepMerge.cjs +1 -0
  63. package/dist/object/deepMerge.d.ts +18 -0
  64. package/dist/object/deepMerge.d.ts.map +1 -0
  65. package/dist/object/deepMerge.js +8 -0
  66. package/dist/object/isObject.cjs +1 -0
  67. package/dist/object/isObject.d.ts +16 -0
  68. package/dist/object/isObject.d.ts.map +1 -0
  69. package/dist/object/isObject.js +4 -0
  70. package/dist/string/generateText.cjs +1 -0
  71. package/dist/string/generateText.d.ts +29 -0
  72. package/dist/string/generateText.d.ts.map +1 -0
  73. package/dist/string/generateText.js +19 -0
  74. package/dist/string/generateTokenizedText.cjs +1 -0
  75. package/dist/string/generateTokenizedText.d.ts +38 -0
  76. package/dist/string/generateTokenizedText.d.ts.map +1 -0
  77. package/dist/string/generateTokenizedText.js +19 -0
  78. package/dist/string/interpolate.cjs +1 -0
  79. package/dist/string/interpolate.d.ts +24 -0
  80. package/dist/string/interpolate.d.ts.map +1 -0
  81. package/dist/string/interpolate.js +11 -0
  82. package/dist/string/interpolateLiteral.cjs +1 -0
  83. package/dist/string/interpolateLiteral.d.ts +22 -0
  84. package/dist/string/interpolateLiteral.d.ts.map +1 -0
  85. package/dist/string/interpolateLiteral.js +4 -0
  86. package/dist/string/isString.cjs +1 -0
  87. package/dist/string/isString.d.ts +16 -0
  88. package/dist/string/isString.d.ts.map +1 -0
  89. package/dist/string/isString.js +4 -0
  90. package/package.json +36 -56
  91. package/dist/cjs/array/extractByIndices.js +0 -1
  92. package/dist/cjs/async/standby.js +0 -1
  93. package/dist/cjs/dom/createElement.js +0 -1
  94. package/dist/cjs/dom/doElementsOverlap.js +0 -1
  95. package/dist/cjs/dom/getCSSDeclaration.js +0 -1
  96. package/dist/cjs/dom/getElement.js +0 -1
  97. package/dist/cjs/dom/isElement.js +0 -1
  98. package/dist/cjs/dom/modifyElement.js +0 -1
  99. package/dist/cjs/dom/removeElement.js +0 -1
  100. package/dist/cjs/dom/resolveClassName.js +0 -1
  101. package/dist/cjs/function/isFunction.js +0 -1
  102. package/dist/cjs/lang/isNil.js +0 -1
  103. package/dist/cjs/number/getRandomInteger.js +0 -1
  104. package/dist/cjs/number/normalizeMinMax.js +0 -1
  105. package/dist/cjs/object/deepMerge.js +0 -1
  106. package/dist/cjs/object/isObject.js +0 -1
  107. package/dist/cjs/string/generateText.js +0 -1
  108. package/dist/cjs/string/generateTokenizedText.js +0 -1
  109. package/dist/cjs/string/interpolate.js +0 -1
  110. package/dist/cjs/string/interpolateLiteral.js +0 -1
  111. package/dist/cjs/string/isString.js +0 -1
  112. package/dist/esm/array/extractByIndices.js +0 -1
  113. package/dist/esm/async/standby.js +0 -1
  114. package/dist/esm/dom/createElement.js +0 -1
  115. package/dist/esm/dom/doElementsOverlap.js +0 -1
  116. package/dist/esm/dom/getCSSDeclaration.js +0 -1
  117. package/dist/esm/dom/getElement.js +0 -1
  118. package/dist/esm/dom/isElement.js +0 -1
  119. package/dist/esm/dom/modifyElement.js +0 -1
  120. package/dist/esm/dom/removeElement.js +0 -1
  121. package/dist/esm/dom/resolveClassName.js +0 -1
  122. package/dist/esm/function/isFunction.js +0 -1
  123. package/dist/esm/lang/isNil.js +0 -1
  124. package/dist/esm/number/getRandomInteger.js +0 -1
  125. package/dist/esm/number/normalizeMinMax.js +0 -1
  126. package/dist/esm/object/deepMerge.js +0 -1
  127. package/dist/esm/object/isObject.js +0 -1
  128. package/dist/esm/string/generateText.js +0 -1
  129. package/dist/esm/string/generateTokenizedText.js +0 -1
  130. package/dist/esm/string/interpolate.js +0 -1
  131. package/dist/esm/string/interpolateLiteral.js +0 -1
  132. package/dist/esm/string/isString.js +0 -1
package/README.md CHANGED
@@ -16,4 +16,27 @@ A complete documentation of utils is available here: [Docs](https://utils.untemp
16
16
 
17
17
  ```bash
18
18
  yarn add @untemps/utils
19
+ ```
20
+
21
+ This package ships with full TypeScript declarations. No additional `@types/*` package needed.
22
+
23
+ ## Usage
24
+
25
+ ### ESM / TypeScript
26
+
27
+ ```ts
28
+ import { isNil, interpolate, createElement } from '@untemps/utils'
29
+ ```
30
+
31
+ ### Per-module (tree-shakeable)
32
+
33
+ ```ts
34
+ import { isNil } from '@untemps/utils/lang/isNil'
35
+ import { interpolate } from '@untemps/utils/string/interpolate'
36
+ ```
37
+
38
+ ### CommonJS
39
+
40
+ ```js
41
+ const { isNil } = require('@untemps/utils')
19
42
  ```
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>e?.filter((e,n)=>t?.includes(n))??[];exports.extractByIndices=e;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @module array/extractByIndices
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { extractByIndices } from '@untemps/utils/array/extractByIndices'
8
+ *
9
+ * const source = ['foo', 'bar', 'gag', 'pol', 'zux']
10
+ * const indices = [1, 3]
11
+ * extractByIndices(source, indices) // ['bar', 'pol']
12
+ *
13
+ * @param source - The source array from which extract the values.
14
+ * @param indices - An array of indices.
15
+ * @returns A new array containing the values at the specified indices only.
16
+ */
17
+ export declare const extractByIndices: <T>(source?: T[], indices?: number[]) => T[];
18
+ //# sourceMappingURL=extractByIndices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractByIndices.d.ts","sourceRoot":"","sources":["../../src/array/extractByIndices.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,MAAM,EAAE,KAAG,CAAC,EACnB,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/array/extractByIndices.ts
2
+ var e = (e, t) => e?.filter((e, n) => t?.includes(n)) ?? [];
3
+ //#endregion
4
+ export { e as extractByIndices };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e=128)=>new Promise(t=>setTimeout(t,e));exports.standby=e;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module async/standby
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { standby } from '@untemps/utils/async/standby'
8
+ *
9
+ * const fn = async () => {
10
+ * console.log("Start delay")
11
+ * await standby(3000)
12
+ * console.log("End delay")
13
+ * }
14
+ * fn()
15
+ *
16
+ * @param timeout - The delay before resolving the promise (in milliseconds).
17
+ * @returns The promise to be resolved.
18
+ */
19
+ export declare const standby: (timeout?: number) => Promise<void>;
20
+ //# sourceMappingURL=standby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standby.d.ts","sourceRoot":"","sources":["../../src/async/standby.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,GAAI,gBAAa,KAAG,OAAO,CAAC,IAAI,CAA2D,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/async/standby.ts
2
+ var e = (e = 128) => new Promise((t) => setTimeout(t, e));
3
+ //#endregion
4
+ export { e as standby };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({tag:e=`div`,attributes:t={},content:n=null,textContent:r=null,parent:i=null,parentSelector:a=null,boundingClientRect:o=null}={})=>{let s=document.createElement(e);for(let e in t)s.setAttribute(e,t[e]);n&&s.appendChild(n),r&&!s.hasChildNodes()&&s.appendChild(document.createTextNode(r));let c=i||document.querySelector(a);return c&&c.appendChild(s),o&&(s.getBoundingClientRect=()=>o),s};exports.createElement=e;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @module dom/createElement
3
+ */
4
+ /**
5
+ * Partial bounding rect used to mock getBoundingClientRect in jsdom environments.
6
+ */
7
+ export interface BoundingClientRectInit {
8
+ x?: number;
9
+ y?: number;
10
+ left?: number;
11
+ right?: number;
12
+ top?: number;
13
+ bottom?: number;
14
+ width?: number;
15
+ height?: number;
16
+ }
17
+ /**
18
+ * Configuration object for createElement.
19
+ */
20
+ export interface CreateElementConfig {
21
+ /** The tag name of the new DOM element to create. All valid HTML tags are accepted. */
22
+ tag?: string;
23
+ /** The attributes to pass to the new DOM element. */
24
+ attributes?: Record<string, string> | null;
25
+ /** A DOM element to append as child. Has precedence over textContent. */
26
+ content?: HTMLElement | null;
27
+ /** A text to append as child of the new DOM element. */
28
+ textContent?: string | null;
29
+ /** A DOM element to which append the new DOM element. Has precedence over parentSelector. */
30
+ parent?: HTMLElement | null;
31
+ /** A selector of a DOM element to which append the new DOM element. */
32
+ parentSelector?: string | null;
33
+ /** The values returned by getBoundingClientRect. Useful in jsdom environment. */
34
+ boundingClientRect?: BoundingClientRectInit | null;
35
+ }
36
+ /**
37
+ * @function
38
+ * @example
39
+ * import { createElement } from '@untemps/utils/dom/createElement'
40
+ *
41
+ * createElement({
42
+ * tag: 'p',
43
+ * attributes: { id: 'foo', style: 'font-weight: bold' },
44
+ * textContent: 'Foo',
45
+ * parentSelector: 'body'
46
+ * }) // <p id="foo" style="font-weight: bold">Foo</p>
47
+ *
48
+ * @param config - The configuration object for the new DOM element.
49
+ * @returns The new DOM element.
50
+ */
51
+ export declare const createElement: ({ tag, attributes, content, textContent, parent, parentSelector, boundingClientRect, }?: CreateElementConfig) => HTMLElement;
52
+ //# sourceMappingURL=createElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1C,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,yFAQ3B,mBAAwB,KAAG,WAmB7B,CAAA"}
@@ -0,0 +1,10 @@
1
+ //#region src/dom/createElement.ts
2
+ var e = ({ tag: e = "div", attributes: t = {}, content: n = null, textContent: r = null, parent: i = null, parentSelector: a = null, boundingClientRect: o = null } = {}) => {
3
+ let s = document.createElement(e);
4
+ for (let e in t) s.setAttribute(e, t[e]);
5
+ n && s.appendChild(n), r && !s.hasChildNodes() && s.appendChild(document.createTextNode(r));
6
+ let c = i || document.querySelector(a);
7
+ return c && c.appendChild(s), o && (s.getBoundingClientRect = () => o), s;
8
+ };
9
+ //#endregion
10
+ export { e as createElement };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let{left:n,right:r,top:i,bottom:a}=e.getBoundingClientRect(),{left:o,right:s,top:c,bottom:l}=t.getBoundingClientRect();return!(i>l||r<o||a<c||n>s)};exports.doElementsOverlap=e;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module dom/doElementsOverlap
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { doElementsOverlap } from '@untemps/utils/dom/doElementsOverlap'
8
+ *
9
+ * const element1 = document.createElement('div')
10
+ * element1.style = 'width: 140px; height: 140px; position: absolute; background-color: red;'
11
+ * document.body.appendChild(element1)
12
+ *
13
+ * const element2 = document.createElement('div')
14
+ * element2.style = 'width: 130px; height: 130px; position: absolute; background-color: green;'
15
+ * document.body.appendChild(element2)
16
+ *
17
+ * const element3 = document.createElement('div')
18
+ * element3.style = 'width: 130px; height: 130px; left: 250px; top: 250px; position: absolute; background-color: blue;'
19
+ * document.body.appendChild(element3)
20
+ *
21
+ * doElementsOverlap(element1, element2) // true
22
+ * doElementsOverlap(element1, element3) // false
23
+ *
24
+ * @param element1 - The first DOM element to compare.
25
+ * @param element2 - The second DOM element to compare.
26
+ * @returns `true` if the two DOM elements overlap.
27
+ */
28
+ export declare const doElementsOverlap: (element1: Element, element2: Element) => boolean;
29
+ //# sourceMappingURL=doElementsOverlap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doElementsOverlap.d.ts","sourceRoot":"","sources":["../../src/dom/doElementsOverlap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,OAAO,EAAE,UAAU,OAAO,KAAG,OAIxE,CAAA"}
@@ -0,0 +1,7 @@
1
+ //#region src/dom/doElementsOverlap.ts
2
+ var e = (e, t) => {
3
+ let { left: n, right: r, top: i, bottom: a } = e.getBoundingClientRect(), { left: o, right: s, top: c, bottom: l } = t.getBoundingClientRect();
4
+ return !(i > l || r < o || a < c || n > s);
5
+ };
6
+ //#endregion
7
+ export { e as doElementsOverlap };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t=!1)=>{if(e&&(e=e.startsWith(`.`)?e:`.${e}`,document.styleSheets?.length))for(let n of document.styleSheets)for(let r of n.cssRules){let n=r;if(n.selectorText===e&&n.style)return t?n.style.cssText:n.style}return null};exports.getCSSDeclaration=e;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module dom/getCSSDeclaration
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { getCSSDeclaration } from '@untemps/utils/dom/getCSSDeclaration'
8
+ *
9
+ * const styleElement = document.createElement('style')
10
+ * styleElement.textContent = '.drag { background-color: black; }'
11
+ * document.head.appendChild(styleElement)
12
+ *
13
+ * const className = '.drag'
14
+ * const returnText = true
15
+ * getCSSDeclaration(className, returnText) // background-color: black;
16
+ *
17
+ * @param className - The name of the CSS declaration to return. You may ignore the starting dot.
18
+ * @param returnText - `true` to get a string representation of the CSS declaration.
19
+ * @returns The CSS declaration or null if the CSS declaration is not found.
20
+ */
21
+ export declare const getCSSDeclaration: (className: string, returnText?: boolean) => CSSStyleDeclaration | string | null;
22
+ //# sourceMappingURL=getCSSDeclaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCSSDeclaration.d.ts","sourceRoot":"","sources":["../../src/dom/getCSSDeclaration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,EAAE,oBAAkB,KAAG,mBAAmB,GAAG,MAAM,GAAG,IAexG,CAAA"}
@@ -0,0 +1,10 @@
1
+ //#region src/dom/getCSSDeclaration.ts
2
+ var e = (e, t = !1) => {
3
+ if (e && (e = e.startsWith(".") ? e : `.${e}`, document.styleSheets?.length)) for (let n of document.styleSheets) for (let r of n.cssRules) {
4
+ let n = r;
5
+ if (n.selectorText === e && n.style) return t ? n.style.cssText : n.style;
6
+ }
7
+ return null;
8
+ };
9
+ //#endregion
10
+ export { e as getCSSDeclaration };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>document.querySelector(e);exports.getElement=e;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module dom/getElement
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { getElement } from '@untemps/utils/dom/getElement'
8
+ *
9
+ * const element = document.createElement('div')
10
+ * element.id = 'my-element'
11
+ * document.body.appendChild(element)
12
+ *
13
+ * getElement('#my-element') // <div id="my-element"></div>
14
+ *
15
+ * @param selector - The selector of the DOM element to return.
16
+ * @returns The DOM element corresponding to the selector.
17
+ */
18
+ export declare const getElement: <T extends Element = HTMLElement>(selector: string) => T | null;
19
+ //# sourceMappingURL=getElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getElement.d.ts","sourceRoot":"","sources":["../../src/dom/getElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,OAAO,GAAG,WAAW,EAAE,UAAU,MAAM,KAAG,CAAC,GAAG,IAC/C,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/dom/getElement.ts
2
+ var e = (e) => document.querySelector(e);
3
+ //#endregion
4
+ export { e as getElement };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>e?.nodeType===1;exports.isElement=e;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module dom/isElement
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { isElement } from '@untemps/utils/dom/isElement'
8
+ *
9
+ * isElement(document.createElement('div')) // true
10
+ * isElement(42) // false
11
+ *
12
+ * @param value - The value to check.
13
+ * @returns `true` whether the value is a DOM element.
14
+ */
15
+ export declare const isElement: (value: unknown) => value is Element;
16
+ //# sourceMappingURL=isElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElement.d.ts","sourceRoot":"","sources":["../../src/dom/isElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAA6C,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/dom/isElement.ts
2
+ var e = (e) => e?.nodeType === 1;
3
+ //#endregion
4
+ export { e as isElement };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../string/isString.cjs`);var t=(t,n={})=>{let r=e.isString(t)?document.querySelector(t):t;for(let e in n)n[e]===void 0||n[e]===null?r?.removeAttribute(e):r?.setAttribute(e,n[e]);return r};exports.modifyElement=t;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module dom/modifyElement
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { modifyElement } from '@untemps/utils/dom/modifyElement'
8
+ *
9
+ * const element = document.createElement('div')
10
+ * element.className = 'foo'
11
+ * document.body.appendChild(element)
12
+ *
13
+ * modifyElement(element, { className: 'bar' }) // <div class="bar"></div>
14
+ *
15
+ * @param element - The DOM element or selector of the DOM element to modify.
16
+ * @param attributes - The new attributes to set to the DOM element.
17
+ * @returns The modified DOM element.
18
+ */
19
+ export declare const modifyElement: (element: HTMLElement | string, attributes?: Record<string, string | null | undefined>) => HTMLElement | null;
20
+ //# sourceMappingURL=modifyElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifyElement.d.ts","sourceRoot":"","sources":["../../src/dom/modifyElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GACzB,SAAS,WAAW,GAAG,MAAM,EAC7B,aAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAM,KACxD,WAAW,GAAG,IAUhB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { isString as e } from "../string/isString.js";
2
+ //#region src/dom/modifyElement.ts
3
+ var t = (t, n = {}) => {
4
+ let r = e(t) ? document.querySelector(t) : t;
5
+ for (let e in n) n[e] === void 0 || n[e] === null ? r?.removeAttribute(e) : r?.setAttribute(e, n[e]);
6
+ return r;
7
+ };
8
+ //#endregion
9
+ export { t as modifyElement };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../string/isString.cjs`);var t=t=>{let n=e.isString(t)?document.querySelector(t):t;return n?.parentNode?.removeChild(n)};exports.removeElement=t;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module dom/removeElement
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { removeElement } from '@untemps/utils/dom/removeElement'
8
+ *
9
+ * const element = document.createElement('div')
10
+ * element.className = 'foo'
11
+ * document.body.appendChild(element)
12
+ *
13
+ * removeElement(element) // <div class="foo"></div>
14
+ *
15
+ * @param element - The DOM element or the selector of the DOM element to remove.
16
+ * @returns The removed DOM element.
17
+ */
18
+ export declare const removeElement: (element: HTMLElement | string) => HTMLElement | undefined;
19
+ //# sourceMappingURL=removeElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeElement.d.ts","sourceRoot":"","sources":["../../src/dom/removeElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,WAAW,GAAG,MAAM,KAAG,WAAW,GAAG,SAG3E,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { isString as e } from "../string/isString.js";
2
+ //#region src/dom/removeElement.ts
3
+ var t = (t) => {
4
+ let n = e(t) ? document.querySelector(t) : t;
5
+ return n?.parentNode?.removeChild(n);
6
+ };
7
+ //#endregion
8
+ export { t as removeElement };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>e?.length?e.reduce((e,n)=>{let r;if(Array.isArray(n)){let[e,t,i]=n;r=e?t:i}else r=n;return t(r)?[...e,r]:e},[]).join(` `):``,t=e=>e&&typeof e==`string`?e:null;exports.resolveClassName=e;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module dom/resolveClassName
3
+ */
4
+ export type ClassConditionTuple = [condition: unknown, truthyValue: string, falsyValue?: string];
5
+ export type ClassEntry = string | ClassConditionTuple;
6
+ /**
7
+ * @function
8
+ * @example
9
+ * import { resolveClassName } from '@untemps/utils/dom/resolveClassName'
10
+ *
11
+ * const input = [
12
+ * [true, 'foo', 'bar'],
13
+ * [false, 'foo', 'bar'],
14
+ * 'gag',
15
+ * ]
16
+ * resolveClassName(input) // 'foo bar gag'
17
+ *
18
+ * @param input - Array of conditions to evaluate. A condition is an array with 3 items: [condition, class if true, class if false]. You may pass a classname as string instead of a condition.
19
+ * @returns The aggregated class names.
20
+ */
21
+ export declare const resolveClassName: (input?: ClassEntry[]) => string;
22
+ //# sourceMappingURL=resolveClassName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveClassName.d.ts","sourceRoot":"","sources":["../../src/dom/resolveClassName.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;AAChG,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,mBAAmB,CAAA;AAErD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,UAAU,EAAE,KAAG,MAcvD,CAAA"}
@@ -0,0 +1,11 @@
1
+ //#region src/dom/resolveClassName.ts
2
+ var e = (e) => e?.length ? e.reduce((e, n) => {
3
+ let r;
4
+ if (Array.isArray(n)) {
5
+ let [e, t, i] = n;
6
+ r = e ? t : i;
7
+ } else r = n;
8
+ return t(r) ? [...e, r] : e;
9
+ }, []).join(" ") : "", t = (e) => e && typeof e == "string" ? e : null;
10
+ //#endregion
11
+ export { e as resolveClassName };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>typeof e==`function`;exports.isFunction=e;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module function/isFunction
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { isFunction } from '@untemps/utils/function/isFunction'
8
+ *
9
+ * isFunction(() => {}) // true
10
+ * isFunction(42) // false
11
+ *
12
+ * @param value - The value to check.
13
+ * @returns `true` whether the value is a function.
14
+ */
15
+ export declare const isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
16
+ //# sourceMappingURL=isFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFunction.d.ts","sourceRoot":"","sources":["../../src/function/isFunction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAsC,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/function/isFunction.ts
2
+ var e = (e) => typeof e == "function";
3
+ //#endregion
4
+ export { e as isFunction };
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array/extractByIndices.cjs`),t=require(`./async/standby.cjs`),n=require(`./dom/createElement.cjs`),r=require(`./dom/doElementsOverlap.cjs`),i=require(`./dom/getCSSDeclaration.cjs`),a=require(`./dom/getElement.cjs`),o=require(`./dom/isElement.cjs`),s=require(`./string/isString.cjs`),c=require(`./dom/modifyElement.cjs`),l=require(`./dom/removeElement.cjs`),u=require(`./dom/resolveClassName.cjs`),d=require(`./function/isFunction.cjs`),f=require(`./lang/isNil.cjs`),p=require(`./number/normalizeMinMax.cjs`),m=require(`./number/getRandomInteger.cjs`),h=require(`./object/isObject.cjs`),g=require(`./object/deepMerge.cjs`),_=require(`./string/generateText.cjs`),v=require(`./string/generateTokenizedText.cjs`),y=require(`./string/interpolate.cjs`),b=require(`./string/interpolateLiteral.cjs`);exports.createElement=n.createElement,exports.deepMerge=g.deepMerge,exports.doElementsOverlap=r.doElementsOverlap,exports.extractByIndices=e.extractByIndices,exports.generateText=_.generateText,exports.generateTokenizedText=v.generateTokenizedText,exports.getCSSDeclaration=i.getCSSDeclaration,exports.getElement=a.getElement,exports.getRandomInteger=m.getRandomInteger,exports.interpolate=y.interpolate,exports.interpolateLiteral=b.interpolateLiteral,exports.isElement=o.isElement,exports.isFunction=d.isFunction,exports.isNil=f.isNil,exports.isObject=h.isObject,exports.isString=s.isString,exports.modifyElement=c.modifyElement,exports.normalizeMinMax=p.normalizeMinMax,exports.removeElement=l.removeElement,exports.resolveClassName=u.resolveClassName,exports.standby=t.standby;
@@ -0,0 +1,26 @@
1
+ export { extractByIndices } from './array/extractByIndices';
2
+ export { standby } from './async/standby';
3
+ export { createElement } from './dom/createElement';
4
+ export type { BoundingClientRectInit, CreateElementConfig } from './dom/createElement';
5
+ export { doElementsOverlap } from './dom/doElementsOverlap';
6
+ export { getCSSDeclaration } from './dom/getCSSDeclaration';
7
+ export { getElement } from './dom/getElement';
8
+ export { isElement } from './dom/isElement';
9
+ export { modifyElement } from './dom/modifyElement';
10
+ export { removeElement } from './dom/removeElement';
11
+ export { resolveClassName } from './dom/resolveClassName';
12
+ export type { ClassConditionTuple, ClassEntry } from './dom/resolveClassName';
13
+ export { isFunction } from './function/isFunction';
14
+ export { isNil } from './lang/isNil';
15
+ export { getRandomInteger } from './number/getRandomInteger';
16
+ export { normalizeMinMax } from './number/normalizeMinMax';
17
+ export { deepMerge } from './object/deepMerge';
18
+ export { isObject } from './object/isObject';
19
+ export { generateText } from './string/generateText';
20
+ export type { GenerateTextConfig } from './string/generateText';
21
+ export { generateTokenizedText } from './string/generateTokenizedText';
22
+ export type { GenerateTokenizedTextConfig } from './string/generateTokenizedText';
23
+ export { interpolate } from './string/interpolate';
24
+ export { interpolateLiteral } from './string/interpolateLiteral';
25
+ export { isString } from './string/isString';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ import { extractByIndices as e } from "./array/extractByIndices.js";
2
+ import { standby as t } from "./async/standby.js";
3
+ import { createElement as n } from "./dom/createElement.js";
4
+ import { doElementsOverlap as r } from "./dom/doElementsOverlap.js";
5
+ import { getCSSDeclaration as i } from "./dom/getCSSDeclaration.js";
6
+ import { getElement as a } from "./dom/getElement.js";
7
+ import { isElement as o } from "./dom/isElement.js";
8
+ import { isString as s } from "./string/isString.js";
9
+ import { modifyElement as c } from "./dom/modifyElement.js";
10
+ import { removeElement as l } from "./dom/removeElement.js";
11
+ import { resolveClassName as u } from "./dom/resolveClassName.js";
12
+ import { isFunction as d } from "./function/isFunction.js";
13
+ import { isNil as f } from "./lang/isNil.js";
14
+ import { normalizeMinMax as p } from "./number/normalizeMinMax.js";
15
+ import { getRandomInteger as m } from "./number/getRandomInteger.js";
16
+ import { isObject as h } from "./object/isObject.js";
17
+ import { deepMerge as g } from "./object/deepMerge.js";
18
+ import { generateText as _ } from "./string/generateText.js";
19
+ import { generateTokenizedText as v } from "./string/generateTokenizedText.js";
20
+ import { interpolate as y } from "./string/interpolate.js";
21
+ import { interpolateLiteral as b } from "./string/interpolateLiteral.js";
22
+ export { n as createElement, g as deepMerge, r as doElementsOverlap, e as extractByIndices, _ as generateText, v as generateTokenizedText, i as getCSSDeclaration, a as getElement, m as getRandomInteger, y as interpolate, b as interpolateLiteral, o as isElement, d as isFunction, f as isNil, h as isObject, s as isString, c as modifyElement, p as normalizeMinMax, l as removeElement, u as resolveClassName, t as standby };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>e==null;exports.isNil=e;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module lang/isNil
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { isNil } from '@untemps/utils/lang/isNil'
8
+ *
9
+ * isNil(undefined) // true
10
+ * isNil(42) // false
11
+ *
12
+ * @param value - The value to check.
13
+ * @returns `true` whether the value is undefined or null.
14
+ */
15
+ export declare const isNil: (value: unknown) => value is null | undefined;
16
+ //# sourceMappingURL=isNil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNil.d.ts","sourceRoot":"","sources":["../../src/lang/isNil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,IAAI,GAAG,SAAkD,CAAA"}
@@ -0,0 +1,4 @@
1
+ //#region src/lang/isNil.ts
2
+ var e = (e) => e == null;
3
+ //#endregion
4
+ export { e as isNil };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./normalizeMinMax.cjs`);var t=(t=-(2**53-1),n=2**53-1)=>{let{min:r,max:i}=e.normalizeMinMax(t,n);return Math.round(r+Math.random()*(i-r))};exports.getRandomInteger=t;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @module number/getRandomInteger
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { getRandomInteger } from '@untemps/utils/number/getRandomInteger'
8
+ *
9
+ * const min = 0
10
+ * const max = 100
11
+ * getRandomInteger(min, max) // 42
12
+ *
13
+ * @param min - The minimum value to pick.
14
+ * @param max - The maximum value to pick.
15
+ * @returns A random integer between min and max.
16
+ */
17
+ export declare const getRandomInteger: (min?: number, max?: number) => number;
18
+ //# sourceMappingURL=getRandomInteger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRandomInteger.d.ts","sourceRoot":"","sources":["../../src/number/getRandomInteger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAA8B,EAAE,YAA6B,KAAG,MAGhG,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { normalizeMinMax as e } from "./normalizeMinMax.js";
2
+ //#region src/number/getRandomInteger.ts
3
+ var t = (t = -(2 ** 53 - 1), n = 2 ** 53 - 1) => {
4
+ let { min: r, max: i } = e(t, n);
5
+ return Math.round(r + Math.random() * (i - r));
6
+ };
7
+ //#endregion
8
+ export { t as getRandomInteger };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>({min:Math.min(e,t),max:Math.max(e,t)});exports.normalizeMinMax=e;