@untemps/utils 3.0.0 → 3.1.1

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 (90) hide show
  1. package/README.md +23 -0
  2. package/dist/array/extractByIndices.cjs +1 -1
  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 -4
  6. package/dist/async/standby.cjs +1 -1
  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 -4
  10. package/dist/dom/createElement.cjs +1 -1
  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 +9 -18
  14. package/dist/dom/doElementsOverlap.cjs +1 -1
  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 +6 -6
  18. package/dist/dom/getCSSDeclaration.cjs +1 -1
  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 +9 -12
  22. package/dist/dom/getElement.cjs +1 -1
  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 -4
  26. package/dist/dom/isElement.cjs +1 -1
  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 -4
  30. package/dist/dom/modifyElement.cjs +1 -1
  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 +8 -10
  34. package/dist/dom/removeElement.cjs +1 -1
  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 +7 -8
  38. package/dist/dom/resolveClassName.cjs +1 -1
  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 -10
  42. package/dist/function/isFunction.cjs +1 -1
  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 -4
  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 -1
  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 -4
  54. package/dist/number/getRandomInteger.cjs +1 -1
  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 +7 -7
  58. package/dist/number/normalizeMinMax.cjs +1 -1
  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 +6 -6
  62. package/dist/object/deepMerge.cjs +1 -1
  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 +7 -8
  66. package/dist/object/isObject.cjs +1 -1
  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 -4
  70. package/dist/string/generateText.cjs +1 -1
  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 +18 -70
  74. package/dist/string/generateTokenizedText.cjs +1 -1
  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 +18 -26
  78. package/dist/string/interpolate.cjs +1 -1
  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 +10 -13
  82. package/dist/string/interpolateLiteral.cjs +1 -1
  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 -4
  86. package/dist/string/isString.cjs +1 -1
  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 -4
  90. package/package.json +32 -35
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
  ```
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=(t,e)=>(t==null?void 0:t.filter((y,l)=>e==null?void 0:e.includes(l)))??[];exports.extractByIndices=a;
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"}
@@ -1,4 +1,4 @@
1
- const f = (t, l) => (t == null ? void 0 : t.filter((a, x) => l == null ? void 0 : l.includes(x))) ?? [];
2
- export {
3
- f as extractByIndices
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 };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=(e=128)=>new Promise(t=>setTimeout(t,e));exports.standby=o;
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"}
@@ -1,4 +1,4 @@
1
- const o = (e = 128) => new Promise((t) => setTimeout(t, e));
2
- export {
3
- o as standby
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 };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=({tag:o="div",attributes:l={},content:t=null,textContent:n=null,parent:u=null,parentSelector:c=null,boundingClientRect:d=null}={})=>{const e=document.createElement(o);for(let i in l)e.setAttribute(i,l[i]);t&&e.appendChild(t),n&&!e.hasChildNodes()&&e.appendChild(document.createTextNode(n));const r=u||document.querySelector(c);return r&&r.appendChild(e),d&&(e.getBoundingClientRect=()=>d),e};exports.createElement=a;
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"}
@@ -1,19 +1,10 @@
1
- const p = ({
2
- tag: r = "div",
3
- attributes: l = {},
4
- content: n = null,
5
- textContent: d = null,
6
- parent: u = null,
7
- parentSelector: c = null,
8
- boundingClientRect: t = null
9
- } = {}) => {
10
- const e = document.createElement(r);
11
- for (let o in l)
12
- e.setAttribute(o, l[o]);
13
- n && e.appendChild(n), d && !e.hasChildNodes() && e.appendChild(document.createTextNode(d));
14
- const i = u || document.querySelector(c);
15
- return i && i.appendChild(e), t && (e.getBoundingClientRect = () => t), e;
16
- };
17
- export {
18
- p as createElement
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;
19
8
  };
9
+ //#endregion
10
+ export { e as createElement };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=(t,e)=>{const{left:o,right:n,top:l,bottom:r}=t.getBoundingClientRect(),{left:i,right:g,top:c,bottom:m}=e.getBoundingClientRect();return!(l>m||n<i||r<c||o>g)};exports.doElementsOverlap=p;
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"}
@@ -1,7 +1,7 @@
1
- const m = (t, o) => {
2
- const { left: e, right: n, top: g, bottom: i } = t.getBoundingClientRect(), { left: l, right: r, top: p, bottom: c } = o.getBoundingClientRect();
3
- return !(g > c || n < l || i < p || e > r);
4
- };
5
- export {
6
- m as doElementsOverlap
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);
7
5
  };
6
+ //#endregion
7
+ export { e as doElementsOverlap };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=(t,r=!1)=>{var o;if(t&&(t=t.startsWith(".")?t:`.${t}`,(o=document.styleSheets)!=null&&o.length)){for(let{cssRules:l}of document.styleSheets)for(let{selectorText:n,style:e}of l)if(n===t&&e)return r?e.cssText:e}return null};exports.getCSSDeclaration=f;
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"}
@@ -1,13 +1,10 @@
1
- const l = (t, r = !1) => {
2
- var o;
3
- if (t && (t = t.startsWith(".") ? t : `.${t}`, (o = document.styleSheets) != null && o.length)) {
4
- for (let { cssRules: f } of document.styleSheets)
5
- for (let { selectorText: n, style: e } of f)
6
- if (n === t && e)
7
- return r ? e.cssText : e;
8
- }
9
- return null;
10
- };
11
- export {
12
- l as getCSSDeclaration
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;
13
8
  };
9
+ //#endregion
10
+ export { e as getCSSDeclaration };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=e=>document.querySelector(e);exports.getElement=t;
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"}
@@ -1,4 +1,4 @@
1
- const t = (e) => document.querySelector(e);
2
- export {
3
- t as getElement
4
- };
1
+ //#region src/dom/getElement.ts
2
+ var e = (e) => document.querySelector(e);
3
+ //#endregion
4
+ export { e as getElement };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=e=>(e==null?void 0:e.nodeType)===1;exports.isElement=t;
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"}
@@ -1,4 +1,4 @@
1
- const o = (n) => (n == null ? void 0 : n.nodeType) === 1;
2
- export {
3
- o as isElement
4
- };
1
+ //#region src/dom/isElement.ts
2
+ var e = (e) => e?.nodeType === 1;
3
+ //#endregion
4
+ export { e as isElement };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../string/isString.cjs"),o=(t,r={})=>{let e=t;n.isString(t)&&(e=document.querySelector(t));for(let i in r)r[i]===void 0||r[i]===null?e==null||e.removeAttribute(i):e==null||e.setAttribute(i,r[i]);return e};exports.modifyElement=o;
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"}
@@ -1,11 +1,9 @@
1
- import { isString as n } from "../string/isString.js";
2
- const t = (i, e = {}) => {
3
- let o = i;
4
- n(i) && (o = document.querySelector(i));
5
- for (let r in e)
6
- e[r] === void 0 || e[r] === null ? o == null || o.removeAttribute(r) : o == null || o.setAttribute(r, e[r]);
7
- return o;
8
- };
9
- export {
10
- t as modifyElement
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;
11
7
  };
8
+ //#endregion
9
+ export { t as modifyElement };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../string/isString.cjs"),i=r=>{var t;let e=r;return o.isString(r)&&(e=document.querySelector(r)),(t=e==null?void 0:e.parentNode)==null?void 0:t.removeChild(e)};exports.removeElement=i;
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"}
@@ -1,9 +1,8 @@
1
- import { isString as t } from "../string/isString.js";
2
- const m = (o) => {
3
- var e;
4
- let r = o;
5
- return t(o) && (r = document.querySelector(o)), (e = r == null ? void 0 : r.parentNode) == null ? void 0 : e.removeChild(r);
6
- };
7
- export {
8
- m as removeElement
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);
9
6
  };
7
+ //#endregion
8
+ export { t as removeElement };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=r=>r!=null&&r.length?r.reduce((o,e)=>{if(Array.isArray(e)){const[s,t,n]=e;e=s?t:n}return y(e)?[...o,e]:o},[]).join(" "):"",y=r=>r&&typeof r=="string"?r:null;exports.resolveClassName=l;
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"}
@@ -1,10 +1,11 @@
1
- const f = (r) => r != null && r.length ? r.reduce((s, o) => {
2
- if (Array.isArray(o)) {
3
- const [e, n, t] = o;
4
- o = e ? n : t;
5
- }
6
- return y(o) ? [...s, o] : s;
7
- }, []).join(" ") : "", y = (r) => r && typeof r == "string" ? r : null;
8
- export {
9
- f as resolveClassName
10
- };
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 };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=t=>typeof t=="function";exports.isFunction=n;
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"}
@@ -1,4 +1,4 @@
1
- const o = (n) => typeof n == "function";
2
- export {
3
- o as isFunction
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"}