@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.
- package/README.md +1113 -95
- package/dist/cjs/decorators/addEventListener.js +4 -0
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/applyNode.js +174 -0
- package/dist/cjs/decorators/applyNode.js.map +7 -0
- package/dist/cjs/decorators/attribute.js +30 -10
- package/dist/cjs/decorators/attribute.js.map +3 -3
- package/dist/cjs/decorators/{changedAttribute.js → changedAttributeHost.js} +6 -6
- package/dist/cjs/decorators/changedAttributeHost.js.map +7 -0
- package/dist/cjs/decorators/classList.js +45 -15
- package/dist/cjs/decorators/classList.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +107 -57
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +4 -3
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +2 -4
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +29 -0
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/query.js +5 -1
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +5 -1
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/setAttribute.js +5 -1
- package/dist/cjs/decorators/setAttribute.js.map +2 -2
- package/dist/cjs/decorators/style.js +39 -13
- package/dist/cjs/decorators/style.js.map +2 -2
- package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/SwcAsync.js +2 -2
- package/dist/cjs/elements/SwcAsync.js.map +2 -2
- package/dist/cjs/elements/SwcChoose.js +2 -2
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/SwcIf.js +2 -2
- package/dist/cjs/elements/SwcIf.js.map +2 -2
- package/dist/cjs/elements/SwcLoop.js +2 -2
- package/dist/cjs/elements/SwcLoop.js.map +2 -2
- package/dist/cjs/elements/register.js +6 -5
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/index.js +6 -18
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types.js.map +2 -2
- package/dist/cjs/utils/TemplateUtils.js +6 -0
- package/dist/cjs/utils/TemplateUtils.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +4 -0
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/applyNode.js +155 -0
- package/dist/esm/decorators/applyNode.js.map +7 -0
- package/dist/esm/decorators/attribute.js +30 -10
- package/dist/esm/decorators/attribute.js.map +3 -3
- package/dist/esm/decorators/{changedAttribute.js → changedAttributeHost.js} +3 -3
- package/dist/esm/decorators/changedAttributeHost.js.map +7 -0
- package/dist/esm/decorators/classList.js +45 -15
- package/dist/esm/decorators/classList.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +106 -56
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +4 -3
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +2 -4
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +29 -0
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/query.js +5 -1
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +5 -1
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/setAttribute.js +5 -1
- package/dist/esm/decorators/setAttribute.js.map +2 -2
- package/dist/esm/decorators/style.js +39 -13
- package/dist/esm/decorators/style.js.map +2 -2
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/SwcAsync.js +2 -2
- package/dist/esm/elements/SwcAsync.js.map +2 -2
- package/dist/esm/elements/SwcChoose.js +2 -2
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/SwcIf.js +2 -2
- package/dist/esm/elements/SwcIf.js.map +2 -2
- package/dist/esm/elements/SwcLoop.js +2 -2
- package/dist/esm/elements/SwcLoop.js.map +2 -2
- package/dist/esm/elements/register.js +6 -5
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/index.js +6 -18
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/types.js.map +2 -2
- package/dist/esm/utils/TemplateUtils.js +6 -0
- package/dist/esm/utils/TemplateUtils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +385 -206
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +6 -0
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +121 -0
- package/dist/types/decorators/applyNode.d.ts.map +1 -0
- package/dist/types/decorators/attribute.d.ts +6 -0
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/{changedAttribute.d.ts → changedAttributeHost.d.ts} +6 -2
- package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -0
- package/dist/types/decorators/classList.d.ts +32 -5
- package/dist/types/decorators/classList.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +14 -2
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +2 -4
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts +16 -0
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +6 -3
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +6 -0
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/setAttribute.d.ts +5 -0
- package/dist/types/decorators/setAttribute.d.ts.map +1 -1
- package/dist/types/decorators/style.d.ts +28 -3
- package/dist/types/decorators/style.d.ts.map +1 -1
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts +1 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -15
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/TemplateUtils.d.ts +5 -0
- package/dist/types/utils/TemplateUtils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +385 -206
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +3 -3
- package/src/decorators/addEventListener.ts +9 -0
- package/src/decorators/applyNode.ts +290 -0
- package/src/decorators/attribute.ts +46 -12
- package/src/decorators/{changedAttribute.ts → changedAttributeHost.ts} +5 -1
- package/src/decorators/classList.ts +71 -16
- package/src/decorators/elementDefine.ts +130 -63
- package/src/decorators/emitCustomEvent.ts +13 -5
- package/src/decorators/index.ts +2 -4
- package/src/decorators/lifecycles.ts +43 -1
- package/src/decorators/query.ts +9 -2
- package/src/decorators/queryAll.ts +9 -0
- package/src/decorators/setAttribute.ts +8 -0
- package/src/decorators/style.ts +64 -13
- package/src/elements/SwcAppEngine.ts +1 -0
- package/src/elements/SwcAppMixin.ts +2 -1
- package/src/elements/SwcAsync.ts +2 -2
- package/src/elements/SwcChoose.ts +2 -2
- package/src/elements/SwcIf.ts +2 -2
- package/src/elements/SwcLoop.ts +2 -2
- package/src/elements/register.ts +7 -5
- package/src/index.ts +8 -17
- package/src/types.ts +2 -1
- package/src/utils/TemplateUtils.ts +9 -0
- package/dist/cjs/decorators/appendChild.js +0 -92
- package/dist/cjs/decorators/appendChild.js.map +0 -7
- package/dist/cjs/decorators/changedAttribute.js.map +0 -7
- package/dist/cjs/decorators/onConnectedInnerHtml.js +0 -48
- package/dist/cjs/decorators/onConnectedInnerHtml.js.map +0 -7
- package/dist/cjs/decorators/replaceChildren.js +0 -79
- package/dist/cjs/decorators/replaceChildren.js.map +0 -7
- package/dist/esm/decorators/appendChild.js +0 -73
- package/dist/esm/decorators/appendChild.js.map +0 -7
- package/dist/esm/decorators/changedAttribute.js.map +0 -7
- package/dist/esm/decorators/onConnectedInnerHtml.js +0 -29
- package/dist/esm/decorators/onConnectedInnerHtml.js.map +0 -7
- package/dist/esm/decorators/replaceChildren.js +0 -60
- package/dist/esm/decorators/replaceChildren.js.map +0 -7
- package/dist/types/decorators/appendChild.d.ts +0 -17
- package/dist/types/decorators/appendChild.d.ts.map +0 -1
- package/dist/types/decorators/changedAttribute.d.ts.map +0 -1
- package/dist/types/decorators/onConnectedInnerHtml.d.ts +0 -15
- package/dist/types/decorators/onConnectedInnerHtml.d.ts.map +0 -1
- package/dist/types/decorators/replaceChildren.d.ts +0 -9
- package/dist/types/decorators/replaceChildren.d.ts.map +0 -1
- package/src/decorators/appendChild.ts +0 -86
- package/src/decorators/onConnectedInnerHtml.ts +0 -42
- package/src/decorators/replaceChildren.ts +0 -64
|
@@ -25,11 +25,10 @@ __export(elementDefine_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(elementDefine_exports);
|
|
26
26
|
var import_core = require("@dooboostore/core");
|
|
27
27
|
var import_core2 = require("@dooboostore/core");
|
|
28
|
-
var import_onConnectedInnerHtml = require("./onConnectedInnerHtml");
|
|
29
28
|
var import_addEventListener = require("./addEventListener");
|
|
30
29
|
var import_lifecycles = require("./lifecycles");
|
|
31
30
|
var import_emitCustomEvent = require("./emitCustomEvent");
|
|
32
|
-
var
|
|
31
|
+
var import_changedAttributeHost = require("./changedAttributeHost");
|
|
33
32
|
var import_setAttribute = require("./setAttribute");
|
|
34
33
|
var import_attribute = require("./attribute");
|
|
35
34
|
var import_Utils = require("../utils/Utils");
|
|
@@ -49,6 +48,10 @@ const ensureInit = (inst) => {
|
|
|
49
48
|
inst.__swc_initialized = true;
|
|
50
49
|
const hostSet = import_Utils.SwcUtils.getHostSet(inst);
|
|
51
50
|
inst._executeSwcScript?.("swc-on-constructor", hostSet);
|
|
51
|
+
const cMethods = (0, import_lifecycles.findAllLifecycleMetadata)(inst, import_lifecycles.ON_CONSTRUCTOR_METADATA_KEY);
|
|
52
|
+
if (cMethods) {
|
|
53
|
+
for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
};
|
|
54
57
|
const globalDelegatedRoots = /* @__PURE__ */ new WeakSet();
|
|
@@ -147,7 +150,9 @@ const setupPrototype = (proto) => {
|
|
|
147
150
|
const oldHandler = handlers.get(attrName);
|
|
148
151
|
if (oldHandler) el.removeEventListener(eventName, oldHandler);
|
|
149
152
|
const handler = async (event) => {
|
|
150
|
-
|
|
153
|
+
console.log("execute handler", event);
|
|
154
|
+
const parent = import_Utils.SwcUtils.findNearestSwcHost(el);
|
|
155
|
+
const hostSet = import_Utils.SwcUtils.getHostSet(parent || el);
|
|
151
156
|
const conf = getElementConfig(this);
|
|
152
157
|
const currentWin = this._resolveWindow(conf);
|
|
153
158
|
const helpers = import_Utils.SwcUtils.getHelperSet(currentWin);
|
|
@@ -166,13 +171,18 @@ const setupPrototype = (proto) => {
|
|
|
166
171
|
};
|
|
167
172
|
proto.__swc_executeAttributeEvent = async function(el, attrName, script, event) {
|
|
168
173
|
ensureInit(this);
|
|
169
|
-
|
|
174
|
+
console.log("execute handler2", event);
|
|
175
|
+
const parent = import_Utils.SwcUtils.findNearestSwcHost(el);
|
|
176
|
+
const hostSet = import_Utils.SwcUtils.getHostSet(parent || el);
|
|
170
177
|
const conf = getElementConfig(this);
|
|
171
178
|
const currentWin = this._resolveWindow(conf);
|
|
172
179
|
const currentHelpers = import_Utils.SwcUtils.getHelperSet(currentWin);
|
|
180
|
+
const detail = event.detail;
|
|
173
181
|
const args = {
|
|
174
182
|
event,
|
|
175
|
-
$
|
|
183
|
+
$event: event,
|
|
184
|
+
$data: detail,
|
|
185
|
+
$detail: detail,
|
|
176
186
|
...hostSet,
|
|
177
187
|
...currentHelpers,
|
|
178
188
|
$el: el,
|
|
@@ -199,13 +209,15 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
199
209
|
metadata.extends = extendsTagName;
|
|
200
210
|
}
|
|
201
211
|
const emitCustomEventList = (0, import_emitCustomEvent.getEmitCustomEventMetadataList)(constructor) || [];
|
|
212
|
+
const emitHostCustomEventList = emitCustomEventList.filter((meta) => meta.selector === ":host" || meta.selector === "");
|
|
202
213
|
const addEventListenerList = (0, import_addEventListener.getAddEventListenerMetadata)(constructor) || [];
|
|
203
|
-
const
|
|
214
|
+
const addHostEventListenerList = addEventListenerList.filter((meta) => meta.selector === ":host" || meta.selector === "");
|
|
215
|
+
const attrChangeMap = (0, import_changedAttributeHost.findAllAttributeChangedMetadata)(constructor);
|
|
204
216
|
const attributeList = (0, import_attribute.findAllAttributeMetadata)(constructor);
|
|
205
217
|
const swcLifecycleAttributes = ["swc-on-constructor", "swc-on-connected", "swc-on-disconnected", "swc-on-before-connected", "swc-on-after-connected", "swc-on-before-disconnected", "swc-on-after-disconnected", "swc-on-before-adopted", "swc-on-after-adopted", "swc-on-attribute-changed"];
|
|
206
218
|
const swcOnEvents = import_config.DOM_EVENT_NAMES.map((e) => `swc-on-${e}`);
|
|
207
|
-
const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...metadata.observedAttributes ?? [], ...attrChangeMap.keys(), ...Array.from((0, import_setAttribute.findAllSetAttributeMetadata)(constructor).values()).map((it) => it.name), ...attributeList.map((it) => it.options.name || String(it.propertyKey)), ...
|
|
208
|
-
const connectedInnerHtmlList = (0,
|
|
219
|
+
const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...metadata.observedAttributes ?? [], ...attrChangeMap.keys(), ...Array.from((0, import_setAttribute.findAllSetAttributeMetadata)(constructor).values()).map((it) => it.name), ...attributeList.map((it) => it.options.name || String(it.propertyKey)), ...emitHostCustomEventList.map((it) => it.options.attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];
|
|
220
|
+
const connectedInnerHtmlList = (0, import_lifecycles.getOnConnectedInnerHtmlMetadata)(constructor) || [];
|
|
209
221
|
const proto = constructor.prototype;
|
|
210
222
|
setupPrototype(proto);
|
|
211
223
|
const originalConnected = proto.connectedCallback;
|
|
@@ -224,25 +236,15 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
224
236
|
}
|
|
225
237
|
attributeList.forEach((meta) => {
|
|
226
238
|
const attrName = meta.options.name || String(meta.propertyKey);
|
|
227
|
-
if (meta.options.connectedInitialize) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
239
|
+
if (meta.options.connectedInitialize === true) {
|
|
240
|
+
this.__swc_syncing_init = true;
|
|
241
|
+
try {
|
|
242
|
+
const memoryVal = this[meta.privateKey];
|
|
243
|
+
if (memoryVal !== void 0) {
|
|
232
244
|
this[meta.propertyKey] = memoryVal;
|
|
233
|
-
} finally {
|
|
234
|
-
this.__swc_syncing_init = false;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
} else if (meta.selector === ":host" || !meta.selector) {
|
|
238
|
-
const domVal = this.getAttribute(attrName);
|
|
239
|
-
if (domVal !== null) {
|
|
240
|
-
this.__swc_syncing_init = true;
|
|
241
|
-
try {
|
|
242
|
-
this[meta.propertyKey] = domVal;
|
|
243
|
-
} finally {
|
|
244
|
-
this.__swc_syncing_init = false;
|
|
245
245
|
}
|
|
246
|
+
} finally {
|
|
247
|
+
this.__swc_syncing_init = false;
|
|
246
248
|
}
|
|
247
249
|
}
|
|
248
250
|
});
|
|
@@ -265,7 +267,62 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
265
267
|
});
|
|
266
268
|
globalDelegatedRoots.add(root);
|
|
267
269
|
}
|
|
270
|
+
const delegateListeners = [];
|
|
271
|
+
const nonDelegateListeners = [];
|
|
268
272
|
addEventListenerList.forEach((meta) => {
|
|
273
|
+
if (meta.options.delegate && meta.selector !== ":window" && meta.selector !== ":document" && meta.selector !== ":parentHost" && meta.selector !== ":appHost" && meta.selector !== ":firstHost" && meta.selector !== ":lastHost" && meta.selector !== ":firstAppHost" && meta.selector !== ":lastAppHost" && meta.selector !== ":hosts" && meta.selector !== ":appHosts" && meta.selector !== ":host" && meta.selector !== "") {
|
|
274
|
+
delegateListeners.push(meta);
|
|
275
|
+
} else {
|
|
276
|
+
nonDelegateListeners.push(meta);
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
const delegatesByTypeAndRoot = /* @__PURE__ */ new Map();
|
|
280
|
+
delegateListeners.forEach((meta) => {
|
|
281
|
+
const r = meta.options.root || "auto";
|
|
282
|
+
const rootKey = `${meta.type}:${r}`;
|
|
283
|
+
if (!delegatesByTypeAndRoot.has(rootKey)) {
|
|
284
|
+
delegatesByTypeAndRoot.set(rootKey, []);
|
|
285
|
+
}
|
|
286
|
+
delegatesByTypeAndRoot.get(rootKey).push(meta);
|
|
287
|
+
});
|
|
288
|
+
delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {
|
|
289
|
+
const [type, rStr] = typeRootKey.split(":");
|
|
290
|
+
const r = rStr === "auto" ? "auto" : rStr;
|
|
291
|
+
const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };
|
|
292
|
+
const bindRoots = [];
|
|
293
|
+
if (r === "auto") bindRoots.push(this.shadowRoot || this);
|
|
294
|
+
else if (r === "light") bindRoots.push(this);
|
|
295
|
+
else if (r === "shadow" && this.shadowRoot) bindRoots.push(this.shadowRoot);
|
|
296
|
+
else if (r === "all") {
|
|
297
|
+
bindRoots.push(this);
|
|
298
|
+
if (this.shadowRoot) bindRoots.push(this.shadowRoot);
|
|
299
|
+
}
|
|
300
|
+
bindRoots.forEach((br) => {
|
|
301
|
+
const sortedMetaList = [...metaList].sort((a, b) => {
|
|
302
|
+
const aStop = a.options.stopPropagation ? 1 : 0;
|
|
303
|
+
const bStop = b.options.stopPropagation ? 1 : 0;
|
|
304
|
+
return bStop - aStop;
|
|
305
|
+
});
|
|
306
|
+
const unifiedHandler = async (event) => {
|
|
307
|
+
for (const meta of sortedMetaList) {
|
|
308
|
+
const { selector, options } = meta;
|
|
309
|
+
const matchedEl = event.target.closest(selector);
|
|
310
|
+
if (matchedEl && br.contains(matchedEl)) {
|
|
311
|
+
if (options.stopPropagation) event.stopPropagation();
|
|
312
|
+
if (options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
313
|
+
if (options.preventDefault) event.preventDefault();
|
|
314
|
+
const currentHostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
315
|
+
const args = { event, ...currentHostSet, $el: matchedEl, $root: br };
|
|
316
|
+
await this[meta.propertyKey](event, currentHostSet, matchedEl, args);
|
|
317
|
+
if (event.cancelBubble) break;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
br.addEventListener(type, unifiedHandler, opts);
|
|
322
|
+
this._boundListeners.push({ target: br, type, handler: unifiedHandler, options: opts });
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
nonDelegateListeners.forEach((meta) => {
|
|
269
326
|
const { selector, type, options } = meta;
|
|
270
327
|
const opts = { capture: options.capture, once: options.once, passive: options.passive };
|
|
271
328
|
const bindTargets = [];
|
|
@@ -290,33 +347,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
290
347
|
else if (selector === ":hosts") hostSet.$hosts.forEach(applyRootOption);
|
|
291
348
|
else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRootOption);
|
|
292
349
|
else if (selector === ":host" || !selector) applyRootOption(this);
|
|
293
|
-
else
|
|
294
|
-
const bindRoots = [];
|
|
295
|
-
if (r === "auto") bindRoots.push(this.shadowRoot || this);
|
|
296
|
-
else if (r === "light") bindRoots.push(this);
|
|
297
|
-
else if (r === "shadow" && this.shadowRoot) bindRoots.push(this.shadowRoot);
|
|
298
|
-
else if (r === "all") {
|
|
299
|
-
bindRoots.push(this);
|
|
300
|
-
if (this.shadowRoot) bindRoots.push(this.shadowRoot);
|
|
301
|
-
}
|
|
302
|
-
bindRoots.forEach((br) => {
|
|
303
|
-
const handler = async (event) => {
|
|
304
|
-
const matchedEl = event.target.closest(selector);
|
|
305
|
-
if (matchedEl && br.contains(matchedEl)) {
|
|
306
|
-
if (options.stopPropagation) event.stopPropagation();
|
|
307
|
-
if (options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
308
|
-
if (options.preventDefault) event.preventDefault();
|
|
309
|
-
const currentHostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
310
|
-
const args = { event, ...currentHostSet, $el: matchedEl, $root: br };
|
|
311
|
-
await this._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, matchedEl, args]);
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
br.addEventListener(type, handler, opts);
|
|
315
|
-
if (options.removeOnDisconnected === true || br !== this && br !== this.shadowRoot) {
|
|
316
|
-
this._boundListeners.push({ target: br, type, handler, options: opts });
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
} else {
|
|
350
|
+
else {
|
|
320
351
|
const searchRoots = [];
|
|
321
352
|
if (r === "auto") searchRoots.push(this.shadowRoot || this);
|
|
322
353
|
else if (r === "light") searchRoots.push(this);
|
|
@@ -336,7 +367,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
336
367
|
if (options.preventDefault) event.preventDefault();
|
|
337
368
|
const currentHostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
338
369
|
const args = { event, ...currentHostSet, $el: t, $root: t };
|
|
339
|
-
await this
|
|
370
|
+
await this[meta.propertyKey](event, currentHostSet, args);
|
|
340
371
|
};
|
|
341
372
|
t.addEventListener(type, handler, opts);
|
|
342
373
|
if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {
|
|
@@ -344,6 +375,22 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
344
375
|
}
|
|
345
376
|
});
|
|
346
377
|
});
|
|
378
|
+
addHostEventListenerList.forEach((meta) => {
|
|
379
|
+
const { type, options } = meta;
|
|
380
|
+
const opts = { capture: options.capture, once: options.once, passive: options.passive };
|
|
381
|
+
const handler = async (event) => {
|
|
382
|
+
if (options.stopPropagation) event.stopPropagation();
|
|
383
|
+
if (options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
384
|
+
if (options.preventDefault) event.preventDefault();
|
|
385
|
+
const currentHostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
386
|
+
const args = { event, ...currentHostSet, $el: this, $root: this.getRootNode() };
|
|
387
|
+
await this[meta.propertyKey](event, currentHostSet, args);
|
|
388
|
+
};
|
|
389
|
+
this.addEventListener(type, handler, opts);
|
|
390
|
+
if (options.removeOnDisconnected === true) {
|
|
391
|
+
this._boundListeners.push({ target: this, type, handler, options: opts });
|
|
392
|
+
}
|
|
393
|
+
});
|
|
347
394
|
if (originalConnected) originalConnected.apply(this);
|
|
348
395
|
const aMethods = (0, import_lifecycles.findAllLifecycleMetadata)(this, import_lifecycles.ON_AFTER_CONNECTED_METADATA_KEY);
|
|
349
396
|
if (aMethods) {
|
|
@@ -393,17 +440,20 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
393
440
|
const originalAttributeChanged = proto.attributeChangedCallback;
|
|
394
441
|
proto.attributeChangedCallback = function(name2, old, newVal) {
|
|
395
442
|
if (originalAttributeChanged) originalAttributeChanged.apply(this, [name2, old, newVal]);
|
|
443
|
+
const hSet = import_Utils.SwcUtils.getHostSet(this);
|
|
396
444
|
if (name2.startsWith("swc-on-") && !swcLifecycleAttributes.includes(name2)) {
|
|
397
445
|
if (newVal !== null) {
|
|
398
|
-
const
|
|
399
|
-
const eventName = customEventMeta ? customEventMeta.type : name2.substring(7);
|
|
446
|
+
const eventName = name2.substring(7);
|
|
400
447
|
this._bindAttributeEvent(this, name2, newVal, eventName);
|
|
401
448
|
}
|
|
402
449
|
}
|
|
450
|
+
const hostCustomEventMeta = emitHostCustomEventList.find((it) => it.options.attributeName === name2);
|
|
451
|
+
if (hostCustomEventMeta && newVal !== null) {
|
|
452
|
+
this._bindAttributeEvent(this, name2, newVal, hostCustomEventMeta.type);
|
|
453
|
+
}
|
|
403
454
|
const mKeys = attrChangeMap.get(name2);
|
|
404
455
|
if (mKeys && Array.isArray(mKeys)) {
|
|
405
|
-
const
|
|
406
|
-
for (const key of mKeys) this._invokeLifecycleMethod(key, hSet, [newVal, old, name2]);
|
|
456
|
+
for (const key of mKeys) this[key](newVal, old, name2, hSet);
|
|
407
457
|
}
|
|
408
458
|
};
|
|
409
459
|
Object.defineProperty(constructor, "observedAttributes", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/elementDefine.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { getOnConnectedInnerHtmlMetadata } from './onConnectedInnerHtml';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata } from './lifecycles';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { findAllAttributeChangedMetadata } from './changedAttribute';\nimport { findAllSetAttributeMetadata } from './setAttribute';\nimport { findAllReplaceChildrenMetadata } from './replaceChildren';\nimport { findAllAppendChildMetadata } from './appendChild';\nimport { findAllClassListMetadata } from './classList';\nimport { findAllStyleMetadata } from './style';\nimport { findAllAttributeMetadata } from './attribute';\nimport { SwcUtils } from '../utils/Utils';\nimport { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from '../config/config';\nimport { SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport { InjectSituationType, HostSet } from '../types';\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => {\n if (!inst.__swc_initialized) {\n inst._swcId = Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow?: Window) {\n const win: Window = configWindow || ((typeof window !== 'undefined' ? window : undefined) as any);\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if (win?.[cls]) builtInTagMap.set(win[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n return { win, doc, builtInTagMap, domHelpers };\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = { ...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode() };\n FunctionUtils.execute({ script, context: this, args });\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHosts(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return (typeof window !== 'undefined' ? window : undefined) as Window;\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const app = hostSet.$appHost?.simpleApplication;\n\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSimPromise(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n // Collect all observed attributes from all decorators\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...attrChangeMap.keys(), ...Array.from(findAllSetAttributeMetadata(constructor).values()).map(it => it.name), ...attributeList.map(it => it.options.name || String(it.propertyKey)), ...emitCustomEventList.map(it => it.options.attributeName!), ...swcLifecycleAttributes, ...swcOnEvents])];\n\n const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto);\n\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = function () {\n ensureInit(this);\n\n if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const hostSet = SwcUtils.getHostSet(this as any);\n\n (this as any)._executeSwcScript('swc-on-before-connected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n // Initialize @attribute fields (DOM <-> JS Sync)\n attributeList.forEach(meta => {\n const attrName = meta.options.name || String(meta.propertyKey);\n if (meta.options.connectedInitialize) {\n // JS -> DOM (FORCE OVERWRITE)\n const memoryVal = (this as any)[meta.privateKey];\n if (memoryVal !== undefined) {\n (this as any).__swc_syncing_init = true;\n try {\n (this as any)[meta.propertyKey] = memoryVal; // Trigger setter to update DOM\n } finally {\n (this as any).__swc_syncing_init = false;\n }\n }\n } else if (meta.selector === ':host' || !meta.selector) {\n // DOM -> JS (Pull from HTML)\n const domVal = this.getAttribute(attrName);\n if (domVal !== null) {\n (this as any).__swc_syncing_init = true;\n try {\n (this as any)[meta.propertyKey] = domVal; // Update memory with DOM value\n } finally {\n (this as any).__swc_syncing_init = false;\n }\n }\n }\n });\n\n if (connectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of connectedInnerHtmlList) {\n const res = (this as any)[meta.propertyKey]();\n if (res !== undefined) {\n if (meta.options.useShadow) sContent += res;\n else lContent += res;\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n }\n\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n addEventListenerList.forEach(meta => {\n const { selector, type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (selector === ':window') bindTargets.push(currentWin);\n else if (selector === ':document') bindTargets.push(currentWin.document);\n else if (selector === ':parentHost') applyRootOption(hostSet.$parentHost);\n else if (selector === ':appHost') applyRootOption(hostSet.$appHost);\n else if (selector === ':firstHost') applyRootOption(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRootOption(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRootOption(hostSet.$firstAppHost);\n else if (selector === ':lastAppHost') applyRootOption(hostSet.$lastAppHost);\n else if (selector === ':hosts') hostSet.$hosts.forEach(applyRootOption);\n else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRootOption);\n else if (selector === ':host' || !selector) applyRootOption(this);\n else if (options.delegate) {\n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n const handler = async (event: Event) => {\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: matchedEl, $root: br };\n await (this as any)._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, matchedEl, args]);\n }\n };\n br.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true || (br !== this && br !== this.shadowRoot)) {\n (this as any)._boundListeners.push({ target: br, type, handler, options: opts });\n }\n });\n } else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));\n });\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: t, $root: t };\n await (this as any)._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, args]);\n };\n t.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({ target: t, type, handler, options: opts });\n }\n });\n });\n\n if (originalConnected) originalConnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-connected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', hostSet);\n (this as any).__swc_connected = true;\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-disconnected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));\n (this as any)._boundListeners = [];\n }\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-disconnected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', hostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n // Handle swc-on-* events\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const customEventMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n const eventName = customEventMeta ? customEventMeta.type : name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n // Handle @changedAttribute callbacks\n const mKeys = attrChangeMap.get(name);\n if (mKeys && Array.isArray(mKeys)) {\n const hSet = SwcUtils.getHostSet(this as any);\n for (const key of mKeys) (this as any)._invokeLifecycleMethod(key, hSet, [newVal, old, name]);\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { ON_CONSTRUCTOR_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata } from './lifecycles';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { findAllAttributeChangedMetadata } from './changedAttributeHost';\nimport { findAllSetAttributeMetadata } from './setAttribute';\nimport { findAllAttributeMetadata } from './attribute';\nimport { SwcUtils } from '../utils/Utils';\nimport { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from '../config/config';\nimport { SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport { InjectSituationType, HostSet } from '../types';\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => {\n if (!inst.__swc_initialized) {\n inst._swcId = Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onConstructor lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_CONSTRUCTOR_METADATA_KEY);\n if (cMethods) {\n for (const m of cMethods) (inst)._invokeLifecycleMethod(m, hostSet);\n }\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow?: Window) {\n const win: Window = configWindow || ((typeof window !== 'undefined' ? window : undefined) as any);\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if (win?.[cls]) builtInTagMap.set(win[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n return { win, doc, builtInTagMap, domHelpers };\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = { ...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode() };\n FunctionUtils.execute({ script, context: this, args });\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHosts(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return (typeof window !== 'undefined' ? window : undefined) as Window;\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const app = hostSet.$appHost?.simpleApplication;\n\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSimPromise(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n console.log('execute handler', event);\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n console.log('execute handler2', event);\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const emitHostCustomEventList = emitCustomEventList.filter(meta => meta.selector === ':host' || meta.selector === '');\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const addHostEventListenerList = addEventListenerList.filter(meta => meta.selector === ':host' || meta.selector === '');\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n // Collect all observed attributes from all decorators\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...attrChangeMap.keys(), ...Array.from(findAllSetAttributeMetadata(constructor).values()).map(it => it.name), ...attributeList.map(it => it.options.name || String(it.propertyKey)), ...emitHostCustomEventList.map(it => (it.options as any).attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];\n\n const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto);\n\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = function () {\n ensureInit(this);\n\n if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const hostSet = SwcUtils.getHostSet(this as any);\n\n (this as any)._executeSwcScript('swc-on-before-connected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n // Initialize @attribute fields (DOM <-> JS Sync)\n attributeList.forEach(meta => {\n const attrName = meta.options.name || String(meta.propertyKey);\n if (meta.options.connectedInitialize === true) {\n // JS -> DOM (FORCE OVERWRITE with JS value)\n (this as any).__swc_syncing_init = true;\n try {\n const memoryVal = (this as any)[meta.privateKey];\n if (memoryVal !== undefined) {\n (this as any)[meta.propertyKey] = memoryVal; // Trigger setter to update DOM\n }\n } finally {\n (this as any).__swc_syncing_init = false;\n }\n }\n // else: Do NOT sync - Keep the default value from class initialization\n });\n\n if (connectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of connectedInnerHtmlList) {\n const res = (this as any)[meta.propertyKey]();\n if (res !== undefined) {\n if (meta.options.useShadow) sContent += res;\n else lContent += res;\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n }\n\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n // Separate delegate and non-delegate listeners\n const delegateListeners: typeof addEventListenerList = [];\n const nonDelegateListeners: typeof addEventListenerList = [];\n \n addEventListenerList.forEach(meta => {\n if (meta.options.delegate && meta.selector !== ':window' && meta.selector !== ':document' && meta.selector !== ':parentHost' && meta.selector !== ':appHost' && meta.selector !== ':firstHost' && meta.selector !== ':lastHost' && meta.selector !== ':firstAppHost' && meta.selector !== ':lastAppHost' && meta.selector !== ':hosts' && meta.selector !== ':appHosts' && meta.selector !== ':host' && meta.selector !== '') {\n delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n });\n\n // Group delegate listeners by (type, root) combination\n const delegatesByTypeAndRoot = new Map<string, any[]>();\n delegateListeners.forEach(meta => {\n const r = meta.options.root || 'auto';\n const rootKey = `${meta.type}:${r}`;\n if (!delegatesByTypeAndRoot.has(rootKey)) {\n delegatesByTypeAndRoot.set(rootKey, []);\n }\n delegatesByTypeAndRoot.get(rootKey)!.push(meta);\n });\n\n // Register unified handlers for delegate listeners\n delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {\n const [type, rStr] = typeRootKey.split(':');\n const r = rStr === 'auto' ? 'auto' : rStr;\n const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };\n \n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n // Sort: stopPropagation handlers first (more specific/terminal actions)\n const sortedMetaList = [...metaList].sort((a, b) => {\n const aStop = a.options.stopPropagation ? 1 : 0;\n const bStop = b.options.stopPropagation ? 1 : 0;\n return bStop - aStop; // stopPropagation: true comes first\n });\n \n const unifiedHandler = async (event: Event) => {\n for (const meta of sortedMetaList) {\n const { selector, options } = meta;\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: matchedEl, $root: br };\n await (this as any)[meta.propertyKey](event, currentHostSet, matchedEl, args);\n \n // Stop processing if event propagation was stopped\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, unifiedHandler, opts);\n (this as any)._boundListeners.push({ target: br, type, handler: unifiedHandler, options: opts });\n });\n });\n\n // Process non-delegate listeners\n nonDelegateListeners.forEach(meta => {\n const { selector, type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (selector === ':window') bindTargets.push(currentWin);\n else if (selector === ':document') bindTargets.push(currentWin.document);\n else if (selector === ':parentHost') applyRootOption(hostSet.$parentHost);\n else if (selector === ':appHost') applyRootOption(hostSet.$appHost);\n else if (selector === ':firstHost') applyRootOption(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRootOption(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRootOption(hostSet.$firstAppHost);\n else if (selector === ':lastAppHost') applyRootOption(hostSet.$lastAppHost);\n else if (selector === ':hosts') hostSet.$hosts.forEach(applyRootOption);\n else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRootOption);\n else if (selector === ':host' || !selector) applyRootOption(this);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));\n });\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: t, $root: t };\n await (this as any)[meta.propertyKey](event, currentHostSet, args);\n };\n t.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({ target: t, type, handler, options: opts });\n }\n });\n });\n\n addHostEventListenerList.forEach(meta => {\n const { type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n\n const handler = async (event: Event) => {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: this, $root: this.getRootNode() };\n await (this as any)[meta.propertyKey](event, currentHostSet, args);\n };\n this.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true) {\n (this as any)._boundListeners.push({ target: this, type, handler, options: opts });\n }\n });\n\n if (originalConnected) originalConnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-connected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', hostSet);\n (this as any).__swc_connected = true;\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-disconnected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));\n (this as any)._boundListeners = [];\n }\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-disconnected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', hostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n const hSet = SwcUtils.getHostSet(this as any);\n\n // Handle swc-on-* events\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n // Handle @emitHostCustomEvent attribute changes\n const hostCustomEventMeta = emitHostCustomEventList.find(it => (it.options as any).attributeName === name);\n if (hostCustomEventMeta && newVal !== null) {\n (this as any)._bindAttributeEvent(this as any, name, newVal, hostCustomEventMeta.type);\n }\n\n // Handle @changedAttribute callbacks\n const mKeys = attrChangeMap.get(name);\n if (mKeys && Array.isArray(mKeys)) {\n for (const key of mKeys) (this as any)[key](newVal, old, name, hSet);\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_core", "proto", "name"]
|
|
7
7
|
}
|
|
@@ -19,6 +19,7 @@ var emitCustomEvent_exports = {};
|
|
|
19
19
|
__export(emitCustomEvent_exports, {
|
|
20
20
|
EMIT_CUSTOM_EVENT_METADATA_KEY: () => EMIT_CUSTOM_EVENT_METADATA_KEY,
|
|
21
21
|
emitCustomEvent: () => emitCustomEvent,
|
|
22
|
+
emitCustomEventHost: () => emitCustomEventHost,
|
|
22
23
|
getEmitCustomEventMetadataList: () => getEmitCustomEventMetadataList
|
|
23
24
|
});
|
|
24
25
|
module.exports = __toCommonJS(emitCustomEvent_exports);
|
|
@@ -30,9 +31,6 @@ function emitCustomEvent(selectorOrTarget, type, options = {}) {
|
|
|
30
31
|
return (targetObj, propertyKey, descriptor) => {
|
|
31
32
|
const constructor = targetObj.constructor;
|
|
32
33
|
const fullOptions = { ...options, type };
|
|
33
|
-
if (!fullOptions.attributeName) {
|
|
34
|
-
fullOptions.attributeName = `swc-on-${type}`;
|
|
35
|
-
}
|
|
36
34
|
if (fullOptions.bubbles === void 0) fullOptions.bubbles = true;
|
|
37
35
|
if (fullOptions.composed === void 0) fullOptions.composed = true;
|
|
38
36
|
let list = import_core.ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);
|
|
@@ -97,4 +95,7 @@ const getEmitCustomEventMetadataList = (target) => {
|
|
|
97
95
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
98
96
|
return import_core.ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);
|
|
99
97
|
};
|
|
98
|
+
function emitCustomEventHost(type, options) {
|
|
99
|
+
return emitCustomEvent(":host", type, options);
|
|
100
|
+
}
|
|
100
101
|
//# sourceMappingURL=emitCustomEvent.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/emitCustomEvent.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\n\nexport interface EmitCustomEventBaseOptions {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAE7B,2BAA6C;AAC7C,mBAAyB;
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\n\nexport interface EmitCustomEventBaseOptions {\n bubbles?: boolean;\n composed?: boolean;\n cancelable?: boolean;\n}\n\nexport interface EmitCustomEventMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: (EmitCustomEventBaseOptions & SwcQueryOptions) | (EmitCustomEventBaseOptions & SwcQueryOptions & { attributeName?: string });\n}\n\nexport const EMIT_CUSTOM_EVENT_METADATA_KEY = Symbol('simple-web-component:emit-custom-event');\nexport function emitCustomEvent(target: SpecialSelector, type: string, options?: EmitCustomEventBaseOptions): MethodDecorator;\nexport function emitCustomEvent(selector: string, type: string, options?: EmitCustomEventBaseOptions & SwcQueryOptions): MethodDecorator;\n/**\n * @emitCustomEvent decorator to dispatch custom events to a target.\n */\nexport function emitCustomEvent(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n const fullOptions: any = { ...options, type };\n\n if (fullOptions.bubbles === undefined) fullOptions.bubbles = true;\n if (fullOptions.composed === undefined) fullOptions.composed = true;\n\n let list = ReflectUtils.getMetadata<EmitCustomEventMetadata[]>(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, selector: selectorOrTarget, type, options: fullOptions });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const detail = await original.apply(this, args);\n const event = new CustomEvent(type, {\n detail,\n bubbles: fullOptions.bubbles,\n composed: fullOptions.composed,\n cancelable: fullOptions.cancelable\n });\n\n const hostSet = SwcUtils.getHostSet(this as any);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);\n\n const eventTargets: EventTarget[] = [];\n if (selectorOrTarget === ':window') eventTargets.push(currentWin);\n else if (selectorOrTarget === ':document') eventTargets.push(currentWin.document);\n else if (selectorOrTarget === ':parentHost') {\n if (hostSet.$parentHost) eventTargets.push(hostSet.$parentHost);\n } else if (selectorOrTarget === ':appHost') {\n if (hostSet.$appHost) eventTargets.push(hostSet.$appHost);\n } else if (selectorOrTarget === ':firstHost') {\n if (hostSet.$firstHost) eventTargets.push(hostSet.$firstHost);\n } else if (selectorOrTarget === ':lastHost') {\n if (hostSet.$lastHost) eventTargets.push(hostSet.$lastHost);\n } else if (selectorOrTarget === ':firstAppHost') {\n if (hostSet.$firstAppHost) eventTargets.push(hostSet.$firstAppHost);\n } else if (selectorOrTarget === ':lastAppHost') {\n if (hostSet.$lastAppHost) eventTargets.push(hostSet.$lastAppHost);\n } else if (selectorOrTarget === ':hosts') {\n hostSet.$hosts.forEach(h => eventTargets.push(h));\n } else if (selectorOrTarget === ':appHosts') {\n hostSet.$appHosts.forEach(h => eventTargets.push(h));\n } else if (selectorOrTarget === ':host' || !selectorOrTarget) eventTargets.push(this as any);\n else {\n const r = fullOptions.root || 'auto';\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selectorOrTarget).forEach(el => eventTargets.push(el));\n });\n }\n\n eventTargets.forEach(t => t.dispatchEvent(event));\n return detail;\n };\n };\n}\n\nexport const getEmitCustomEventMetadataList = (target: any): EmitCustomEventMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);\n};\n\n/**\n * @emitCustomEventHost decorator - simplified version of @emitCustomEvent for :host selector\n * Usage: @emitCustomEventHost('navigate')\n * Usage: @emitCustomEventHost('navigate', { attributeName: 'on-navigate' })\n * \n * The attributeName option is used to automatically observe attributes for this event.\n * For example, { attributeName: 'on-navigate' } will add 'on-navigate' to observedAttributes.\n */\nexport function emitCustomEventHost(type: string, options?: EmitCustomEventBaseOptions & SwcQueryOptions & { attributeName?: string }): MethodDecorator {\n return emitCustomEvent(':host', type, options);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -17,15 +17,13 @@ module.exports = __toCommonJS(decorators_exports);
|
|
|
17
17
|
__reExport(decorators_exports, require("./addEventListener"), module.exports);
|
|
18
18
|
__reExport(decorators_exports, require("./attribute"), module.exports);
|
|
19
19
|
__reExport(decorators_exports, require("./elementDefine"), module.exports);
|
|
20
|
-
__reExport(decorators_exports, require("./
|
|
20
|
+
__reExport(decorators_exports, require("./changedAttributeHost"), module.exports);
|
|
21
21
|
__reExport(decorators_exports, require("./setAttribute"), module.exports);
|
|
22
22
|
__reExport(decorators_exports, require("./emitCustomEvent"), module.exports);
|
|
23
|
-
__reExport(decorators_exports, require("./
|
|
24
|
-
__reExport(decorators_exports, require("./appendChild"), module.exports);
|
|
23
|
+
__reExport(decorators_exports, require("./applyNode"), module.exports);
|
|
25
24
|
__reExport(decorators_exports, require("./lifecycles"), module.exports);
|
|
26
25
|
__reExport(decorators_exports, require("./query"), module.exports);
|
|
27
26
|
__reExport(decorators_exports, require("./queryAll"), module.exports);
|
|
28
|
-
__reExport(decorators_exports, require("./onConnectedInnerHtml"), module.exports);
|
|
29
27
|
__reExport(decorators_exports, require("./classList"), module.exports);
|
|
30
28
|
__reExport(decorators_exports, require("./style"), module.exports);
|
|
31
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './addEventListener';\nexport * from './attribute';\nexport * from './elementDefine';\nexport * from './
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAc,+BAAd;AACA,+BAAc,wBADd;AAEA,+BAAc,4BAFd;AAGA,+BAAc
|
|
4
|
+
"sourcesContent": ["export * from './addEventListener';\nexport * from './attribute';\nexport * from './elementDefine';\nexport * from './changedAttributeHost';\nexport * from './setAttribute';\nexport * from './emitCustomEvent';\nexport * from './applyNode';\nexport * from './lifecycles';\nexport * from './query';\nexport * from './queryAll';\nexport * from './classList';\nexport * from './style';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAc,+BAAd;AACA,+BAAc,wBADd;AAEA,+BAAc,4BAFd;AAGA,+BAAc,mCAHd;AAIA,+BAAc,2BAJd;AAKA,+BAAc,8BALd;AAMA,+BAAc,wBANd;AAOA,+BAAc,yBAPd;AAQA,+BAAc,oBARd;AASA,+BAAc,uBATd;AAUA,+BAAc,wBAVd;AAWA,+BAAc,oBAXd;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -18,6 +18,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
18
18
|
var lifecycles_exports = {};
|
|
19
19
|
__export(lifecycles_exports, {
|
|
20
20
|
ATTRIBUTE_CHANGED_WILDCARD: () => ATTRIBUTE_CHANGED_WILDCARD,
|
|
21
|
+
INNER_HTML_METADATA_KEY: () => INNER_HTML_METADATA_KEY,
|
|
21
22
|
ON_ADD_EVENT_LISTENER_METADATA_KEY: () => ON_ADD_EVENT_LISTENER_METADATA_KEY,
|
|
22
23
|
ON_AFTER_ADOPTED_METADATA_KEY: () => ON_AFTER_ADOPTED_METADATA_KEY,
|
|
23
24
|
ON_AFTER_CONNECTED_METADATA_KEY: () => ON_AFTER_CONNECTED_METADATA_KEY,
|
|
@@ -25,7 +26,9 @@ __export(lifecycles_exports, {
|
|
|
25
26
|
ON_BEFORE_ADOPTED_METADATA_KEY: () => ON_BEFORE_ADOPTED_METADATA_KEY,
|
|
26
27
|
ON_BEFORE_CONNECTED_METADATA_KEY: () => ON_BEFORE_CONNECTED_METADATA_KEY,
|
|
27
28
|
ON_BEFORE_DISCONNECTED_METADATA_KEY: () => ON_BEFORE_DISCONNECTED_METADATA_KEY,
|
|
29
|
+
ON_CONSTRUCTOR_METADATA_KEY: () => ON_CONSTRUCTOR_METADATA_KEY,
|
|
28
30
|
findAllLifecycleMetadata: () => findAllLifecycleMetadata,
|
|
31
|
+
getOnConnectedInnerHtmlMetadata: () => getOnConnectedInnerHtmlMetadata,
|
|
29
32
|
onAddEventListener: () => onAddEventListener,
|
|
30
33
|
onAdopted: () => onAdopted,
|
|
31
34
|
onAfterAdopted: () => onAfterAdopted,
|
|
@@ -35,10 +38,13 @@ __export(lifecycles_exports, {
|
|
|
35
38
|
onBeforeConnected: () => onBeforeConnected,
|
|
36
39
|
onBeforeDisconnected: () => onBeforeDisconnected,
|
|
37
40
|
onConnected: () => onConnected,
|
|
41
|
+
onConnectedInnerHtml: () => onConnectedInnerHtml,
|
|
42
|
+
onConstructor: () => onConstructor,
|
|
38
43
|
onDisconnected: () => onDisconnected
|
|
39
44
|
});
|
|
40
45
|
module.exports = __toCommonJS(lifecycles_exports);
|
|
41
46
|
var import_core = require("@dooboostore/core");
|
|
47
|
+
const ON_CONSTRUCTOR_METADATA_KEY = Symbol("simple-web-component:on-constructor");
|
|
42
48
|
const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol("simple-web-component:on-before-connected");
|
|
43
49
|
const ON_AFTER_CONNECTED_METADATA_KEY = Symbol("simple-web-component:on-after-connected");
|
|
44
50
|
const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol("simple-web-component:on-before-disconnected");
|
|
@@ -46,6 +52,7 @@ const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol("simple-web-component:on-after
|
|
|
46
52
|
const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-before-adopted");
|
|
47
53
|
const ON_AFTER_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-after-adopted");
|
|
48
54
|
const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol("simple-web-component:on-add-event-listener");
|
|
55
|
+
const INNER_HTML_METADATA_KEY = Symbol("simple-web-component:inner-html");
|
|
49
56
|
const ATTRIBUTE_CHANGED_WILDCARD = "*";
|
|
50
57
|
function createLifecycleDecorator(metadataKey) {
|
|
51
58
|
return (target, propertyKey) => {
|
|
@@ -58,6 +65,7 @@ function createLifecycleDecorator(metadataKey) {
|
|
|
58
65
|
list.push(propertyKey);
|
|
59
66
|
};
|
|
60
67
|
}
|
|
68
|
+
const onConstructor = createLifecycleDecorator(ON_CONSTRUCTOR_METADATA_KEY);
|
|
61
69
|
const onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);
|
|
62
70
|
const onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);
|
|
63
71
|
const onConnected = onAfterConnected;
|
|
@@ -68,8 +76,29 @@ const onBeforeAdopted = createLifecycleDecorator(ON_BEFORE_ADOPTED_METADATA_KEY)
|
|
|
68
76
|
const onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);
|
|
69
77
|
const onAdopted = onAfterAdopted;
|
|
70
78
|
const onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);
|
|
79
|
+
function onConnectedInnerHtml(arg1, arg2, arg3) {
|
|
80
|
+
const decorator = (options, target, propertyKey) => {
|
|
81
|
+
const constructor = target.constructor;
|
|
82
|
+
let list = import_core.ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
|
|
83
|
+
if (!list) {
|
|
84
|
+
list = [];
|
|
85
|
+
import_core.ReflectUtils.defineMetadata(INNER_HTML_METADATA_KEY, list, constructor);
|
|
86
|
+
}
|
|
87
|
+
list.push({ propertyKey, options });
|
|
88
|
+
};
|
|
89
|
+
if (arg2) {
|
|
90
|
+
return decorator({}, arg1, arg2);
|
|
91
|
+
}
|
|
92
|
+
return (target, propertyKey) => {
|
|
93
|
+
decorator(arg1 || {}, target, propertyKey);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
71
96
|
const findAllLifecycleMetadata = (target, metadataKey) => {
|
|
72
97
|
const results = import_core.ReflectUtils.findAllMetadataFlatten(metadataKey, target);
|
|
73
98
|
return results.length > 0 ? results : void 0;
|
|
74
99
|
};
|
|
100
|
+
const getOnConnectedInnerHtmlMetadata = (target) => {
|
|
101
|
+
const constructor = target instanceof Function ? target : target.constructor;
|
|
102
|
+
return import_core.ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
|
|
103
|
+
};
|
|
75
104
|
//# sourceMappingURL=lifecycles.js.map
|