@dooboostore/simple-web-component 1.0.21 → 1.0.23

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 (174) hide show
  1. package/README.md +1113 -95
  2. package/dist/cjs/decorators/addEventListener.js +4 -0
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/applyNode.js +174 -0
  5. package/dist/cjs/decorators/applyNode.js.map +7 -0
  6. package/dist/cjs/decorators/attribute.js +30 -10
  7. package/dist/cjs/decorators/attribute.js.map +3 -3
  8. package/dist/cjs/decorators/{changedAttribute.js → changedAttributeHost.js} +6 -6
  9. package/dist/cjs/decorators/changedAttributeHost.js.map +7 -0
  10. package/dist/cjs/decorators/classList.js +45 -15
  11. package/dist/cjs/decorators/classList.js.map +2 -2
  12. package/dist/cjs/decorators/elementDefine.js +107 -57
  13. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  14. package/dist/cjs/decorators/emitCustomEvent.js +4 -3
  15. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  16. package/dist/cjs/decorators/index.js +2 -4
  17. package/dist/cjs/decorators/index.js.map +2 -2
  18. package/dist/cjs/decorators/lifecycles.js +29 -0
  19. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  20. package/dist/cjs/decorators/query.js +5 -1
  21. package/dist/cjs/decorators/query.js.map +2 -2
  22. package/dist/cjs/decorators/queryAll.js +5 -1
  23. package/dist/cjs/decorators/queryAll.js.map +2 -2
  24. package/dist/cjs/decorators/setAttribute.js +5 -1
  25. package/dist/cjs/decorators/setAttribute.js.map +2 -2
  26. package/dist/cjs/decorators/style.js +39 -13
  27. package/dist/cjs/decorators/style.js.map +2 -2
  28. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  29. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  30. package/dist/cjs/elements/SwcAsync.js +2 -2
  31. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  32. package/dist/cjs/elements/SwcChoose.js +2 -2
  33. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  34. package/dist/cjs/elements/SwcIf.js +2 -2
  35. package/dist/cjs/elements/SwcIf.js.map +2 -2
  36. package/dist/cjs/elements/SwcLoop.js +2 -2
  37. package/dist/cjs/elements/SwcLoop.js.map +2 -2
  38. package/dist/cjs/elements/register.js +6 -5
  39. package/dist/cjs/elements/register.js.map +2 -2
  40. package/dist/cjs/index.js +6 -18
  41. package/dist/cjs/index.js.map +2 -2
  42. package/dist/cjs/types.js.map +2 -2
  43. package/dist/cjs/utils/TemplateUtils.js +6 -0
  44. package/dist/cjs/utils/TemplateUtils.js.map +2 -2
  45. package/dist/esm/decorators/addEventListener.js +4 -0
  46. package/dist/esm/decorators/addEventListener.js.map +2 -2
  47. package/dist/esm/decorators/applyNode.js +155 -0
  48. package/dist/esm/decorators/applyNode.js.map +7 -0
  49. package/dist/esm/decorators/attribute.js +30 -10
  50. package/dist/esm/decorators/attribute.js.map +3 -3
  51. package/dist/esm/decorators/{changedAttribute.js → changedAttributeHost.js} +3 -3
  52. package/dist/esm/decorators/changedAttributeHost.js.map +7 -0
  53. package/dist/esm/decorators/classList.js +45 -15
  54. package/dist/esm/decorators/classList.js.map +2 -2
  55. package/dist/esm/decorators/elementDefine.js +106 -56
  56. package/dist/esm/decorators/elementDefine.js.map +2 -2
  57. package/dist/esm/decorators/emitCustomEvent.js +4 -3
  58. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  59. package/dist/esm/decorators/index.js +2 -4
  60. package/dist/esm/decorators/index.js.map +2 -2
  61. package/dist/esm/decorators/lifecycles.js +29 -0
  62. package/dist/esm/decorators/lifecycles.js.map +2 -2
  63. package/dist/esm/decorators/query.js +5 -1
  64. package/dist/esm/decorators/query.js.map +2 -2
  65. package/dist/esm/decorators/queryAll.js +5 -1
  66. package/dist/esm/decorators/queryAll.js.map +2 -2
  67. package/dist/esm/decorators/setAttribute.js +5 -1
  68. package/dist/esm/decorators/setAttribute.js.map +2 -2
  69. package/dist/esm/decorators/style.js +39 -13
  70. package/dist/esm/decorators/style.js.map +2 -2
  71. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  72. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  73. package/dist/esm/elements/SwcAsync.js +2 -2
  74. package/dist/esm/elements/SwcAsync.js.map +2 -2
  75. package/dist/esm/elements/SwcChoose.js +2 -2
  76. package/dist/esm/elements/SwcChoose.js.map +2 -2
  77. package/dist/esm/elements/SwcIf.js +2 -2
  78. package/dist/esm/elements/SwcIf.js.map +2 -2
  79. package/dist/esm/elements/SwcLoop.js +2 -2
  80. package/dist/esm/elements/SwcLoop.js.map +2 -2
  81. package/dist/esm/elements/register.js +6 -5
  82. package/dist/esm/elements/register.js.map +2 -2
  83. package/dist/esm/index.js +6 -18
  84. package/dist/esm/index.js.map +2 -2
  85. package/dist/esm/types.js.map +2 -2
  86. package/dist/esm/utils/TemplateUtils.js +6 -0
  87. package/dist/esm/utils/TemplateUtils.js.map +2 -2
  88. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +385 -206
  89. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  90. package/dist/types/decorators/addEventListener.d.ts +6 -0
  91. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  92. package/dist/types/decorators/applyNode.d.ts +121 -0
  93. package/dist/types/decorators/applyNode.d.ts.map +1 -0
  94. package/dist/types/decorators/attribute.d.ts +6 -0
  95. package/dist/types/decorators/attribute.d.ts.map +1 -1
  96. package/dist/types/decorators/{changedAttribute.d.ts → changedAttributeHost.d.ts} +6 -2
  97. package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -0
  98. package/dist/types/decorators/classList.d.ts +32 -5
  99. package/dist/types/decorators/classList.d.ts.map +1 -1
  100. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  101. package/dist/types/decorators/emitCustomEvent.d.ts +14 -2
  102. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  103. package/dist/types/decorators/index.d.ts +2 -4
  104. package/dist/types/decorators/index.d.ts.map +1 -1
  105. package/dist/types/decorators/lifecycles.d.ts +16 -0
  106. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  107. package/dist/types/decorators/query.d.ts +6 -3
  108. package/dist/types/decorators/query.d.ts.map +1 -1
  109. package/dist/types/decorators/queryAll.d.ts +6 -0
  110. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  111. package/dist/types/decorators/setAttribute.d.ts +5 -0
  112. package/dist/types/decorators/setAttribute.d.ts.map +1 -1
  113. package/dist/types/decorators/style.d.ts +28 -3
  114. package/dist/types/decorators/style.d.ts.map +1 -1
  115. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  116. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  117. package/dist/types/elements/register.d.ts +1 -1
  118. package/dist/types/elements/register.d.ts.map +1 -1
  119. package/dist/types/index.d.ts +3 -15
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/types.d.ts +2 -1
  122. package/dist/types/types.d.ts.map +1 -1
  123. package/dist/types/utils/TemplateUtils.d.ts +5 -0
  124. package/dist/types/utils/TemplateUtils.d.ts.map +1 -1
  125. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +385 -206
  126. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  127. package/package.json +3 -3
  128. package/src/decorators/addEventListener.ts +9 -0
  129. package/src/decorators/applyNode.ts +290 -0
  130. package/src/decorators/attribute.ts +46 -12
  131. package/src/decorators/{changedAttribute.ts → changedAttributeHost.ts} +5 -1
  132. package/src/decorators/classList.ts +71 -16
  133. package/src/decorators/elementDefine.ts +130 -63
  134. package/src/decorators/emitCustomEvent.ts +13 -5
  135. package/src/decorators/index.ts +2 -4
  136. package/src/decorators/lifecycles.ts +43 -1
  137. package/src/decorators/query.ts +9 -2
  138. package/src/decorators/queryAll.ts +9 -0
  139. package/src/decorators/setAttribute.ts +8 -0
  140. package/src/decorators/style.ts +64 -13
  141. package/src/elements/SwcAppEngine.ts +1 -0
  142. package/src/elements/SwcAppMixin.ts +2 -1
  143. package/src/elements/SwcAsync.ts +2 -2
  144. package/src/elements/SwcChoose.ts +2 -2
  145. package/src/elements/SwcIf.ts +2 -2
  146. package/src/elements/SwcLoop.ts +2 -2
  147. package/src/elements/register.ts +7 -5
  148. package/src/index.ts +8 -17
  149. package/src/types.ts +2 -1
  150. package/src/utils/TemplateUtils.ts +9 -0
  151. package/dist/cjs/decorators/appendChild.js +0 -92
  152. package/dist/cjs/decorators/appendChild.js.map +0 -7
  153. package/dist/cjs/decorators/changedAttribute.js.map +0 -7
  154. package/dist/cjs/decorators/onConnectedInnerHtml.js +0 -48
  155. package/dist/cjs/decorators/onConnectedInnerHtml.js.map +0 -7
  156. package/dist/cjs/decorators/replaceChildren.js +0 -79
  157. package/dist/cjs/decorators/replaceChildren.js.map +0 -7
  158. package/dist/esm/decorators/appendChild.js +0 -73
  159. package/dist/esm/decorators/appendChild.js.map +0 -7
  160. package/dist/esm/decorators/changedAttribute.js.map +0 -7
  161. package/dist/esm/decorators/onConnectedInnerHtml.js +0 -29
  162. package/dist/esm/decorators/onConnectedInnerHtml.js.map +0 -7
  163. package/dist/esm/decorators/replaceChildren.js +0 -60
  164. package/dist/esm/decorators/replaceChildren.js.map +0 -7
  165. package/dist/types/decorators/appendChild.d.ts +0 -17
  166. package/dist/types/decorators/appendChild.d.ts.map +0 -1
  167. package/dist/types/decorators/changedAttribute.d.ts.map +0 -1
  168. package/dist/types/decorators/onConnectedInnerHtml.d.ts +0 -15
  169. package/dist/types/decorators/onConnectedInnerHtml.d.ts.map +0 -1
  170. package/dist/types/decorators/replaceChildren.d.ts +0 -9
  171. package/dist/types/decorators/replaceChildren.d.ts.map +0 -1
  172. package/src/decorators/appendChild.ts +0 -86
  173. package/src/decorators/onConnectedInnerHtml.ts +0 -42
  174. package/src/decorators/replaceChildren.ts +0 -64
