@dooboostore/simple-web-component 1.0.24 → 1.0.26

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 (130) hide show
  1. package/README.md +162 -33
  2. package/dist/cjs/decorators/addEventListener.js +1 -1
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/applyAttribute.js +148 -0
  5. package/dist/cjs/decorators/applyAttribute.js.map +7 -0
  6. package/dist/cjs/decorators/applyClass.js +164 -0
  7. package/dist/cjs/decorators/applyClass.js.map +7 -0
  8. package/dist/cjs/decorators/applyNode.js +87 -194
  9. package/dist/cjs/decorators/applyNode.js.map +2 -2
  10. package/dist/cjs/decorators/{style.js → applyStyle.js} +50 -60
  11. package/dist/cjs/decorators/applyStyle.js.map +7 -0
  12. package/dist/cjs/decorators/attribute.js +10 -16
  13. package/dist/cjs/decorators/attribute.js.map +2 -2
  14. package/dist/cjs/decorators/changedAttributeHost.js +1 -1
  15. package/dist/cjs/decorators/changedAttributeHost.js.map +2 -2
  16. package/dist/cjs/decorators/elementDefine.js +14 -23
  17. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  18. package/dist/cjs/decorators/emitCustomEvent.js +5 -2
  19. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  20. package/dist/cjs/decorators/index.js +3 -3
  21. package/dist/cjs/decorators/index.js.map +2 -2
  22. package/dist/cjs/decorators/lifecycles.js +9 -9
  23. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  24. package/dist/cjs/decorators/query.js +1 -1
  25. package/dist/cjs/decorators/query.js.map +2 -2
  26. package/dist/cjs/decorators/queryAll.js +1 -1
  27. package/dist/cjs/decorators/queryAll.js.map +2 -2
  28. package/dist/cjs/elements/SwcAppEngine.js +19 -4
  29. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  30. package/dist/cjs/elements/SwcAppMixin.js +2 -0
  31. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  32. package/dist/cjs/utils/Utils.js +1 -1
  33. package/dist/cjs/utils/Utils.js.map +2 -2
  34. package/dist/esm/decorators/addEventListener.js +1 -1
  35. package/dist/esm/decorators/addEventListener.js.map +2 -2
  36. package/dist/esm/decorators/applyAttribute.js +129 -0
  37. package/dist/esm/decorators/applyAttribute.js.map +7 -0
  38. package/dist/esm/decorators/applyClass.js +145 -0
  39. package/dist/esm/decorators/applyClass.js.map +7 -0
  40. package/dist/esm/decorators/applyNode.js +87 -194
  41. package/dist/esm/decorators/applyNode.js.map +2 -2
  42. package/dist/esm/decorators/{style.js → applyStyle.js} +47 -57
  43. package/dist/esm/decorators/applyStyle.js.map +7 -0
  44. package/dist/esm/decorators/attribute.js +10 -16
  45. package/dist/esm/decorators/attribute.js.map +2 -2
  46. package/dist/esm/decorators/changedAttributeHost.js +1 -1
  47. package/dist/esm/decorators/changedAttributeHost.js.map +2 -2
  48. package/dist/esm/decorators/elementDefine.js +14 -23
  49. package/dist/esm/decorators/elementDefine.js.map +2 -2
  50. package/dist/esm/decorators/emitCustomEvent.js +5 -2
  51. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  52. package/dist/esm/decorators/index.js +3 -3
  53. package/dist/esm/decorators/index.js.map +1 -1
  54. package/dist/esm/decorators/lifecycles.js +9 -9
  55. package/dist/esm/decorators/lifecycles.js.map +2 -2
  56. package/dist/esm/decorators/query.js +1 -1
  57. package/dist/esm/decorators/query.js.map +2 -2
  58. package/dist/esm/decorators/queryAll.js +1 -1
  59. package/dist/esm/decorators/queryAll.js.map +2 -2
  60. package/dist/esm/elements/SwcAppEngine.js +19 -4
  61. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  62. package/dist/esm/elements/SwcAppMixin.js +2 -0
  63. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  64. package/dist/esm/utils/Utils.js +1 -1
  65. package/dist/esm/utils/Utils.js.map +2 -2
  66. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +2853 -574
  67. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  68. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  69. package/dist/types/decorators/applyAttribute.d.ts +22 -0
  70. package/dist/types/decorators/applyAttribute.d.ts.map +1 -0
  71. package/dist/types/decorators/applyClass.d.ts +65 -0
  72. package/dist/types/decorators/applyClass.d.ts.map +1 -0
  73. package/dist/types/decorators/applyNode.d.ts +15 -123
  74. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  75. package/dist/types/decorators/applyStyle.d.ts +21 -0
  76. package/dist/types/decorators/applyStyle.d.ts.map +1 -0
  77. package/dist/types/decorators/attribute.d.ts +10 -19
  78. package/dist/types/decorators/attribute.d.ts.map +1 -1
  79. package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -1
  80. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  81. package/dist/types/decorators/emitCustomEvent.d.ts +1 -1
  82. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  83. package/dist/types/decorators/index.d.ts +3 -3
  84. package/dist/types/decorators/index.d.ts.map +1 -1
  85. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  86. package/dist/types/decorators/query.d.ts.map +1 -1
  87. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  88. package/dist/types/elements/SwcAppEngine.d.ts +7 -0
  89. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  90. package/dist/types/elements/SwcAppMixin.d.ts +1 -1
  91. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  92. package/dist/types/utils/Utils.d.ts.map +1 -1
  93. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +2853 -574
  94. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  95. package/package.json +2 -2
  96. package/src/decorators/addEventListener.ts +1 -1
  97. package/src/decorators/applyAttribute.ts +147 -0
  98. package/src/decorators/applyClass.ts +158 -0
  99. package/src/decorators/applyNode.ts +112 -330
  100. package/src/decorators/applyStyle.ts +128 -0
  101. package/src/decorators/attribute.ts +21 -55
  102. package/src/decorators/changedAttributeHost.ts +1 -1
  103. package/src/decorators/elementDefine.ts +18 -39
  104. package/src/decorators/emitCustomEvent.ts +6 -3
  105. package/src/decorators/index.ts +3 -3
  106. package/src/decorators/lifecycles.ts +9 -11
  107. package/src/decorators/query.ts +1 -1
  108. package/src/decorators/queryAll.ts +1 -1
  109. package/src/elements/SwcAppEngine.ts +32 -4
  110. package/src/elements/SwcAppMixin.ts +2 -0
  111. package/src/utils/Utils.ts +2 -1
  112. package/dist/cjs/decorators/classList.js +0 -177
  113. package/dist/cjs/decorators/classList.js.map +0 -7
  114. package/dist/cjs/decorators/setAttribute.js +0 -111
  115. package/dist/cjs/decorators/setAttribute.js.map +0 -7
  116. package/dist/cjs/decorators/style.js.map +0 -7
  117. package/dist/esm/decorators/classList.js +0 -158
  118. package/dist/esm/decorators/classList.js.map +0 -7
  119. package/dist/esm/decorators/setAttribute.js +0 -92
  120. package/dist/esm/decorators/setAttribute.js.map +0 -7
  121. package/dist/esm/decorators/style.js.map +0 -7
  122. package/dist/types/decorators/classList.d.ts +0 -71
  123. package/dist/types/decorators/classList.d.ts.map +0 -1
  124. package/dist/types/decorators/setAttribute.d.ts +0 -23
  125. package/dist/types/decorators/setAttribute.d.ts.map +0 -1
  126. package/dist/types/decorators/style.d.ts +0 -58
  127. package/dist/types/decorators/style.d.ts.map +0 -1
  128. package/src/decorators/classList.ts +0 -234
  129. package/src/decorators/setAttribute.ts +0 -114
  130. package/src/decorators/style.ts +0 -185
