@rickard.antonsson/ts-utility 2.1.2 → 2.2.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.
@@ -1,5 +1,5 @@
1
1
  import { Fn } from '../../types';
2
- export declare function createElement<S extends keyof HTMLElementTagNameMap | `${keyof HTMLElementTagNameMap}${SplittingChars}${string}`>(basicEmmet: S, listOrFn?: (HTMLElement | string)[] | Fn<[HTMLElementTagNameMap[ExtractHtmlTagName<S>]], void>, list?: (HTMLElement | string)[]): HTMLElementTagNameMap[ExtractHtmlTagName<S>];
2
+ export declare function createElement<S extends keyof HTMLElementTagNameMap | `${keyof HTMLElementTagNameMap}${SplittingChars}${string}`>(basicEmmet: S, listOrFn?: (HTMLElement | string | (() => HTMLElement | string))[] | Fn<[HTMLElementTagNameMap[ExtractHtmlTagName<S>]], void>, list?: (HTMLElement | string | (() => HTMLElement | string))[]): HTMLElementTagNameMap[ExtractHtmlTagName<S>];
3
3
  type SplittingChars = '.' | '{' | '#';
4
4
  type ExtractHtmlTagName<T extends string> = T extends keyof HTMLElementTagNameMap ? T : T extends `${infer Tag}${SplittingChars}${string}` ? Tag extends keyof HTMLElementTagNameMap ? Tag : never : never;
5
5
  export {};
@@ -9,13 +9,13 @@ function createElement(basicEmmet, listOrFn, list) {
9
9
  if (typeof listOrFn === 'function')
10
10
  listOrFn.call(null, elm);
11
11
  else
12
- elm.append(...(listOrFn !== null && listOrFn !== void 0 ? listOrFn : []));
12
+ elm.append(...(listOrFn !== null && listOrFn !== void 0 ? listOrFn : []).map(i => (typeof i === 'function' ? i() : i)));
13
13
  }
14
14
  if (list)
15
- elm.append(...list);
15
+ elm.append(...list.map(i => (typeof i === 'function' ? i() : i)));
16
16
  return elm;
17
17
  }
18
- function emmetCreateElement(str) {
18
+ function emmetCreateElement2(str) {
19
19
  const matches = str.match(/([a-z-]+)(#[a-z1-9-]+)?((\.[a-z1-9-]+)*)(\{.+\})?/);
20
20
  if (!matches)
21
21
  return;
@@ -29,4 +29,43 @@ function emmetCreateElement(str) {
29
29
  element.textContent = textContent.substring(1, textContent.length - 1);
30
30
  return element;
31
31
  }
32
+ function emmetCreateElement(input) {
33
+ var _a, _b, _c, _d, _e;
34
+ const [, tagname, , modifier] = (_a = input.match(/^([a-z-]+)(:([a-z-]+))?/)) !== null && _a !== void 0 ? _a : [];
35
+ const element = document.createElement((tagname !== null && tagname !== void 0 ? tagname : 'div'));
36
+ if (modifier)
37
+ handleElementModifier(element, modifier);
38
+ const [, id] = (_b = input.match(/#([a-z-]+)/)) !== null && _b !== void 0 ? _b : [];
39
+ if (id)
40
+ element.id = id;
41
+ const [, text] = (_c = input.match(/{(.*)}/)) !== null && _c !== void 0 ? _c : [];
42
+ if (text)
43
+ element.textContent = text;
44
+ const classnames = [...input.matchAll(/\.([a-z-0-9]*)/g)];
45
+ if (classnames.length)
46
+ element.className = classnames.map(cn => cn[1]).join(' ');
47
+ const [, allAttributes] = (_d = input.match(/\[(.*?)\]/)) !== null && _d !== void 0 ? _d : [];
48
+ const temp = [
49
+ ...((_e = allAttributes === null || allAttributes === void 0 ? void 0 : allAttributes.matchAll(/(\b\w+\b)(=(\b\w+)|="(.+?)")?/gi)) !== null && _e !== void 0 ? _e : []),
50
+ ];
51
+ temp === null || temp === void 0 ? void 0 : temp.forEach(([, prop, , single, multiple]) => { var _a; return (element[prop] = (_a = single !== null && single !== void 0 ? single : multiple) !== null && _a !== void 0 ? _a : true); });
52
+ return element;
53
+ }
54
+ function handleElementModifier(elm, attribute) {
55
+ var _a;
56
+ if (elm instanceof HTMLInputElement) {
57
+ const expand = {
58
+ b: 'button',
59
+ c: 'checkbox',
60
+ f: 'file',
61
+ h: 'hidden',
62
+ i: 'image',
63
+ r: 'radio',
64
+ s: 'submit',
65
+ t: 'text',
66
+ p: 'password',
67
+ };
68
+ elm.type = (_a = expand[attribute]) !== null && _a !== void 0 ? _a : attribute;
69
+ }
70
+ }
32
71
  //# sourceMappingURL=create-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-element.js","sourceRoot":"","sources":["../../../src/functions/other/create-element.ts"],"names":[],"mappings":";;AAEA,sCAmBC;AAnBD,SAAgB,aAAa,CAK3B,UAAa,EACb,QAE4D,EAC5D,IAA+B;IAE/B,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;YACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,IAAI;QAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAmB,GAAM;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,mDAAmD,CACpD,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,AAAD,EAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAgC,CAAC,CAAC;IACzE,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,UAAU;QACZ,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,WAAW;QACb,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"create-element.js","sourceRoot":"","sources":["../../../src/functions/other/create-element.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rickard.antonsson/ts-utility",
3
- "version": "2.1.2",
3
+ "version": "2.2.1",
4
4
  "description": "My favorite small helper functions",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",