@@ -1,60 +0,0 @@
1
- import { ReflectUtils } from "@dooboostore/core";
2
- import { ensureInit, getElementConfig } from "./elementDefine.js";
3
- const REPLACE_CHILDREN_METADATA_KEY = Symbol("simple-web-component:replace-children");
4
- function replaceChildren(selector) {
5
- return (target, propertyKey, descriptor) => {
6
- const constructor = target.constructor;
7
- let meta = ReflectUtils.getOwnMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);
8
- if (!meta) {
9
- meta = /* @__PURE__ */ new Map();
10
- ReflectUtils.defineMetadata(REPLACE_CHILDREN_METADATA_KEY, meta, constructor);
11
- }
12
- meta.set(propertyKey, selector);
13
- const original = descriptor.value;
14
- descriptor.value = async function(...args) {
15
- ensureInit(this);
16
- const res = await original.apply(this, args);
17
- if (res !== void 0) {
18
- const conf = getElementConfig(this);
19
- const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
20
- const currentDoc = currentWin.document;
21
- let targetEl = null;
22
- if (selector === ":host" || !selector) {
23
- targetEl = this;
24
- } else {
25
- targetEl = (this.shadowRoot || this).querySelector(selector);
26
- }
27
- if (targetEl) {
28
- if (typeof res === "string") {
29
- targetEl.textContent = res;
30
- } else {
31
- const nodes = Array.isArray(res) ? res.map((n) => typeof n === "string" ? currentDoc.createTextNode(n) : n) : [res];
32
- targetEl.replaceChildren(...nodes);
33
- }
34
- }
35
- }
36
- return res;
37
- };
38
- };
39
- }
40
- const getReplaceChildrenMetadata = (target) => {
41
- const constructor = target instanceof Function ? target : target.constructor;
42
- return ReflectUtils.getMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);
43
- };
44
- const findAllReplaceChildrenMetadata = (target) => {
45
- const result = /* @__PURE__ */ new Map();
46
- const maps = ReflectUtils.findAllMetadata(REPLACE_CHILDREN_METADATA_KEY, target);
47
- maps.forEach((map) => {
48
- if (map instanceof Map) {
49
- map.forEach((v, k) => result.set(k, v));
50
- }
51
- });
52
- return result;
53
- };
54
- export {
55
- REPLACE_CHILDREN_METADATA_KEY,
56
- findAllReplaceChildrenMetadata,
57
- getReplaceChildrenMetadata,
58
- replaceChildren
59
- };
60
- //# sourceMappingURL=replaceChildren.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/decorators/replaceChildren.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\n\nexport const REPLACE_CHILDREN_METADATA_KEY = Symbol('simple-web-component:replace-children');\n\n/**\n * @replaceChildren decorator to surgically replace children of a target element.\n * Usage: @replaceChildren('#container') renderPart() { return '<div>New Content</div>'; }\n */\nexport function replaceChildren(selector: string): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let meta = ReflectUtils.getOwnMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor) as Map<string | symbol, string>;\n if (!meta) {\n meta = new Map<string | symbol, string>();\n ReflectUtils.defineMetadata(REPLACE_CHILDREN_METADATA_KEY, meta, constructor);\n }\n meta.set(propertyKey, selector);\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await original.apply(this, args);\n if (res !== undefined) {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);\n const currentDoc = currentWin.document;\n\n let targetEl: Element | null = null;\n if (selector === ':host' || !selector) {\n targetEl = this as any;\n } else {\n targetEl = (this.shadowRoot || (this as any)).querySelector(selector);\n }\n\n if (targetEl) {\n if (typeof res === 'string') {\n targetEl.textContent = res;\n } else {\n const nodes: Node[] = Array.isArray(res) ? res.map(n => (typeof n === 'string' ? currentDoc.createTextNode(n) : n)) : [res as Node];\n (targetEl as any).replaceChildren(...nodes);\n }\n }\n }\n return res;\n };\n };\n}\n\nexport const getReplaceChildrenMetadata = (target: any): Map<string | symbol, string> | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);\n};\n\nexport const findAllReplaceChildrenMetadata = (target: any): Map<string | symbol, string> => {\n const result = new Map<string | symbol, string>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, string>>(REPLACE_CHILDREN_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};\n"],
5
- "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,YAAY,wBAAwB;AAEtC,MAAM,gCAAgC,OAAO,uCAAuC;AAMpF,SAAS,gBAAgB,UAAmC;AACjE,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,aAAa,eAAe,+BAA+B,WAAW;AACjF,QAAI,CAAC,MAAM;AACT,aAAO,oBAAI,IAA6B;AACxC,mBAAa,eAAe,+BAA+B,MAAM,WAAW;AAAA,IAC9E;AACA,SAAK,IAAI,aAAa,QAAQ;AAE9B,UAAM,WAAW,WAAW;AAC5B,eAAW,QAAQ,kBAAmB,MAAa;AACjD,iBAAW,IAAI;AACf,YAAM,MAAM,MAAM,SAAS,MAAM,MAAM,IAAI;AAC3C,UAAI,QAAQ,QAAW;AACrB,cAAM,OAAO,iBAAiB,IAAI;AAClC,cAAM,aAAc,KAAa,iBAAiB,IAAI,MAAO,OAAO,WAAW,cAAc,SAAS;AACtG,cAAM,aAAa,WAAW;AAE9B,YAAI,WAA2B;AAC/B,YAAI,aAAa,WAAW,CAAC,UAAU;AACrC,qBAAW;AAAA,QACb,OAAO;AACL,sBAAY,KAAK,cAAe,MAAc,cAAc,QAAQ;AAAA,QACtE;AAEA,YAAI,UAAU;AACZ,cAAI,OAAO,QAAQ,UAAU;AAC3B,qBAAS,cAAc;AAAA,UACzB,OAAO;AACL,kBAAM,QAAgB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,OAAM,OAAO,MAAM,WAAW,WAAW,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,GAAW;AAClI,YAAC,SAAiB,gBAAgB,GAAG,KAAK;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,6BAA6B,CAAC,WAA0D;AACnG,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,+BAA+B,WAAW;AAC5E;AAEO,MAAM,iCAAiC,CAAC,WAA8C;AAC3F,QAAM,SAAS,oBAAI,IAA6B;AAChD,QAAM,OAAO,aAAa,gBAA8C,+BAA+B,MAAM;AAC7G,OAAK,QAAQ,SAAO;AAClB,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,GAAG,MAAM,OAAO,IAAI,GAAG,CAAC,CAAC;AAAA,IACxC;AAAA,EACF,CAAC;AACD,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,17 +0,0 @@
1
- export type AppendChildPosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd';
2
- export interface AppendChildOptions {
3
- position?: AppendChildPosition;
4
- }
5
- export interface AppendChildMetadata {
6
- propertyKey: string | symbol;
7
- selector: string;
8
- options: AppendChildOptions;
9
- }
10
- export declare const APPEND_CHILD_METADATA_KEY: unique symbol;
11
- /**
12
- * @appendChild decorator to surgically add nodes to a target element.
13
- * Usage: @appendChild('#list') addItem() { return '<li>New Item</li>'; }
14
- */
15
- export declare function appendChild(selector: string, options?: AppendChildOptions): MethodDecorator;
16
- export declare const findAllAppendChildMetadata: (target: any) => Map<string | symbol, AppendChildMetadata>;
17
- //# sourceMappingURL=appendChild.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appendChild.d.ts","sourceRoot":"","sources":["../../../src/decorators/appendChild.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,eAAO,MAAM,yBAAyB,eAA8C,CAAC;AAUrF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAA8C,GAAG,eAAe,CA6CtH;AAED,eAAO,MAAM,0BAA0B,GAAI,QAAQ,GAAG,KAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,mBAAmB,CAShG,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"changedAttribute.d.ts","sourceRoot":"","sources":["../../../src/decorators/changedAttribute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iCAAiC,eAAsD,CAAC;AAErG,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,eAAe,CAiBxE;AAED,eAAO,MAAM,2BAA2B,GAAI,QAAQ,GAAG,KAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,SAG5F,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,QAAQ,GAAG,KAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAE5F,CAAC"}
@@ -1,15 +0,0 @@
1
- export interface InnerHtmlOptions {
2
- useShadow?: boolean;
3
- }
4
- export interface InnerHtmlMetadata {
5
- propertyKey: string | symbol;
6
- options: InnerHtmlOptions;
7
- }
8
- export declare const INNER_HTML_METADATA_KEY: unique symbol;
9
- /**
10
- * @onConnectedInnerHtml decorator to define the initial HTML content when connected.
11
- */
12
- export declare function onConnectedInnerHtml(options: InnerHtmlOptions): MethodDecorator;
13
- export declare function onConnectedInnerHtml(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;
14
- export declare const getOnConnectedInnerHtmlMetadata: (target: any) => InnerHtmlMetadata[] | undefined;
15
- //# sourceMappingURL=onConnectedInnerHtml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onConnectedInnerHtml.d.ts","sourceRoot":"","sources":["../../../src/decorators/onConnectedInnerHtml.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,uBAAuB,eAA4C,CAAC;AAEjF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAAC;AACjF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;AAqBzH,eAAO,MAAM,+BAA+B,GAAI,QAAQ,GAAG,KAAG,iBAAiB,EAAE,GAAG,SAGnF,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare const REPLACE_CHILDREN_METADATA_KEY: unique symbol;
2
- /**
3
- * @replaceChildren decorator to surgically replace children of a target element.
4
- * Usage: @replaceChildren('#container') renderPart() { return '<div>New Content</div>'; }
5
- */
6
- export declare function replaceChildren(selector: string): MethodDecorator;
7
- export declare const getReplaceChildrenMetadata: (target: any) => Map<string | symbol, string> | undefined;
8
- export declare const findAllReplaceChildrenMetadata: (target: any) => Map<string | symbol, string>;
9
- //# sourceMappingURL=replaceChildren.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replaceChildren.d.ts","sourceRoot":"","sources":["../../../src/decorators/replaceChildren.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,6BAA6B,eAAkD,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsCjE;AAED,eAAO,MAAM,0BAA0B,GAAI,QAAQ,GAAG,KAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,SAGvF,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,QAAQ,GAAG,KAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CASvF,CAAC"}
@@ -1,86 +0,0 @@
1
- import { ReflectUtils } from '@dooboostore/core';
2
- import { ensureInit, getElementConfig } from './elementDefine';
3
-
4
- export type AppendChildPosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd';
5
-
6
- export interface AppendChildOptions {
7
- position?: AppendChildPosition;
8
- }
9
-
10
- export interface AppendChildMetadata {
11
- propertyKey: string | symbol;
12
- selector: string;
13
- options: AppendChildOptions;
14
- }
15
-
16
- export const APPEND_CHILD_METADATA_KEY = Symbol('simple-web-component:append-child');
17
-
18
- const normalizeNodes = (res: any, doc: Document): Node[] => {
19
- const items = Array.isArray(res) ? res : [res];
20
- return items.map(it => {
21
- if (it instanceof Node) return it;
22
- return doc.createTextNode(it !== undefined && it !== null ? String(it) : '');
23
- });
24
- };
25
-
26
- /**
27
- * @appendChild decorator to surgically add nodes to a target element.
28
- * Usage: @appendChild('#list') addItem() { return '<li>New Item</li>'; }
29
- */
30
- export function appendChild(selector: string, options: AppendChildOptions = { position: 'beforeEnd' }): MethodDecorator {
31
- return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
32
- const constructor = target.constructor;
33
- let metaList = ReflectUtils.getOwnMetadata(APPEND_CHILD_METADATA_KEY, constructor) as Map<string | symbol, AppendChildMetadata>;
34
- if (!metaList) {
35
- metaList = new Map<string | symbol, AppendChildMetadata>();
36
- ReflectUtils.defineMetadata(APPEND_CHILD_METADATA_KEY, metaList, constructor);
37
- }
38
- metaList.set(propertyKey, { propertyKey, selector, options });
39
-
40
- const original = descriptor.value;
41
- descriptor.value = async function (...args: any[]) {
42
- ensureInit(this);
43
- const res = await original.apply(this, args);
44
- if (res !== undefined) {
45
- const conf = getElementConfig(this);
46
- const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);
47
- const currentDoc = currentWin.document;
48
-
49
- let targetEl: HTMLElement | null = null;
50
- if (selector === ':host' || !selector) {
51
- targetEl = this as any;
52
- } else {
53
- targetEl = (this.shadowRoot || (this as any)).querySelector(selector);
54
- }
55
-
56
- if (targetEl) {
57
- const nodes = normalizeNodes(res, currentDoc);
58
- const pos = options.position || 'beforeEnd';
59
-
60
- if (typeof res === 'string') {
61
- targetEl.insertAdjacentText(pos as InsertPosition, res);
62
- } else if (Array.isArray(res) && res.every(n => typeof n === 'string')) {
63
- targetEl.insertAdjacentText(pos as InsertPosition, res.join(''));
64
- } else {
65
- if (pos === 'beforeEnd') targetEl.append(...nodes);
66
- else if (pos === 'afterBegin') targetEl.prepend(...nodes);
67
- else if (pos === 'beforeBegin') targetEl.before(...nodes);
68
- else if (pos === 'afterEnd') targetEl.after(...nodes);
69
- }
70
- }
71
- }
72
- return res;
73
- };
74
- };
75
- }
76
-
77
- export const findAllAppendChildMetadata = (target: any): Map<string | symbol, AppendChildMetadata> => {
78
- const result = new Map<string | symbol, AppendChildMetadata>();
79
- const maps = ReflectUtils.findAllMetadata<Map<string | symbol, AppendChildMetadata>>(APPEND_CHILD_METADATA_KEY, target);
80
- maps.forEach(map => {
81
- if (map instanceof Map) {
82
- map.forEach((v, k) => result.set(k, v));
83
- }
84
- });
85
- return result;
86
- };
@@ -1,42 +0,0 @@
1
- import { ReflectUtils } from '@dooboostore/core';
2
-
3
- export interface InnerHtmlOptions {
4
- useShadow?: boolean;
5
- }
6
-
7
- export interface InnerHtmlMetadata {
8
- propertyKey: string | symbol;
9
- options: InnerHtmlOptions;
10
- }
11
-
12
- export const INNER_HTML_METADATA_KEY = Symbol('simple-web-component:inner-html');
13
-
14
- /**
15
- * @onConnectedInnerHtml decorator to define the initial HTML content when connected.
16
- */
17
- export function onConnectedInnerHtml(options: InnerHtmlOptions): MethodDecorator;
18
- export function onConnectedInnerHtml(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;
19
- export function onConnectedInnerHtml(arg1?: InnerHtmlOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {
20
- const decorator = (options: InnerHtmlOptions, target: Object, propertyKey: string | symbol) => {
21
- const constructor = target.constructor;
22
- let list = ReflectUtils.getMetadata<InnerHtmlMetadata[]>(INNER_HTML_METADATA_KEY, constructor);
23
- if (!list) {
24
- list = [];
25
- ReflectUtils.defineMetadata(INNER_HTML_METADATA_KEY, list, constructor);
26
- }
27
- list.push({ propertyKey, options });
28
- };
29
-
30
- if (arg2) {
31
- return decorator({}, arg1!, arg2);
32
- }
33
-
34
- return (target: Object, propertyKey: string | symbol) => {
35
- decorator((arg1 as InnerHtmlOptions) || {}, target, propertyKey);
36
- };
37
- }
38
-
39
- export const getOnConnectedInnerHtmlMetadata = (target: any): InnerHtmlMetadata[] | undefined => {
40
- const constructor = target instanceof Function ? target : target.constructor;
41
- return ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
42
- };
@@ -1,64 +0,0 @@
1
- import { ReflectUtils } from '@dooboostore/core';
2
- import { ensureInit, getElementConfig } from './elementDefine';
3
-
4
- export const REPLACE_CHILDREN_METADATA_KEY = Symbol('simple-web-component:replace-children');
5
-
6
- /**
7
- * @replaceChildren decorator to surgically replace children of a target element.
8
- * Usage: @replaceChildren('#container') renderPart() { return '<div>New Content</div>'; }
9
- */
10
- export function replaceChildren(selector: string): MethodDecorator {
11
- return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
12
- const constructor = target.constructor;
13
- let meta = ReflectUtils.getOwnMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor) as Map<string | symbol, string>;
14
- if (!meta) {
15
- meta = new Map<string | symbol, string>();
16
- ReflectUtils.defineMetadata(REPLACE_CHILDREN_METADATA_KEY, meta, constructor);
17
- }
18
- meta.set(propertyKey, selector);
19
-
20
- const original = descriptor.value;
21
- descriptor.value = async function (...args: any[]) {
22
- ensureInit(this);
23
- const res = await original.apply(this, args);
24
- if (res !== undefined) {
25
- const conf = getElementConfig(this);
26
- const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);
27
- const currentDoc = currentWin.document;
28
-
29
- let targetEl: Element | null = null;
30
- if (selector === ':host' || !selector) {
31
- targetEl = this as any;
32
- } else {
33
- targetEl = (this.shadowRoot || (this as any)).querySelector(selector);
34
- }
35
-
36
- if (targetEl) {
37
- if (typeof res === 'string') {
38
- targetEl.textContent = res;
39
- } else {
40
- const nodes: Node[] = Array.isArray(res) ? res.map(n => (typeof n === 'string' ? currentDoc.createTextNode(n) : n)) : [res as Node];
41
- (targetEl as any).replaceChildren(...nodes);
42
- }
43
- }
44
- }
45
- return res;
46
- };
47
- };
48
- }
49
-
50
- export const getReplaceChildrenMetadata = (target: any): Map<string | symbol, string> | undefined => {
51
- const constructor = target instanceof Function ? target : target.constructor;
52
- return ReflectUtils.getMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);
53
- };
54
-
55
- export const findAllReplaceChildrenMetadata = (target: any): Map<string | symbol, string> => {
56
- const result = new Map<string | symbol, string>();
57
- const maps = ReflectUtils.findAllMetadata<Map<string | symbol, string>>(REPLACE_CHILDREN_METADATA_KEY, target);
58
- maps.forEach(map => {
59
- if (map instanceof Map) {
60
- map.forEach((v, k) => result.set(k, v));
61
- }
62
- });
63
- return result;
64
- };