@@ -0,0 +1,164 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var applyClass_exports = {};
19
+ __export(applyClass_exports, {
20
+ CLASS_METADATA_KEY: () => CLASS_METADATA_KEY,
21
+ addClass: () => addClass,
22
+ addClassHost: () => addClassHost,
23
+ applyClass: () => applyClass,
24
+ applyClassHost: () => applyClassHost,
25
+ findAllClassMetadata: () => findAllClassMetadata,
26
+ removeClass: () => removeClass,
27
+ removeClassHost: () => removeClassHost,
28
+ setClass: () => setClass,
29
+ setClassHost: () => setClassHost,
30
+ toggleClass: () => toggleClass,
31
+ toggleClassHost: () => toggleClassHost,
32
+ updateClass: () => updateClass,
33
+ updateClassHost: () => updateClassHost
34
+ });
35
+ module.exports = __toCommonJS(applyClass_exports);
36
+ var import_core = require("@dooboostore/core");
37
+ var import_elementDefine = require("./elementDefine");
38
+ var import_Utils = require("../utils/Utils");
39
+ const CLASS_METADATA_KEY = Symbol.for("simple-web-component:class");
40
+ function createClassDecorator(action) {
41
+ return (selector, classMapOrOptions, options = {}) => {
42
+ return (target, propertyKey, descriptor) => {
43
+ const constructor = target.constructor;
44
+ let metaList = import_core.ReflectUtils.getOwnMetadata(CLASS_METADATA_KEY, constructor);
45
+ if (!metaList) {
46
+ metaList = /* @__PURE__ */ new Map();
47
+ import_core.ReflectUtils.defineMetadata(CLASS_METADATA_KEY, metaList, constructor);
48
+ }
49
+ let classMap = void 0;
50
+ let finalOptions = options;
51
+ if (typeof classMapOrOptions === "string" || typeof classMapOrOptions === "object" && classMapOrOptions !== null && !("root" in classMapOrOptions)) {
52
+ classMap = classMapOrOptions;
53
+ } else if (typeof classMapOrOptions === "object" && classMapOrOptions !== null && "root" in classMapOrOptions) {
54
+ finalOptions = classMapOrOptions;
55
+ }
56
+ metaList.set(propertyKey, { propertyKey, selector, action, options: finalOptions });
57
+ const original = descriptor.value;
58
+ descriptor.value = async function(...args) {
59
+ (0, import_elementDefine.ensureInit)(this);
60
+ const res = await original.apply(this, args);
61
+ if (res !== void 0) {
62
+ const win = this.ownerDocument?.defaultView || window;
63
+ const host = this;
64
+ const hostSet = { ...import_Utils.SwcUtils.getHelperAndHostSet(win, host), $this: this };
65
+ const r = finalOptions.root || "auto";
66
+ const targetEls = [];
67
+ const applyRoot = (t) => {
68
+ if (!t || !(t instanceof win.HTMLElement)) return;
69
+ targetEls.push(t);
70
+ };
71
+ if (selector === ":parentHost") applyRoot(hostSet.$parentHost);
72
+ else if (selector === ":appHost") applyRoot(hostSet.$appHost);
73
+ else if (selector === ":firstHost") applyRoot(hostSet.$firstHost);
74
+ else if (selector === ":lastHost") applyRoot(hostSet.$lastHost);
75
+ else if (selector === ":firstAppHost") applyRoot(hostSet.$firstAppHost);
76
+ else if (selector === ":lastAppHost") applyRoot(hostSet.$lastAppHost);
77
+ else if (selector === ":hosts") hostSet.$hosts.forEach(applyRoot);
78
+ else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRoot);
79
+ else if (selector === ":host" || !selector) applyRoot(host);
80
+ else {
81
+ const targetRoot = r === "auto" ? host.shadowRoot || host : r === "shadow" ? host.shadowRoot : host;
82
+ if (targetRoot) {
83
+ const found = targetRoot.querySelectorAll(selector);
84
+ if (found) targetEls.push(...Array.from(found));
85
+ }
86
+ }
87
+ targetEls.forEach((targetEl) => {
88
+ const resolvedRes = typeof res === "function" ? res(targetEl, hostSet) : res;
89
+ if (action === "set") {
90
+ let classes = "";
91
+ if (classMap && typeof classMap === "string") {
92
+ classes = resolvedRes ? classMap : "";
93
+ } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
94
+ classes = Object.entries(resolvedRes).filter(([_, force]) => typeof force === "function" ? force(targetEl, hostSet) : !!force).map(([cls]) => cls).join(" ");
95
+ } else {
96
+ classes = Array.isArray(resolvedRes) ? resolvedRes.join(" ") : String(resolvedRes);
97
+ }
98
+ targetEl.className = classes;
99
+ } else if (action === "update" || action === "toggle") {
100
+ if (classMap && typeof classMap === "string") {
101
+ targetEl.classList.toggle(classMap, !!resolvedRes);
102
+ } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
103
+ Object.entries(resolvedRes).forEach(([cls, force]) => {
104
+ const isActive = typeof force === "function" ? force(targetEl, hostSet) : !!force;
105
+ targetEl.classList.toggle(cls, isActive);
106
+ });
107
+ } else {
108
+ const classes = Array.isArray(resolvedRes) ? resolvedRes.map(String) : [String(resolvedRes)];
109
+ if (action === "update") targetEl.classList.add(...classes);
110
+ else classes.forEach((c) => targetEl.classList.toggle(c));
111
+ }
112
+ } else if (action === "add" || action === "remove") {
113
+ if (classMap && typeof classMap === "string" && !!resolvedRes) {
114
+ if (action === "add") targetEl.classList.add(classMap);
115
+ else targetEl.classList.remove(classMap);
116
+ } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
117
+ Object.entries(resolvedRes).forEach(([cls, force]) => {
118
+ const shouldExecute = typeof force === "function" ? force(targetEl, hostSet) : !!force;
119
+ if (shouldExecute) {
120
+ if (action === "add") targetEl.classList.add(cls);
121
+ else targetEl.classList.remove(cls);
122
+ }
123
+ });
124
+ } else {
125
+ const classes = Array.isArray(resolvedRes) ? resolvedRes.map(String) : [String(resolvedRes)];
126
+ if (action === "add") targetEl.classList.add(...classes);
127
+ else targetEl.classList.remove(...classes);
128
+ }
129
+ }
130
+ });
131
+ }
132
+ return res;
133
+ };
134
+ return descriptor;
135
+ };
136
+ };
137
+ }
138
+ function applyClass(selector, action = "update", options = {}) {
139
+ return createClassDecorator(action)(selector, options);
140
+ }
141
+ const setClass = (selector, classMapOrOptions, options = {}) => createClassDecorator("set")(selector, classMapOrOptions, options);
142
+ const updateClass = (selector, classMapOrOptions, options = {}) => createClassDecorator("update")(selector, classMapOrOptions, options);
143
+ const addClass = (selector, classMapOrOptions, options = {}) => createClassDecorator("add")(selector, classMapOrOptions, options);
144
+ const removeClass = (selector, classMapOrOptions, options = {}) => createClassDecorator("remove")(selector, classMapOrOptions, options);
145
+ const toggleClass = (selector, classMapOrOptions, options = {}) => createClassDecorator("toggle")(selector, classMapOrOptions, options);
146
+ function applyClassHost(action = "update", options = {}) {
147
+ return createClassDecorator(action)(":host", options);
148
+ }
149
+ const setClassHost = (classMapOrOptions, options = {}) => createClassDecorator("set")(":host", classMapOrOptions, options);
150
+ const updateClassHost = (classMapOrOptions, options = {}) => createClassDecorator("update")(":host", classMapOrOptions, options);
151
+ const addClassHost = (classMapOrOptions, options = {}) => createClassDecorator("add")(":host", classMapOrOptions, options);
152
+ const removeClassHost = (classMapOrOptions, options = {}) => createClassDecorator("remove")(":host", classMapOrOptions, options);
153
+ const toggleClassHost = (classMapOrOptions, options = {}) => createClassDecorator("toggle")(":host", classMapOrOptions, options);
154
+ const findAllClassMetadata = (target) => {
155
+ const result = /* @__PURE__ */ new Map();
156
+ const maps = import_core.ReflectUtils.findAllMetadata(CLASS_METADATA_KEY, target);
157
+ maps.forEach((map) => {
158
+ if (map instanceof Map) {
159
+ map.forEach((v, k) => result.set(k, v));
160
+ }
161
+ });
162
+ return result;
163
+ };
164
+ //# sourceMappingURL=applyClass.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/decorators/applyClass.ts"],
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions, HelperHostSet } from '../types';\n\nexport const CLASS_METADATA_KEY = Symbol.for('simple-web-component:class');\n\nexport type ClassAction = 'set' | 'update' | 'add' | 'remove' | 'toggle';\n\nexport interface ClassApplyOptions extends SwcQueryOptions {}\n\nexport interface ClassApplyMetadata {\n propertyKey: string | symbol;\n selector: string;\n action: ClassAction;\n options: ClassApplyOptions;\n}\n\nfunction createClassDecorator(action: ClassAction) {\n return (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}): MethodDecorator => {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(CLASS_METADATA_KEY, constructor) as Map<string | symbol, ClassApplyMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ClassApplyMetadata>();\n ReflectUtils.defineMetadata(CLASS_METADATA_KEY, metaList, constructor);\n }\n\n let classMap: any = undefined;\n let finalOptions = options;\n\n if (typeof classMapOrOptions === 'string' || (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && !('root' in classMapOrOptions))) {\n classMap = classMapOrOptions;\n } else if (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && 'root' in classMapOrOptions) {\n finalOptions = classMapOrOptions as ClassApplyOptions;\n }\n\n metaList.set(propertyKey, { propertyKey, selector, action, options: finalOptions });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await (original as any).apply(this, args);\n if (res !== undefined) {\n const win = (this as any).ownerDocument?.defaultView || window;\n const host = this as unknown as HTMLElement;\n const hostSet = { ...SwcUtils.getHelperAndHostSet(win, host), $this: this };\n const r = finalOptions.root || 'auto';\n const targetEls: HTMLElement[] = [];\n\n const applyRoot = (t: any) => {\n if (!t || !(t instanceof win.HTMLElement)) return;\n targetEls.push(t);\n };\n\n if (selector === ':parentHost') applyRoot(hostSet.$parentHost);\n else if (selector === ':appHost') applyRoot(hostSet.$appHost);\n else if (selector === ':firstHost') applyRoot(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRoot(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRoot(hostSet.$firstAppHost);\n else if (selector === ':lastAppHost') applyRoot(hostSet.$lastAppHost);\n else if (selector === ':hosts') hostSet.$hosts.forEach(applyRoot);\n else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRoot);\n else if (selector === ':host' || !selector) applyRoot(host);\n else {\n const targetRoot = r === 'auto' ? (host.shadowRoot || host) : (r === 'shadow' ? host.shadowRoot : host);\n if (targetRoot) {\n const found = targetRoot.querySelectorAll(selector);\n if (found) targetEls.push(...(Array.from(found) as HTMLElement[]));\n }\n }\n\n targetEls.forEach(targetEl => {\n const resolvedRes = typeof res === 'function' ? (res as any)(targetEl, hostSet) : res;\n\n if (action === 'set') {\n let classes = '';\n if (classMap && typeof classMap === 'string') {\n classes = resolvedRes ? classMap : '';\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n classes = Object.entries(resolvedRes as any)\n .filter(([_, force]) => typeof force === 'function' ? force(targetEl, hostSet) : !!force)\n .map(([cls]) => cls)\n .join(' ');\n } else {\n classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).join(' ') : String(resolvedRes);\n }\n targetEl.className = classes;\n } else if (action === 'update' || action === 'toggle') {\n if (classMap && typeof classMap === 'string') {\n targetEl.classList.toggle(classMap, !!resolvedRes);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const isActive = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n targetEl.classList.toggle(cls, isActive);\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'update') targetEl.classList.add(...classes);\n else classes.forEach(c => targetEl.classList.toggle(c));\n }\n } else if (action === 'add' || action === 'remove') {\n if (classMap && typeof classMap === 'string' && !!resolvedRes) {\n if (action === 'add') targetEl.classList.add(classMap);\n else targetEl.classList.remove(classMap);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const shouldExecute = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n if (shouldExecute) {\n if (action === 'add') targetEl.classList.add(cls);\n else targetEl.classList.remove(cls);\n }\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'add') targetEl.classList.add(...classes);\n else targetEl.classList.remove(...classes);\n }\n }\n });\n }\n return res;\n };\n return descriptor;\n };\n };\n}\n\nexport function applyClass(selector: string, action: ClassAction = 'update', options: ClassApplyOptions = {}): MethodDecorator {\n return createClassDecorator(action)(selector, options);\n}\n\nexport const setClass = (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('set')(selector, classMapOrOptions, options);\nexport const updateClass = (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('update')(selector, classMapOrOptions, options);\nexport const addClass = (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('add')(selector, classMapOrOptions, options);\nexport const removeClass = (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('remove')(selector, classMapOrOptions, options);\nexport const toggleClass = (selector: string, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('toggle')(selector, classMapOrOptions, options);\n\n// Host versions\nexport function applyClassHost(action: ClassAction = 'update', options: ClassApplyOptions = {}): MethodDecorator {\n return createClassDecorator(action)(':host', options);\n}\nexport const setClassHost = (classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('set')(':host', classMapOrOptions, options);\nexport const updateClassHost = (classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('update')(':host', classMapOrOptions, options);\nexport const addClassHost = (classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('add')(':host', classMapOrOptions, options);\nexport const removeClassHost = (classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('remove')(':host', classMapOrOptions, options);\nexport const toggleClassHost = (classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}) => createClassDecorator('toggle')(':host', classMapOrOptions, options);\n\nexport const findAllClassMetadata = (target: any): Map<string | symbol, ClassApplyMetadata> => {\n const result = new Map<string | symbol, ClassApplyMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ClassApplyMetadata>>(CLASS_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": "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",
6
+ "names": []
7
+ }
@@ -18,44 +18,54 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
18
18
  var applyNode_exports = {};
19
19
  __export(applyNode_exports, {
20
20
  APPLY_NODE_METADATA_KEY: () => APPLY_NODE_METADATA_KEY,
21
- applyAfterBeginNode: () => applyAfterBeginNode,
22
- applyAfterBeginNodeHost: () => applyAfterBeginNodeHost,
23
- applyAfterEndNode: () => applyAfterEndNode,
24
- applyAfterEndNodeHost: () => applyAfterEndNodeHost,
25
- applyBeforeBeginNode: () => applyBeforeBeginNode,
26
- applyBeforeBeginNodeHost: () => applyBeforeBeginNodeHost,
27
- applyBeforeEndNode: () => applyBeforeEndNode,
28
- applyBeforeEndNodeHost: () => applyBeforeEndNodeHost,
29
21
  applyInnerHtmlNode: () => applyInnerHtmlNode,
30
22
  applyInnerHtmlNodeHost: () => applyInnerHtmlNodeHost,
31
- applyInnerTextNode: () => applyInnerTextNode,
32
- applyInnerTextNodeHost: () => applyInnerTextNodeHost,
33
23
  applyNode: () => applyNode,
34
24
  applyNodeHost: () => applyNodeHost,
35
- applyRemoveNode: () => applyRemoveNode,
36
- applyRemoveNodeHost: () => applyRemoveNodeHost,
37
25
  applyReplaceChildrenNode: () => applyReplaceChildrenNode,
38
26
  applyReplaceChildrenNodeHost: () => applyReplaceChildrenNodeHost,
39
- applyReplaceNode: () => applyReplaceNode,
40
- applyReplaceNodeHost: () => applyReplaceNodeHost,
41
27
  findAllApplyNodeMetadata: () => findAllApplyNodeMetadata
42
28
  });
43
29
  module.exports = __toCommonJS(applyNode_exports);
44
30
  var import_core = require("@dooboostore/core");
45
31
  var import_elementDefine = require("./elementDefine");
46
32
  var import_Utils = require("../utils/Utils");
47
- const APPLY_NODE_METADATA_KEY = Symbol("simple-web-component:apply-node");
33
+ const APPLY_NODE_METADATA_KEY = Symbol.for("simple-web-component:apply-node");
48
34
  const normalizeNodes = (res, doc) => {
49
35
  const items = Array.isArray(res) ? res : [res];
50
36
  return items.map((it) => {
51
- if (it instanceof Node)
52
- return it;
37
+ if (it instanceof Node) return it;
53
38
  return doc.createTextNode(it !== void 0 && it !== null ? String(it) : "");
54
39
  });
55
40
  };
41
+ const applyToDom = (targetEl, res, pos, doc) => {
42
+ if (!targetEl) return;
43
+ if (pos === "innerHtml") {
44
+ targetEl.innerHTML = res !== void 0 && res !== null ? String(res) : "";
45
+ return;
46
+ }
47
+ if (pos === "innerText") {
48
+ if (targetEl.innerText !== void 0) {
49
+ targetEl.innerText = res !== void 0 && res !== null ? String(res) : "";
50
+ }
51
+ return;
52
+ }
53
+ const isShadowRoot = targetEl instanceof ShadowRoot;
54
+ const nodes = normalizeNodes(res, doc);
55
+ if (pos === "replace") {
56
+ if (!isShadowRoot) targetEl.replaceWith(...nodes);
57
+ } else if (pos === "replaceChildren") {
58
+ targetEl.replaceChildren(...nodes);
59
+ } else {
60
+ if (pos === "beforeEnd") targetEl.append(...nodes);
61
+ else if (pos === "afterBegin") targetEl.prepend(...nodes);
62
+ else if (pos === "beforeBegin" && !isShadowRoot) targetEl.before(...nodes);
63
+ else if (pos === "afterEnd" && !isShadowRoot) targetEl.after(...nodes);
64
+ }
65
+ };
56
66
  function applyNode(selector, options = { position: "beforeEnd" }) {
57
- return (target, propertyKey, descriptor) => {
58
- const constructor = target.constructor;
67
+ return (targetObj, propertyKey, descriptor) => {
68
+ const constructor = targetObj.constructor;
59
69
  let metaList = import_core.ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor);
60
70
  if (!metaList) {
61
71
  metaList = /* @__PURE__ */ new Map();
@@ -63,94 +73,58 @@ function applyNode(selector, options = { position: "beforeEnd" }) {
63
73
  }
64
74
  metaList.set(propertyKey, { propertyKey, selector, options });
65
75
  const original = descriptor.value;
66
- descriptor.value = async function(...args) {
76
+ descriptor.value = function(...args) {
67
77
  (0, import_elementDefine.ensureInit)(this);
68
- const res = await original.apply(this, args);
69
- if (res !== void 0) {
70
- const conf = (0, import_elementDefine.getElementConfig)(this);
71
- const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
72
- const currentDoc = currentWin.document;
73
- const pos = options.position || "beforeEnd";
78
+ const conf = (0, import_elementDefine.getElementConfig)(this);
79
+ const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
80
+ const currentDoc = currentWin.document;
81
+ const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(currentWin, this);
82
+ const getTarget = () => {
74
83
  const r = options.root || "auto";
75
84
  const applyRoot = (t) => {
76
- if (!t || !(t instanceof HTMLElement))
77
- return t;
78
- if (r === "auto")
79
- return t.shadowRoot || t;
80
- if (r === "shadow")
81
- return t.shadowRoot;
82
- if (r === "light")
83
- return t;
84
- if (r === "all")
85
- return t.shadowRoot || t;
85
+ if (!t) return t;
86
+ if (r === "auto") return t.shadowRoot || t;
87
+ if (r === "shadow") return t.shadowRoot;
88
+ if (r === "light") return t;
89
+ if (r === "all") return t.shadowRoot || t;
86
90
  return t;
87
91
  };
88
- const hostSet = import_Utils.SwcUtils.getHostSet(this);
89
- if (pos === "remove") {
90
- if (res) {
91
- if (selector === ":host" || !selector) {
92
- if (r === "shadow" && this.shadowRoot) {
93
- this.shadowRoot.replaceChildren();
94
- } else {
95
- this.remove();
96
- }
97
- } else {
98
- const targetRoot = applyRoot(this);
99
- if (targetRoot) {
100
- const targets = targetRoot.querySelectorAll(selector);
101
- targets.forEach((el) => el.remove());
102
- }
103
- }
104
- }
105
- } else {
106
- let targetEl = null;
107
- if (selector === ":host") {
108
- targetEl = applyRoot(this);
109
- } else if (selector === ":parentHost") {
110
- targetEl = applyRoot(hostSet.$parentHost);
111
- } else if (selector === ":appHost") {
112
- targetEl = applyRoot(hostSet.$appHost);
113
- } else if (selector === ":firstHost") {
114
- targetEl = applyRoot(hostSet.$firstHost);
115
- } else if (selector === ":lastHost") {
116
- targetEl = applyRoot(hostSet.$lastHost);
117
- } else if (selector === ":firstAppHost") {
118
- targetEl = applyRoot(hostSet.$firstHost);
119
- } else if (selector === ":lastAppHost") {
120
- targetEl = applyRoot(hostSet.$lastAppHost);
121
- } else {
122
- const targetRoot = applyRoot(this);
123
- targetEl = targetRoot ? targetRoot.querySelector(selector) : null;
124
- }
125
- if (targetEl) {
126
- const isShadowRoot = targetEl instanceof ShadowRoot;
127
- const nodes = normalizeNodes(res, currentDoc);
128
- if (pos === "replace") {
129
- if (!isShadowRoot) {
130
- targetEl.replaceWith(...nodes);
131
- }
132
- } else if (pos === "replaceChildren") {
133
- targetEl.replaceChildren(...nodes);
134
- } else if (pos === "innerHtml") {
135
- targetEl.innerHTML = res !== void 0 && res !== null ? String(res) : "";
136
- } else if (pos === "innerText") {
137
- if (targetEl.innerText !== void 0) {
138
- targetEl.innerText = res !== void 0 && res !== null ? String(res) : "";
139
- }
140
- } else {
141
- if (pos === "beforeEnd")
142
- targetEl.append(...nodes);
143
- else if (pos === "afterBegin")
144
- targetEl.prepend(...nodes);
145
- else if (pos === "beforeBegin" && !isShadowRoot)
146
- targetEl.before(...nodes);
147
- else if (pos === "afterEnd" && !isShadowRoot)
148
- targetEl.after(...nodes);
149
- }
150
- }
92
+ if (selector === ":host") return applyRoot(this);
93
+ if (selector === ":parentHost") return applyRoot(hostSet.$parentHost);
94
+ if (selector === ":appHost") return applyRoot(hostSet.$appHost);
95
+ if (selector === ":firstHost") return applyRoot(hostSet.$firstHost);
96
+ if (selector === ":lastHost") return applyRoot(hostSet.$lastHost);
97
+ const targetRoot = applyRoot(this);
98
+ return targetRoot ? targetRoot.querySelector(selector) : null;
99
+ };
100
+ const targetEl = getTarget();
101
+ const res = original.apply(this, args);
102
+ const runApply = (target, val) => {
103
+ const pos = options.position || "beforeEnd";
104
+ const defaultFilter = (t, v) => {
105
+ if (v instanceof Node) return !t.contains(v);
106
+ if (pos === "innerHtml" && typeof v === "string") return t.innerHTML !== v;
107
+ if (pos === "replaceChildren" && v instanceof Node) return !t.contains(v);
108
+ return true;
109
+ };
110
+ const activeFilter = options.filter || defaultFilter;
111
+ if (activeFilter(target, val, hostSet)) {
112
+ applyToDom(target, val, pos, currentDoc);
151
113
  }
114
+ };
115
+ if (res instanceof Promise) {
116
+ if (targetEl && options.loading) {
117
+ const loadingRes = options.loading.call(this, hostSet);
118
+ applyToDom(targetEl, loadingRes, options.position || "beforeEnd", currentDoc);
119
+ }
120
+ return res.then((finalRes) => {
121
+ if (finalRes !== void 0 && targetEl) runApply(targetEl, finalRes);
122
+ return finalRes;
123
+ });
124
+ } else {
125
+ if (res !== void 0 && targetEl) runApply(targetEl, res);
126
+ return res;
152
127
  }
153
- return res;
154
128
  };
155
129
  };
156
130
  }
@@ -165,105 +139,24 @@ const findAllApplyNodeMetadata = (target) => {
165
139
  return result;
166
140
  };
167
141
  function applyNodeHost(targetOrOptions, propertyKey, descriptor) {
168
- console.log("vvvvv");
169
- if (propertyKey !== void 0 && typeof propertyKey === "string" || typeof propertyKey === "symbol") {
170
- return applyNode(":host", { position: "beforeEnd" })(targetOrOptions, propertyKey, descriptor);
171
- }
172
- if (typeof targetOrOptions === "object" && targetOrOptions !== null) {
173
- const options = targetOrOptions;
174
- return applyNode(":host", { ...options, position: options.position || "beforeEnd" });
175
- } else {
176
- return applyNode(":host", { position: "beforeEnd" });
177
- }
178
- }
179
- function applyBeforeBeginNode(selector, options) {
180
- return applyNode(selector, { ...options, position: "beforeBegin" });
142
+ if (propertyKey !== void 0) return applyNode(":host", { position: "beforeEnd" })(targetOrOptions, propertyKey, descriptor);
143
+ const opt = targetOrOptions || {};
144
+ return applyNode(":host", { position: "beforeEnd", ...opt });
181
145
  }
182
- function applyAfterBeginNode(selector, options) {
183
- return applyNode(selector, { ...options, position: "afterBegin" });
146
+ function applyReplaceChildrenNodeHost(targetOrOptions, propertyKey, descriptor) {
147
+ if (propertyKey !== void 0) return applyNode(":host", { position: "replaceChildren" })(targetOrOptions, propertyKey, descriptor);
148
+ const opt = targetOrOptions || {};
149
+ return applyNode(":host", { position: "replaceChildren", ...opt });
184
150
  }
185
- function applyBeforeEndNode(selector, options) {
186
- return applyNode(selector, { ...options, position: "beforeEnd" });
151
+ function applyInnerHtmlNodeHost(targetOrOptions, propertyKey, descriptor) {
152
+ if (propertyKey !== void 0) return applyNode(":host", { position: "innerHtml" })(targetOrOptions, propertyKey, descriptor);
153
+ const opt = targetOrOptions || {};
154
+ return applyNode(":host", { position: "innerHtml", ...opt });
187
155
  }
188
- function applyAfterEndNode(selector, options) {
189
- return applyNode(selector, { ...options, position: "afterEnd" });
190
- }
191
- function applyReplaceNode(selector, options) {
192
- return applyNode(selector, { ...options, position: "replace" });
193
- }
194
- function applyReplaceChildrenNode(selector, options) {
156
+ function applyReplaceChildrenNode(selector, options = {}) {
195
157
  return applyNode(selector, { ...options, position: "replaceChildren" });
196
158
  }
197
- function applyInnerHtmlNode(selector, options) {
159
+ function applyInnerHtmlNode(selector, options = {}) {
198
160
  return applyNode(selector, { ...options, position: "innerHtml" });
199
161
  }
200
- function applyInnerTextNode(selector, options) {
201
- return applyNode(selector, { ...options, position: "innerText" });
202
- }
203
- function applyRemoveNode(selector, options) {
204
- return applyNode(selector, { ...options, position: "remove" });
205
- }
206
- function applyBeforeBeginNodeHost(targetOrOptions, propertyKey, descriptor) {
207
- if (propertyKey !== void 0) {
208
- const decorator = applyNode(":host", { position: "beforeBegin" });
209
- return decorator(targetOrOptions, propertyKey, descriptor);
210
- }
211
- return applyNode(":host", { ...targetOrOptions || {}, position: "beforeBegin" });
212
- }
213
- function applyAfterBeginNodeHost(optionsOrTarget, propertyKey, descriptor) {
214
- if (propertyKey !== void 0) {
215
- const decorator = applyNode(":host", { position: "afterBegin" });
216
- return decorator(optionsOrTarget, propertyKey, descriptor);
217
- }
218
- return applyNode(":host", { ...optionsOrTarget || {}, position: "afterBegin" });
219
- }
220
- function applyBeforeEndNodeHost(optionsOrTarget, propertyKey, descriptor) {
221
- if (propertyKey !== void 0) {
222
- const decorator = applyNode(":host", { position: "beforeEnd" });
223
- return decorator(optionsOrTarget, propertyKey, descriptor);
224
- }
225
- return applyNode(":host", { ...optionsOrTarget || {}, position: "beforeEnd" });
226
- }
227
- function applyAfterEndNodeHost(optionsOrTarget, propertyKey, descriptor) {
228
- if (propertyKey !== void 0) {
229
- const decorator = applyNode(":host", { position: "afterEnd" });
230
- return decorator(optionsOrTarget, propertyKey, descriptor);
231
- }
232
- return applyNode(":host", { ...optionsOrTarget || {}, position: "afterEnd" });
233
- }
234
- function applyReplaceNodeHost(optionsOrTarget, propertyKey, descriptor) {
235
- if (propertyKey !== void 0) {
236
- const decorator = applyNode(":host", { position: "replace" });
237
- return decorator(optionsOrTarget, propertyKey, descriptor);
238
- }
239
- return applyNode(":host", { ...optionsOrTarget || {}, position: "replace" });
240
- }
241
- function applyReplaceChildrenNodeHost(optionsOrTarget, propertyKey, descriptor) {
242
- if (propertyKey !== void 0) {
243
- const decorator = applyNode(":host", { position: "replaceChildren" });
244
- return decorator(optionsOrTarget, propertyKey, descriptor);
245
- }
246
- return applyNode(":host", { ...optionsOrTarget || {}, position: "replaceChildren" });
247
- }
248
- function applyInnerHtmlNodeHost(optionsOrTarget, propertyKey, descriptor) {
249
- if (propertyKey !== void 0) {
250
- const decorator = applyNode(":host", { position: "innerHtml" });
251
- return decorator(optionsOrTarget, propertyKey, descriptor);
252
- }
253
- return applyNode(":host", { ...optionsOrTarget || {}, position: "innerHtml" });
254
- }
255
- function applyInnerTextNodeHost(optionsOrTarget, propertyKey, descriptor) {
256
- if (propertyKey !== void 0) {
257
- const decorator = applyNode(":host", { position: "innerText" });
258
- return decorator(optionsOrTarget, propertyKey, descriptor);
259
- }
260
- return applyNode(":host", { ...optionsOrTarget || {}, position: "innerText" });
261
- }
262
- function applyRemoveNodeHost(optionsOrTarget, propertyKey, descriptor) {
263
- if (propertyKey !== void 0) {
264
- const decorator = applyNode(":host", { position: "remove" });
265
- return decorator(optionsOrTarget, propertyKey, descriptor);
266
- }
267
- return applyNode(":host", { ...optionsOrTarget || {}, position: "remove" });
268
- }
269
162
  //# sourceMappingURL=applyNode.js.map