@dooboostore/simple-web-component 1.0.23 → 1.0.25
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 +64 -3212
- package/dist/cjs/decorators/addEventListener.js +1 -1
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/applyAttribute.js +148 -0
- package/dist/cjs/decorators/applyAttribute.js.map +7 -0
- package/dist/cjs/decorators/applyClass.js +164 -0
- package/dist/cjs/decorators/applyClass.js.map +7 -0
- package/dist/cjs/decorators/applyNode.js +97 -109
- package/dist/cjs/decorators/applyNode.js.map +2 -2
- package/dist/cjs/decorators/applyStyle.js +135 -0
- package/dist/cjs/decorators/applyStyle.js.map +7 -0
- package/dist/cjs/decorators/attribute.js +24 -11
- package/dist/cjs/decorators/attribute.js.map +2 -2
- package/dist/cjs/decorators/changedAttributeHost.js +1 -1
- package/dist/cjs/decorators/changedAttributeHost.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +14 -23
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +5 -2
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +3 -3
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +9 -9
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/query.js +78 -3
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +78 -3
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/elements/SwcAppEngine.js +19 -4
- package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +2 -0
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/utils/Utils.js +141 -2
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +1 -1
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/applyAttribute.js +129 -0
- package/dist/esm/decorators/applyAttribute.js.map +7 -0
- package/dist/esm/decorators/applyClass.js +145 -0
- package/dist/esm/decorators/applyClass.js.map +7 -0
- package/dist/esm/decorators/applyNode.js +97 -109
- package/dist/esm/decorators/applyNode.js.map +2 -2
- package/dist/esm/decorators/applyStyle.js +116 -0
- package/dist/esm/decorators/applyStyle.js.map +7 -0
- package/dist/esm/decorators/attribute.js +24 -11
- package/dist/esm/decorators/attribute.js.map +2 -2
- package/dist/esm/decorators/changedAttributeHost.js +1 -1
- package/dist/esm/decorators/changedAttributeHost.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +14 -23
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +5 -2
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +3 -3
- package/dist/esm/decorators/index.js.map +1 -1
- package/dist/esm/decorators/lifecycles.js +9 -9
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/query.js +78 -3
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +78 -3
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/elements/SwcAppEngine.js +19 -4
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +2 -0
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/utils/Utils.js +141 -2
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +3191 -506
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyAttribute.d.ts +22 -0
- package/dist/types/decorators/applyAttribute.d.ts.map +1 -0
- package/dist/types/decorators/applyClass.d.ts +65 -0
- package/dist/types/decorators/applyClass.d.ts.map +1 -0
- package/dist/types/decorators/applyNode.d.ts +18 -104
- package/dist/types/decorators/applyNode.d.ts.map +1 -1
- package/dist/types/decorators/applyStyle.d.ts +21 -0
- package/dist/types/decorators/applyStyle.d.ts.map +1 -0
- package/dist/types/decorators/attribute.d.ts +12 -14
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +3 -3
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +68 -4
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +70 -1
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/elements/SwcAppEngine.d.ts +7 -0
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts +49 -0
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +3191 -506
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +3 -3
- package/src/decorators/addEventListener.ts +1 -1
- package/src/decorators/applyAttribute.ts +147 -0
- package/src/decorators/applyClass.ts +158 -0
- package/src/decorators/applyNode.ts +126 -225
- package/src/decorators/applyStyle.ts +128 -0
- package/src/decorators/attribute.ts +42 -43
- package/src/decorators/changedAttributeHost.ts +2 -2
- package/src/decorators/elementDefine.ts +18 -39
- package/src/decorators/emitCustomEvent.ts +6 -3
- package/src/decorators/index.ts +3 -3
- package/src/decorators/lifecycles.ts +9 -11
- package/src/decorators/query.ts +148 -6
- package/src/decorators/queryAll.ts +149 -3
- package/src/elements/SwcAppEngine.ts +32 -4
- package/src/elements/SwcAppMixin.ts +2 -0
- package/src/index.ts +6 -6
- package/src/utils/Utils.ts +146 -1
- package/dist/cjs/decorators/classList.js +0 -134
- package/dist/cjs/decorators/classList.js.map +0 -7
- package/dist/cjs/decorators/setAttribute.js +0 -111
- package/dist/cjs/decorators/setAttribute.js.map +0 -7
- package/dist/cjs/decorators/style.js +0 -114
- package/dist/cjs/decorators/style.js.map +0 -7
- package/dist/cjs/utils/TemplateUtils.js +0 -109
- package/dist/cjs/utils/TemplateUtils.js.map +0 -7
- package/dist/esm/decorators/classList.js +0 -115
- package/dist/esm/decorators/classList.js.map +0 -7
- package/dist/esm/decorators/setAttribute.js +0 -92
- package/dist/esm/decorators/setAttribute.js.map +0 -7
- package/dist/esm/decorators/style.js +0 -95
- package/dist/esm/decorators/style.js.map +0 -7
- package/dist/esm/utils/TemplateUtils.js +0 -90
- package/dist/esm/utils/TemplateUtils.js.map +0 -7
- package/dist/types/decorators/classList.d.ts +0 -61
- package/dist/types/decorators/classList.d.ts.map +0 -1
- package/dist/types/decorators/setAttribute.d.ts +0 -23
- package/dist/types/decorators/setAttribute.d.ts.map +0 -1
- package/dist/types/decorators/style.d.ts +0 -49
- package/dist/types/decorators/style.d.ts.map +0 -1
- package/dist/types/utils/TemplateUtils.d.ts +0 -59
- package/dist/types/utils/TemplateUtils.d.ts.map +0 -1
- package/src/decorators/classList.ts +0 -172
- package/src/decorators/setAttribute.ts +0 -113
- package/src/decorators/style.ts +0 -140
- package/src/utils/TemplateUtils.ts +0 -92
|
@@ -1,111 +0,0 @@
|
|
|
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 setAttribute_exports = {};
|
|
19
|
-
__export(setAttribute_exports, {
|
|
20
|
-
SET_ATTRIBUTE_METADATA_KEY: () => SET_ATTRIBUTE_METADATA_KEY,
|
|
21
|
-
findAllSetAttributeMetadata: () => findAllSetAttributeMetadata,
|
|
22
|
-
getSetAttributeMetadata: () => getSetAttributeMetadata,
|
|
23
|
-
setAttribute: () => setAttribute,
|
|
24
|
-
setAttributeHost: () => setAttributeHost
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(setAttribute_exports);
|
|
27
|
-
var import_core = require("@dooboostore/core");
|
|
28
|
-
var import_elementDefine = require("./elementDefine");
|
|
29
|
-
var import_Utils = require("../utils/Utils");
|
|
30
|
-
const SET_ATTRIBUTE_METADATA_KEY = Symbol("simple-web-component:set-attribute");
|
|
31
|
-
function setAttribute(selector, name, options = {}) {
|
|
32
|
-
return (target, propertyKey, descriptor) => {
|
|
33
|
-
const constructor = target.constructor;
|
|
34
|
-
let metaList = import_core.ReflectUtils.getOwnMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor);
|
|
35
|
-
if (!metaList) {
|
|
36
|
-
metaList = /* @__PURE__ */ new Map();
|
|
37
|
-
import_core.ReflectUtils.defineMetadata(SET_ATTRIBUTE_METADATA_KEY, metaList, constructor);
|
|
38
|
-
}
|
|
39
|
-
metaList.set(propertyKey, { propertyKey, selector, name, options });
|
|
40
|
-
const original = descriptor.value;
|
|
41
|
-
descriptor.value = async function(...args) {
|
|
42
|
-
(0, import_elementDefine.ensureInit)(this);
|
|
43
|
-
const res = await original.apply(this, args);
|
|
44
|
-
if (res !== void 0) {
|
|
45
|
-
const hostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
46
|
-
const conf = (0, import_elementDefine.getElementConfig)(this);
|
|
47
|
-
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
48
|
-
const targetEls = [];
|
|
49
|
-
const r = options.root || "auto";
|
|
50
|
-
const applyRoot = (t) => {
|
|
51
|
-
if (!t) return;
|
|
52
|
-
if (r === "auto") {
|
|
53
|
-
targetEls.push(t.shadowRoot || t);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (r === "light" || r === "all") targetEls.push(t);
|
|
57
|
-
if ((r === "shadow" || r === "all") && t.shadowRoot) targetEls.push(t.shadowRoot);
|
|
58
|
-
};
|
|
59
|
-
if (selector === ":window") targetEls.push(currentWin);
|
|
60
|
-
else if (selector === ":document") targetEls.push(currentWin.document);
|
|
61
|
-
else if (selector === ":parentHost") applyRoot(hostSet.$parentHost);
|
|
62
|
-
else if (selector === ":appHost") applyRoot(hostSet.$appHost);
|
|
63
|
-
else if (selector === ":firstHost") applyRoot(hostSet.$firstHost);
|
|
64
|
-
else if (selector === ":lastHost") applyRoot(hostSet.$lastHost);
|
|
65
|
-
else if (selector === ":firstAppHost") applyRoot(hostSet.$firstAppHost);
|
|
66
|
-
else if (selector === ":lastAppHost") applyRoot(hostSet.$lastAppHost);
|
|
67
|
-
else if (selector === ":hosts") hostSet.$hosts.forEach(applyRoot);
|
|
68
|
-
else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRoot);
|
|
69
|
-
else if (selector === ":host" || !selector) applyRoot(this);
|
|
70
|
-
else {
|
|
71
|
-
const roots = [];
|
|
72
|
-
if (r === "shadow") {
|
|
73
|
-
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
74
|
-
} else if (r === "light") {
|
|
75
|
-
roots.push(this);
|
|
76
|
-
} else if (r === "all") {
|
|
77
|
-
roots.push(this);
|
|
78
|
-
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
79
|
-
} else {
|
|
80
|
-
roots.push(this.shadowRoot || this);
|
|
81
|
-
}
|
|
82
|
-
roots.forEach((root) => targetEls.push(...root.querySelectorAll(selector)));
|
|
83
|
-
}
|
|
84
|
-
targetEls.forEach((targetEl) => {
|
|
85
|
-
if (!targetEl || typeof targetEl.setAttribute !== "function") return;
|
|
86
|
-
if (res === null) targetEl.removeAttribute(name);
|
|
87
|
-
else targetEl.setAttribute(name, String(res));
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return res;
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
const getSetAttributeMetadata = (target) => {
|
|
95
|
-
const constructor = target instanceof Function ? target : target.constructor;
|
|
96
|
-
return import_core.ReflectUtils.getMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor);
|
|
97
|
-
};
|
|
98
|
-
const findAllSetAttributeMetadata = (target) => {
|
|
99
|
-
const result = /* @__PURE__ */ new Map();
|
|
100
|
-
const maps = import_core.ReflectUtils.findAllMetadata(SET_ATTRIBUTE_METADATA_KEY, target);
|
|
101
|
-
maps.forEach((map) => {
|
|
102
|
-
if (map instanceof Map) {
|
|
103
|
-
map.forEach((v, k) => result.set(k, v));
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
return result;
|
|
107
|
-
};
|
|
108
|
-
function setAttributeHost(name, options) {
|
|
109
|
-
return setAttribute(":host", name, options);
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=setAttribute.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/decorators/setAttribute.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions } from '../types';\n\nexport interface SetAttributeMetadata {\n propertyKey: string | symbol;\n selector: string;\n name: string;\n options: SwcQueryOptions;\n}\n\nexport const SET_ATTRIBUTE_METADATA_KEY = Symbol('simple-web-component:set-attribute');\n\n/**\n * @setAttribute decorator to surgically update an attribute of a target element.\n * Usage: @setAttribute(':host', 'count')\n * Usage: @setAttribute('#child', 'disabled')\n */\nexport function setAttribute(selector: string, name: string): MethodDecorator;\nexport function setAttribute(selector: string, name: string, options?: SwcQueryOptions): MethodDecorator;\nexport function setAttribute(selector: string, name: string, options: SwcQueryOptions = {}): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor) as Map<string | symbol, SetAttributeMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, SetAttributeMetadata>();\n ReflectUtils.defineMetadata(SET_ATTRIBUTE_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, { propertyKey, selector, name, options });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await original.apply(this, args);\n if (res !== undefined) {\n const 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 targetEls: any[] = [];\n const r = options.root || 'auto';\n\n const applyRoot = (t: any) => {\n if (!t) return;\n if (r === 'auto') {\n targetEls.push((t as any).shadowRoot || t);\n return;\n }\n if (r === 'light' || r === 'all') targetEls.push(t);\n if ((r === 'shadow' || r === 'all') && (t as any).shadowRoot) targetEls.push((t as any).shadowRoot);\n };\n\n if (selector === ':window') targetEls.push(currentWin);\n else if (selector === ':document') targetEls.push(currentWin.document as any);\n else 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(this);\n else {\n const roots: any[] = [];\n if (r === 'shadow') {\n if ((this as any).shadowRoot) roots.push((this as any).shadowRoot);\n } else if (r === 'light') {\n roots.push(this as any);\n } else if (r === 'all') {\n roots.push(this as any);\n if ((this as any).shadowRoot) roots.push((this as any).shadowRoot);\n } else {\n roots.push((this as any).shadowRoot || (this as any));\n }\n roots.forEach(root => targetEls.push(...root.querySelectorAll(selector)));\n }\n\n targetEls.forEach(targetEl => {\n if (!targetEl || typeof (targetEl as any).setAttribute !== 'function') return;\n if (res === null) (targetEl as any).removeAttribute(name);\n else (targetEl as any).setAttribute(name, String(res));\n })\n }\n return res;\n };\n };\n}\n\nexport const getSetAttributeMetadata = (target: any): Map<string | symbol, SetAttributeMetadata> | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor);\n};\n\nexport const findAllSetAttributeMetadata = (target: any): Map<string | symbol, SetAttributeMetadata> => {\n const result = new Map<string | symbol, SetAttributeMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, SetAttributeMetadata>>(SET_ATTRIBUTE_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\n/**\n * @setAttributeHost decorator - simplified version of @setAttribute for :host selector\n * Usage: @setAttributeHost('aria-disabled')\n */\nexport function setAttributeHost(name: string, options?: SwcQueryOptions): MethodDecorator {\n return setAttribute(':host', name, options);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
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 style_exports = {};
|
|
19
|
-
__export(style_exports, {
|
|
20
|
-
STYLE_METADATA_KEY: () => STYLE_METADATA_KEY,
|
|
21
|
-
findAllStyleMetadata: () => findAllStyleMetadata,
|
|
22
|
-
removeStyle: () => removeStyle,
|
|
23
|
-
removeStyleHost: () => removeStyleHost,
|
|
24
|
-
setStyle: () => setStyle,
|
|
25
|
-
setStyleHost: () => setStyleHost,
|
|
26
|
-
updateStyle: () => updateStyle,
|
|
27
|
-
updateStyleHost: () => updateStyleHost
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(style_exports);
|
|
30
|
-
var import_core = require("@dooboostore/core");
|
|
31
|
-
var import_elementDefine = require("./elementDefine");
|
|
32
|
-
var import_Utils = require("../utils/Utils");
|
|
33
|
-
const STYLE_METADATA_KEY = Symbol("simple-web-component:style");
|
|
34
|
-
function createStyleDecorator(action) {
|
|
35
|
-
return (selector, options = {}) => {
|
|
36
|
-
return (target, propertyKey, descriptor) => {
|
|
37
|
-
const constructor = target.constructor;
|
|
38
|
-
let metaList = import_core.ReflectUtils.getOwnMetadata(STYLE_METADATA_KEY, constructor);
|
|
39
|
-
if (!metaList) {
|
|
40
|
-
metaList = /* @__PURE__ */ new Map();
|
|
41
|
-
import_core.ReflectUtils.defineMetadata(STYLE_METADATA_KEY, metaList, constructor);
|
|
42
|
-
}
|
|
43
|
-
metaList.set(propertyKey, { propertyKey, selector, action, options });
|
|
44
|
-
const original = descriptor.value;
|
|
45
|
-
descriptor.value = async function(...args) {
|
|
46
|
-
(0, import_elementDefine.ensureInit)(this);
|
|
47
|
-
const res = await original.apply(this, args);
|
|
48
|
-
if (res !== void 0) {
|
|
49
|
-
const r = options.root || "auto";
|
|
50
|
-
const hostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
51
|
-
const targetEls = [];
|
|
52
|
-
if (selector === ":host" || !selector) {
|
|
53
|
-
targetEls.push(this);
|
|
54
|
-
} else if (selector === ":parentHost") {
|
|
55
|
-
if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);
|
|
56
|
-
} else if (selector === ":appHost") {
|
|
57
|
-
if (hostSet.$appHost) targetEls.push(hostSet.$appHost);
|
|
58
|
-
} else {
|
|
59
|
-
if (r === "shadow") {
|
|
60
|
-
const found = this.shadowRoot?.querySelectorAll(selector);
|
|
61
|
-
if (found) targetEls.push(...found);
|
|
62
|
-
} else if (r === "light") {
|
|
63
|
-
const found = this.querySelectorAll(selector);
|
|
64
|
-
if (found) targetEls.push(...found);
|
|
65
|
-
} else if (r === "all") {
|
|
66
|
-
const sFound = this.shadowRoot?.querySelectorAll(selector);
|
|
67
|
-
const lFound = this.querySelectorAll(selector);
|
|
68
|
-
if (sFound) targetEls.push(...sFound);
|
|
69
|
-
if (lFound) targetEls.push(...lFound);
|
|
70
|
-
} else {
|
|
71
|
-
const found = (this.shadowRoot || this).querySelectorAll(selector);
|
|
72
|
-
if (found) targetEls.push(...found);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
targetEls.forEach((targetEl) => {
|
|
76
|
-
if (action === "set") {
|
|
77
|
-
targetEl.style.cssText = "";
|
|
78
|
-
if (typeof res === "object" && res !== null) {
|
|
79
|
-
Object.assign(targetEl.style, res);
|
|
80
|
-
} else if (typeof res === "string") {
|
|
81
|
-
targetEl.style.cssText = res;
|
|
82
|
-
}
|
|
83
|
-
} else if (action === "update") {
|
|
84
|
-
if (typeof res === "object" && res !== null) {
|
|
85
|
-
Object.assign(targetEl.style, res);
|
|
86
|
-
}
|
|
87
|
-
} else if (action === "remove") {
|
|
88
|
-
const props = Array.isArray(res) ? res : [res];
|
|
89
|
-
props.forEach((p) => targetEl.style.removeProperty(String(p)));
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
return res;
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
const setStyle = (selector, options = {}) => createStyleDecorator("set")(selector, options);
|
|
99
|
-
const setStyleHost = (options = {}) => createStyleDecorator("set")(":host", options);
|
|
100
|
-
const updateStyle = (selector, options = {}) => createStyleDecorator("update")(selector, options);
|
|
101
|
-
const updateStyleHost = (options = {}) => createStyleDecorator("update")(":host", options);
|
|
102
|
-
const removeStyle = (selector, options = {}) => createStyleDecorator("remove")(selector, options);
|
|
103
|
-
const removeStyleHost = (options = {}) => createStyleDecorator("remove")(":host", options);
|
|
104
|
-
const findAllStyleMetadata = (target) => {
|
|
105
|
-
const result = /* @__PURE__ */ new Map();
|
|
106
|
-
const maps = import_core.ReflectUtils.findAllMetadata(STYLE_METADATA_KEY, target);
|
|
107
|
-
maps.forEach((map) => {
|
|
108
|
-
if (map instanceof Map) {
|
|
109
|
-
map.forEach((v, k) => result.set(k, v));
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
return result;
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=style.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/decorators/style.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions } from '../types';\n\nexport type StyleAction = 'set' | 'update' | 'remove';\n\nexport interface StyleOptions extends SwcQueryOptions {\n}\n\nexport interface StyleMetadata {\n propertyKey: string | symbol;\n selector: string;\n action: StyleAction;\n options: StyleOptions;\n}\n\nexport const STYLE_METADATA_KEY = Symbol('simple-web-component:style');\n\nfunction createStyleDecorator(action: StyleAction) {\n return (selector: string, options: StyleOptions = {}): MethodDecorator => {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(STYLE_METADATA_KEY, constructor) as Map<string | symbol, StyleMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, StyleMetadata>();\n ReflectUtils.defineMetadata(STYLE_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, { propertyKey, selector, action, options });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await original.apply(this, args);\n if (res !== undefined) {\n const r = options.root || 'auto';\n const hostSet = SwcUtils.getHostSet(this as any);\n const targetEls: HTMLElement[] = [];\n\n if (selector === ':host' || !selector) {\n targetEls.push(this as any);\n } else if (selector === ':parentHost') {\n if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);\n } else if (selector === ':appHost') {\n if (hostSet.$appHost) targetEls.push(hostSet.$appHost);\n } else {\n if (r === 'shadow') {\n const found = this.shadowRoot?.querySelectorAll(selector);\n if (found) targetEls.push(...found);\n } else if (r === 'light') {\n const found = (this as any).querySelectorAll(selector);\n if (found) targetEls.push(...found);\n } else if (r === 'all') {\n const sFound = this.shadowRoot?.querySelectorAll(selector);\n const lFound = (this as any).querySelectorAll(selector);\n if (sFound) targetEls.push(...sFound);\n if (lFound) targetEls.push(...lFound);\n } else {\n // auto\n const found = (this.shadowRoot || (this as any)).querySelectorAll(selector);\n if (found) targetEls.push(...found);\n }\n }\n\n targetEls.forEach(targetEl => {\n if (action === 'set') {\n targetEl.style.cssText = '';\n if (typeof res === 'object' && res !== null) {\n Object.assign(targetEl.style, res);\n } else if (typeof res === 'string') {\n targetEl.style.cssText = res;\n }\n } else if (action === 'update') {\n if (typeof res === 'object' && res !== null) {\n Object.assign(targetEl.style, res);\n }\n } else if (action === 'remove') {\n const props = Array.isArray(res) ? res : [res];\n props.forEach(p => targetEl.style.removeProperty(String(p)));\n }\n });\n }\n return res;\n };\n };\n };\n}\n\n/**\n * @setStyle decorator to surgically set styles on a target element (replaces all existing styles).\n * Usage: @setStyle('#box') getStyles() { return { color: 'red', display: 'block' }; }\n * Usage: @setStyle('#box', { root: 'shadow' }) getStyles() { return { color: 'red' }; }\n */\nexport const setStyle = (selector: string, options: StyleOptions = {}) => createStyleDecorator('set')(selector, options);\n\n/**\n * @setStyleHost decorator - simplified version of @setStyle for :host selector.\n * Usage: @setStyleHost getStyles() { return { color: 'red', display: 'block' }; }\n * Usage: @setStyleHost({ root: 'shadow' }) getStyles() { return { color: 'red' }; }\n */\nexport const setStyleHost = (options: StyleOptions = {}) => createStyleDecorator('set')(':host', options);\n\n/**\n * @updateStyle decorator to surgically update styles on a target element (merges with existing styles).\n * Usage: @updateStyle('#box') updateStyles() { return { color: 'blue' }; }\n * Usage: @updateStyle('#box', { root: 'shadow' }) updateStyles() { return { color: 'blue' }; }\n */\nexport const updateStyle = (selector: string, options: StyleOptions = {}) => createStyleDecorator('update')(selector, options);\n\n/**\n * @updateStyleHost decorator - simplified version of @updateStyle for :host selector.\n * Usage: @updateStyleHost updateStyles() { return { color: 'blue' }; }\n * Usage: @updateStyleHost({ root: 'shadow' }) updateStyles() { return { color: 'blue' }; }\n */\nexport const updateStyleHost = (options: StyleOptions = {}) => createStyleDecorator('update')(':host', options);\n\n/**\n * @removeStyle decorator to surgically remove styles from a target element.\n * Usage: @removeStyle('#box') clearStyles() { return ['color', 'display']; }\n * Usage: @removeStyle('#box', { root: 'shadow' }) clearStyles() { return ['color']; }\n */\nexport const removeStyle = (selector: string, options: StyleOptions = {}) => createStyleDecorator('remove')(selector, options);\n\n/**\n * @removeStyleHost decorator - simplified version of @removeStyle for :host selector.\n * Usage: @removeStyleHost clearStyles() { return ['color', 'display']; }\n * Usage: @removeStyleHost({ root: 'shadow' }) clearStyles() { return ['color']; }\n */\nexport const removeStyleHost = (options: StyleOptions = {}) => createStyleDecorator('remove')(':host', options);\n\nexport const findAllStyleMetadata = (target: any): Map<string | symbol, StyleMetadata> => {\n const result = new Map<string | symbol, StyleMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, StyleMetadata>>(STYLE_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
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
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 TemplateUtils_exports = {};
|
|
19
|
-
__export(TemplateUtils_exports, {
|
|
20
|
-
TemplateUtils: () => TemplateUtils,
|
|
21
|
-
commentNode: () => commentNode,
|
|
22
|
-
createElement: () => createElement,
|
|
23
|
-
htmlAElement: () => htmlAElement,
|
|
24
|
-
htmlArticleElement: () => htmlArticleElement,
|
|
25
|
-
htmlButtonElement: () => htmlButtonElement,
|
|
26
|
-
htmlDivElement: () => htmlDivElement,
|
|
27
|
-
htmlFragment: () => htmlFragment,
|
|
28
|
-
htmlH1Element: () => htmlH1Element,
|
|
29
|
-
htmlH2Element: () => htmlH2Element,
|
|
30
|
-
htmlH3Element: () => htmlH3Element,
|
|
31
|
-
htmlH4Element: () => htmlH4Element,
|
|
32
|
-
htmlH5Element: () => htmlH5Element,
|
|
33
|
-
htmlH6Element: () => htmlH6Element,
|
|
34
|
-
htmlInputElement: () => htmlInputElement,
|
|
35
|
-
htmlLiElement: () => htmlLiElement,
|
|
36
|
-
htmlPElement: () => htmlPElement,
|
|
37
|
-
htmlSectionElement: () => htmlSectionElement,
|
|
38
|
-
htmlSpanElement: () => htmlSpanElement,
|
|
39
|
-
htmlUlElement: () => htmlUlElement,
|
|
40
|
-
textNode: () => textNode
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(TemplateUtils_exports);
|
|
43
|
-
var TemplateUtils;
|
|
44
|
-
((TemplateUtils2) => {
|
|
45
|
-
TemplateUtils2.htmlFragment = (strings, ...values) => {
|
|
46
|
-
const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
|
|
47
|
-
const template = document.createElement("template");
|
|
48
|
-
template.innerHTML = raw.trim();
|
|
49
|
-
return template.content;
|
|
50
|
-
};
|
|
51
|
-
TemplateUtils2.textNode = (strings, ...values) => {
|
|
52
|
-
const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
|
|
53
|
-
return document.createTextNode(raw);
|
|
54
|
-
};
|
|
55
|
-
TemplateUtils2.commentNode = (strings, ...values) => {
|
|
56
|
-
const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
|
|
57
|
-
return document.createComment(raw);
|
|
58
|
-
};
|
|
59
|
-
TemplateUtils2.createElement = (info, attrs = {}) => {
|
|
60
|
-
const el = document.createElement(info.tagName);
|
|
61
|
-
if (info.innerHtml !== void 0) el.innerHTML = info.innerHtml;
|
|
62
|
-
Object.entries(attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));
|
|
63
|
-
return el;
|
|
64
|
-
};
|
|
65
|
-
const createTagFunction = (tagName) => {
|
|
66
|
-
return (strings, ...values) => {
|
|
67
|
-
const el = document.createElement(tagName);
|
|
68
|
-
el.innerHTML = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
|
|
69
|
-
return el;
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
TemplateUtils2.htmlDivElement = createTagFunction("div");
|
|
73
|
-
TemplateUtils2.htmlSpanElement = createTagFunction("span");
|
|
74
|
-
TemplateUtils2.htmlButtonElement = createTagFunction("button");
|
|
75
|
-
TemplateUtils2.htmlUlElement = createTagFunction("ul");
|
|
76
|
-
TemplateUtils2.htmlLiElement = createTagFunction("li");
|
|
77
|
-
TemplateUtils2.htmlInputElement = createTagFunction("input");
|
|
78
|
-
TemplateUtils2.htmlAElement = createTagFunction("a");
|
|
79
|
-
TemplateUtils2.htmlPElement = createTagFunction("p");
|
|
80
|
-
TemplateUtils2.htmlH1Element = createTagFunction("h1");
|
|
81
|
-
TemplateUtils2.htmlH2Element = createTagFunction("h2");
|
|
82
|
-
TemplateUtils2.htmlH3Element = createTagFunction("h3");
|
|
83
|
-
TemplateUtils2.htmlH4Element = createTagFunction("h4");
|
|
84
|
-
TemplateUtils2.htmlH5Element = createTagFunction("h5");
|
|
85
|
-
TemplateUtils2.htmlH6Element = createTagFunction("h6");
|
|
86
|
-
TemplateUtils2.htmlSectionElement = createTagFunction("section");
|
|
87
|
-
TemplateUtils2.htmlArticleElement = createTagFunction("article");
|
|
88
|
-
})(TemplateUtils || (TemplateUtils = {}));
|
|
89
|
-
const htmlFragment = TemplateUtils.htmlFragment;
|
|
90
|
-
const textNode = TemplateUtils.textNode;
|
|
91
|
-
const commentNode = TemplateUtils.commentNode;
|
|
92
|
-
const createElement = TemplateUtils.createElement;
|
|
93
|
-
const htmlDivElement = TemplateUtils.htmlDivElement;
|
|
94
|
-
const htmlSpanElement = TemplateUtils.htmlSpanElement;
|
|
95
|
-
const htmlButtonElement = TemplateUtils.htmlButtonElement;
|
|
96
|
-
const htmlUlElement = TemplateUtils.htmlUlElement;
|
|
97
|
-
const htmlLiElement = TemplateUtils.htmlLiElement;
|
|
98
|
-
const htmlInputElement = TemplateUtils.htmlInputElement;
|
|
99
|
-
const htmlAElement = TemplateUtils.htmlAElement;
|
|
100
|
-
const htmlPElement = TemplateUtils.htmlPElement;
|
|
101
|
-
const htmlH1Element = TemplateUtils.htmlH1Element;
|
|
102
|
-
const htmlH2Element = TemplateUtils.htmlH2Element;
|
|
103
|
-
const htmlH3Element = TemplateUtils.htmlH3Element;
|
|
104
|
-
const htmlH4Element = TemplateUtils.htmlH4Element;
|
|
105
|
-
const htmlH5Element = TemplateUtils.htmlH5Element;
|
|
106
|
-
const htmlH6Element = TemplateUtils.htmlH6Element;
|
|
107
|
-
const htmlSectionElement = TemplateUtils.htmlSectionElement;
|
|
108
|
-
const htmlArticleElement = TemplateUtils.htmlArticleElement;
|
|
109
|
-
//# sourceMappingURL=TemplateUtils.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/TemplateUtils.ts"],
|
|
4
|
-
"sourcesContent": ["export interface CreateElementInfo {\n tagName: string;\n innerHtml?: string;\n}\n\nexport namespace TemplateUtils {\n /**\n * Tagged template function to create a DocumentFragment from HTML string.\n */\n export const htmlFragment = (strings: TemplateStringsArray, ...values: any[]): DocumentFragment => {\n const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== undefined ? values[i] : ''), '');\n const template = document.createElement('template');\n template.innerHTML = raw.trim();\n return template.content;\n };\n\n /**\n * Tagged template function to create a Text node from string.\n */\n export const textNode = (strings: TemplateStringsArray, ...values: any[]): Text => {\n const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== undefined ? values[i] : ''), '');\n return document.createTextNode(raw);\n };\n\n /**\n * Tagged template function to create a Comment node from string.\n */\n export const commentNode = (strings: TemplateStringsArray, ...values: any[]): Comment => {\n const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== undefined ? values[i] : ''), '');\n return document.createComment(raw);\n };\n\n /**\n * Generic element creator using a configuration object and attribute map.\n */\n export const createElement = <T extends HTMLElement>(info: CreateElementInfo, attrs: Record<string, any> = {}): T => {\n const el = document.createElement(info.tagName) as T;\n if (info.innerHtml !== undefined) el.innerHTML = info.innerHtml;\n Object.entries(attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n return el;\n };\n\n /**\n * Internal factory to create tagged template functions for specific HTML elements.\n */\n const createTagFunction = <T extends HTMLElement>(tagName: string) => {\n return (strings: TemplateStringsArray, ...values: any[]): T => {\n const el = document.createElement(tagName) as T;\n el.innerHTML = strings.reduce((acc, str, i) => acc + str + (values[i] !== undefined ? values[i] : ''), '');\n return el;\n };\n };\n\n // Specific Element Factories\n export const htmlDivElement = createTagFunction<HTMLDivElement>('div');\n export const htmlSpanElement = createTagFunction<HTMLSpanElement>('span');\n export const htmlButtonElement = createTagFunction<HTMLButtonElement>('button');\n export const htmlUlElement = createTagFunction<HTMLUListElement>('ul');\n export const htmlLiElement = createTagFunction<HTMLLIElement>('li');\n export const htmlInputElement = createTagFunction<HTMLInputElement>('input');\n export const htmlAElement = createTagFunction<HTMLAnchorElement>('a');\n export const htmlPElement = createTagFunction<HTMLParagraphElement>('p');\n export const htmlH1Element = createTagFunction<HTMLHeadingElement>('h1');\n export const htmlH2Element = createTagFunction<HTMLHeadingElement>('h2');\n export const htmlH3Element = createTagFunction<HTMLHeadingElement>('h3');\n export const htmlH4Element = createTagFunction<HTMLHeadingElement>('h4');\n export const htmlH5Element = createTagFunction<HTMLHeadingElement>('h5');\n export const htmlH6Element = createTagFunction<HTMLHeadingElement>('h6');\n export const htmlSectionElement = createTagFunction<HTMLElement>('section');\n export const htmlArticleElement = createTagFunction<HTMLElement>('article');\n}\n\nexport const htmlFragment = TemplateUtils.htmlFragment;\nexport const textNode = TemplateUtils.textNode;\nexport const commentNode = TemplateUtils.commentNode;\nexport const createElement = TemplateUtils.createElement;\nexport const htmlDivElement = TemplateUtils.htmlDivElement;\nexport const htmlSpanElement = TemplateUtils.htmlSpanElement;\nexport const htmlButtonElement = TemplateUtils.htmlButtonElement;\nexport const htmlUlElement = TemplateUtils.htmlUlElement;\nexport const htmlLiElement = TemplateUtils.htmlLiElement;\nexport const htmlInputElement = TemplateUtils.htmlInputElement;\nexport const htmlAElement = TemplateUtils.htmlAElement;\nexport const htmlPElement = TemplateUtils.htmlPElement;\nexport const htmlH1Element = TemplateUtils.htmlH1Element;\nexport const htmlH2Element = TemplateUtils.htmlH2Element;\nexport const htmlH3Element = TemplateUtils.htmlH3Element;\nexport const htmlH4Element = TemplateUtils.htmlH4Element;\nexport const htmlH5Element = TemplateUtils.htmlH5Element;\nexport const htmlH6Element = TemplateUtils.htmlH6Element;\nexport const htmlSectionElement = TemplateUtils.htmlSectionElement;\nexport const htmlArticleElement = TemplateUtils.htmlArticleElement;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["TemplateUtils"]
|
|
7
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { ReflectUtils } from "@dooboostore/core";
|
|
2
|
-
import { ensureInit } from "./elementDefine.js";
|
|
3
|
-
import { SwcUtils } from "../utils/Utils.js";
|
|
4
|
-
const CLASS_LIST_METADATA_KEY = Symbol("simple-web-component:class-list");
|
|
5
|
-
function createClassListDecorator(action) {
|
|
6
|
-
return (selector, options = {}) => {
|
|
7
|
-
return (target, propertyKey, descriptor) => {
|
|
8
|
-
const constructor = target.constructor;
|
|
9
|
-
let metaList = ReflectUtils.getOwnMetadata(CLASS_LIST_METADATA_KEY, constructor);
|
|
10
|
-
if (!metaList) {
|
|
11
|
-
metaList = /* @__PURE__ */ new Map();
|
|
12
|
-
ReflectUtils.defineMetadata(CLASS_LIST_METADATA_KEY, metaList, constructor);
|
|
13
|
-
}
|
|
14
|
-
metaList.set(propertyKey, { propertyKey, selector, action, options });
|
|
15
|
-
const original = descriptor.value;
|
|
16
|
-
descriptor.value = async function(...args) {
|
|
17
|
-
ensureInit(this);
|
|
18
|
-
const res = await original.apply(this, args);
|
|
19
|
-
if (res !== void 0) {
|
|
20
|
-
const r = options.root || "auto";
|
|
21
|
-
const hostSet = SwcUtils.getHostSet(this);
|
|
22
|
-
const targetEls = [];
|
|
23
|
-
if (selector === ":host" || !selector) {
|
|
24
|
-
targetEls.push(this);
|
|
25
|
-
} else if (selector === ":parentHost") {
|
|
26
|
-
if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);
|
|
27
|
-
} else if (selector === ":appHost") {
|
|
28
|
-
if (hostSet.$appHost) targetEls.push(hostSet.$appHost);
|
|
29
|
-
} else {
|
|
30
|
-
if (r === "shadow") {
|
|
31
|
-
const found = this.shadowRoot?.querySelectorAll(selector);
|
|
32
|
-
if (found) targetEls.push(...found);
|
|
33
|
-
} else if (r === "light") {
|
|
34
|
-
const found = this.querySelectorAll(selector);
|
|
35
|
-
if (found) targetEls.push(...found);
|
|
36
|
-
} else if (r === "all") {
|
|
37
|
-
const sFound = this.shadowRoot?.querySelectorAll(selector);
|
|
38
|
-
const lFound = this.querySelectorAll(selector);
|
|
39
|
-
if (sFound) targetEls.push(...sFound);
|
|
40
|
-
if (lFound) targetEls.push(...lFound);
|
|
41
|
-
} else {
|
|
42
|
-
const found = (this.shadowRoot || this).querySelectorAll(selector);
|
|
43
|
-
if (found) targetEls.push(...found);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
targetEls.forEach((targetEl) => {
|
|
47
|
-
if (action === "set") {
|
|
48
|
-
let classes = "";
|
|
49
|
-
if (typeof res === "object" && res !== null && !Array.isArray(res)) {
|
|
50
|
-
classes = Object.entries(res).filter(([_, force]) => !!force).map(([cls]) => cls).join(" ");
|
|
51
|
-
} else {
|
|
52
|
-
classes = Array.isArray(res) ? res.join(" ") : String(res);
|
|
53
|
-
}
|
|
54
|
-
targetEl.className = classes;
|
|
55
|
-
} else if (action === "update") {
|
|
56
|
-
if (typeof res === "object" && res !== null && !Array.isArray(res)) {
|
|
57
|
-
Object.entries(res).forEach(([cls, force]) => {
|
|
58
|
-
targetEl.classList.toggle(cls, !!force);
|
|
59
|
-
});
|
|
60
|
-
} else if (res !== void 0 && res !== null) {
|
|
61
|
-
const classes = Array.isArray(res) ? res.map(String) : [String(res)];
|
|
62
|
-
targetEl.classList.add(...classes);
|
|
63
|
-
}
|
|
64
|
-
} else if (action === "add") {
|
|
65
|
-
const classes = Array.isArray(res) ? res.map(String) : [String(res)];
|
|
66
|
-
targetEl.classList.add(...classes);
|
|
67
|
-
} else if (action === "remove") {
|
|
68
|
-
const classes = Array.isArray(res) ? res.map(String) : [String(res)];
|
|
69
|
-
targetEl.classList.remove(...classes);
|
|
70
|
-
} else if (action === "toggle") {
|
|
71
|
-
const classes = Array.isArray(res) ? res.map(String) : [String(res)];
|
|
72
|
-
classes.forEach((c) => targetEl.classList.toggle(c));
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return res;
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
const setClassList = (selector, options = {}) => createClassListDecorator("set")(selector, options);
|
|
82
|
-
const updateClassList = (selector, options = {}) => createClassListDecorator("update")(selector, options);
|
|
83
|
-
const addClassList = (selector, options = {}) => createClassListDecorator("add")(selector, options);
|
|
84
|
-
const removeClassList = (selector, options = {}) => createClassListDecorator("remove")(selector, options);
|
|
85
|
-
const toggleClassList = (selector, options = {}) => createClassListDecorator("toggle")(selector, options);
|
|
86
|
-
const setClassListHost = (options = {}) => createClassListDecorator("set")(":host", options);
|
|
87
|
-
const updateClassListHost = (options = {}) => createClassListDecorator("update")(":host", options);
|
|
88
|
-
const addClassListHost = (options = {}) => createClassListDecorator("add")(":host", options);
|
|
89
|
-
const removeClassListHost = (options = {}) => createClassListDecorator("remove")(":host", options);
|
|
90
|
-
const toggleClassListHost = (options = {}) => createClassListDecorator("toggle")(":host", options);
|
|
91
|
-
const findAllClassListMetadata = (target) => {
|
|
92
|
-
const result = /* @__PURE__ */ new Map();
|
|
93
|
-
const maps = ReflectUtils.findAllMetadata(CLASS_LIST_METADATA_KEY, target);
|
|
94
|
-
maps.forEach((map) => {
|
|
95
|
-
if (map instanceof Map) {
|
|
96
|
-
map.forEach((v, k) => result.set(k, v));
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
return result;
|
|
100
|
-
};
|
|
101
|
-
export {
|
|
102
|
-
CLASS_LIST_METADATA_KEY,
|
|
103
|
-
addClassList,
|
|
104
|
-
addClassListHost,
|
|
105
|
-
findAllClassListMetadata,
|
|
106
|
-
removeClassList,
|
|
107
|
-
removeClassListHost,
|
|
108
|
-
setClassList,
|
|
109
|
-
setClassListHost,
|
|
110
|
-
toggleClassList,
|
|
111
|
-
toggleClassListHost,
|
|
112
|
-
updateClassList,
|
|
113
|
-
updateClassListHost
|
|
114
|
-
};
|
|
115
|
-
//# sourceMappingURL=classList.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/decorators/classList.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions } from '../types';\n\nexport const CLASS_LIST_METADATA_KEY = Symbol('simple-web-component:class-list');\n\nexport type ClassListAction = 'set' | 'update' | 'add' | 'remove' | 'toggle';\n\nexport interface ClassListMetadata {\n propertyKey: string | symbol;\n selector: string;\n action: ClassListAction;\n options: SwcQueryOptions;\n}\n\nfunction createClassListDecorator(action: ClassListAction) {\n return (selector: string, options: SwcQueryOptions = {}): MethodDecorator => {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(CLASS_LIST_METADATA_KEY, constructor) as Map<string | symbol, ClassListMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ClassListMetadata>();\n ReflectUtils.defineMetadata(CLASS_LIST_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, { propertyKey, selector, action, options });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await original.apply(this, args);\n if (res !== undefined) {\n const r = options.root || 'auto';\n const hostSet = SwcUtils.getHostSet(this as any);\n const targetEls: HTMLElement[] = [];\n\n if (selector === ':host' || !selector) {\n targetEls.push(this as any);\n } else if (selector === ':parentHost') {\n if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);\n } else if (selector === ':appHost') {\n if (hostSet.$appHost) targetEls.push(hostSet.$appHost);\n } else {\n if (r === 'shadow') {\n const found = this.shadowRoot?.querySelectorAll(selector);\n if (found) targetEls.push(...found);\n } else if (r === 'light') {\n const found = (this as any).querySelectorAll(selector);\n if (found) targetEls.push(...found);\n } else if (r === 'all') {\n const sFound = this.shadowRoot?.querySelectorAll(selector);\n const lFound = (this as any).querySelectorAll(selector);\n if (sFound) targetEls.push(...sFound);\n if (lFound) targetEls.push(...lFound);\n } else {\n // auto\n const found = (this.shadowRoot || (this as any)).querySelectorAll(selector);\n if (found) targetEls.push(...found);\n }\n }\n\n targetEls.forEach(targetEl => {\n if (action === 'set') {\n let classes = '';\n if (typeof res === 'object' && res !== null && !Array.isArray(res)) {\n classes = Object.entries(res)\n .filter(([_, force]) => !!force)\n .map(([cls]) => cls)\n .join(' ');\n } else {\n classes = Array.isArray(res) ? res.join(' ') : String(res);\n }\n targetEl.className = classes;\n } else if (action === 'update') {\n if (typeof res === 'object' && res !== null && !Array.isArray(res)) {\n Object.entries(res).forEach(([cls, force]) => {\n targetEl.classList.toggle(cls, !!force);\n });\n } else if (res !== undefined && res !== null) {\n const classes = Array.isArray(res) ? res.map(String) : [String(res)];\n targetEl.classList.add(...classes);\n }\n } else if (action === 'add') {\n const classes = Array.isArray(res) ? res.map(String) : [String(res)];\n targetEl.classList.add(...classes);\n } else if (action === 'remove') {\n const classes = Array.isArray(res) ? res.map(String) : [String(res)];\n targetEl.classList.remove(...classes);\n } else if (action === 'toggle') {\n const classes = Array.isArray(res) ? res.map(String) : [String(res)];\n classes.forEach(c => targetEl.classList.toggle(c));\n }\n });\n }\n return res;\n };\n };\n };\n}\n\n/**\n * @setClassList decorator to surgically replace all classes on a target element.\n * Returns: string | string[]\n */\nexport const setClassList = (selector: string, options: SwcQueryOptions = {}) => createClassListDecorator('set')(selector, options);\n\n/**\n * @updateClassList decorator to surgically update specific classes.\n * Returns: Record<string, boolean> (toggle with force) | string | string[] (add)\n */\nexport const updateClassList = (selector: string, options: SwcQueryOptions = {}) => createClassListDecorator('update')(selector, options);\n\n/**\n * @addClassList decorator to surgically add classes to a target element.\n * Returns: string | string[]\n */\nexport const addClassList = (selector: string, options: SwcQueryOptions = {}) => createClassListDecorator('add')(selector, options);\n\n/**\n * @removeClassList decorator to surgically remove classes from a target element.\n * Returns: string | string[]\n */\nexport const removeClassList = (selector: string, options: SwcQueryOptions = {}) => createClassListDecorator('remove')(selector, options);\n\n/**\n * @toggleClassList decorator to surgically toggle classes on a target element.\n * Returns: string | string[]\n */\nexport const toggleClassList = (selector: string, options: SwcQueryOptions = {}) => createClassListDecorator('toggle')(selector, options);\n\n// Host-specific versions (for :host selector)\n\n/**\n * @setClassListHost decorator to set classes on :host element.\n * Returns: string | string[]\n */\nexport const setClassListHost = (options: SwcQueryOptions = {}) => createClassListDecorator('set')(':host', options);\n\n/**\n * @updateClassListHost decorator to update specific classes on :host.\n * Returns: Record<string, boolean> (toggle with force) | string | string[] (add)\n */\nexport const updateClassListHost = (options: SwcQueryOptions = {}) => createClassListDecorator('update')(':host', options);\n\n/**\n * @addClassListHost decorator to add classes to :host element.\n * Returns: string | string[]\n */\nexport const addClassListHost = (options: SwcQueryOptions = {}) => createClassListDecorator('add')(':host', options);\n\n/**\n * @removeClassListHost decorator to remove classes from :host element.\n * Returns: string | string[]\n */\nexport const removeClassListHost = (options: SwcQueryOptions = {}) => createClassListDecorator('remove')(':host', options);\n\n/**\n * @toggleClassListHost decorator to toggle classes on :host element.\n * Returns: string | string[]\n */\nexport const toggleClassListHost = (options: SwcQueryOptions = {}) => createClassListDecorator('toggle')(':host', options);\n\nexport const findAllClassListMetadata = (target: any): Map<string | symbol, ClassListMetadata> => {\n const result = new Map<string | symbol, ClassListMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ClassListMetadata>>(CLASS_LIST_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
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { ReflectUtils } from "@dooboostore/core";
|
|
2
|
-
import { ensureInit, getElementConfig } from "./elementDefine.js";
|
|
3
|
-
import { SwcUtils } from "../utils/Utils.js";
|
|
4
|
-
const SET_ATTRIBUTE_METADATA_KEY = Symbol("simple-web-component:set-attribute");
|
|
5
|
-
function setAttribute(selector, name, options = {}) {
|
|
6
|
-
return (target, propertyKey, descriptor) => {
|
|
7
|
-
const constructor = target.constructor;
|
|
8
|
-
let metaList = ReflectUtils.getOwnMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor);
|
|
9
|
-
if (!metaList) {
|
|
10
|
-
metaList = /* @__PURE__ */ new Map();
|
|
11
|
-
ReflectUtils.defineMetadata(SET_ATTRIBUTE_METADATA_KEY, metaList, constructor);
|
|
12
|
-
}
|
|
13
|
-
metaList.set(propertyKey, { propertyKey, selector, name, options });
|
|
14
|
-
const original = descriptor.value;
|
|
15
|
-
descriptor.value = async function(...args) {
|
|
16
|
-
ensureInit(this);
|
|
17
|
-
const res = await original.apply(this, args);
|
|
18
|
-
if (res !== void 0) {
|
|
19
|
-
const hostSet = SwcUtils.getHostSet(this);
|
|
20
|
-
const conf = getElementConfig(this);
|
|
21
|
-
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
22
|
-
const targetEls = [];
|
|
23
|
-
const r = options.root || "auto";
|
|
24
|
-
const applyRoot = (t) => {
|
|
25
|
-
if (!t) return;
|
|
26
|
-
if (r === "auto") {
|
|
27
|
-
targetEls.push(t.shadowRoot || t);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (r === "light" || r === "all") targetEls.push(t);
|
|
31
|
-
if ((r === "shadow" || r === "all") && t.shadowRoot) targetEls.push(t.shadowRoot);
|
|
32
|
-
};
|
|
33
|
-
if (selector === ":window") targetEls.push(currentWin);
|
|
34
|
-
else if (selector === ":document") targetEls.push(currentWin.document);
|
|
35
|
-
else if (selector === ":parentHost") applyRoot(hostSet.$parentHost);
|
|
36
|
-
else if (selector === ":appHost") applyRoot(hostSet.$appHost);
|
|
37
|
-
else if (selector === ":firstHost") applyRoot(hostSet.$firstHost);
|
|
38
|
-
else if (selector === ":lastHost") applyRoot(hostSet.$lastHost);
|
|
39
|
-
else if (selector === ":firstAppHost") applyRoot(hostSet.$firstAppHost);
|
|
40
|
-
else if (selector === ":lastAppHost") applyRoot(hostSet.$lastAppHost);
|
|
41
|
-
else if (selector === ":hosts") hostSet.$hosts.forEach(applyRoot);
|
|
42
|
-
else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRoot);
|
|
43
|
-
else if (selector === ":host" || !selector) applyRoot(this);
|
|
44
|
-
else {
|
|
45
|
-
const roots = [];
|
|
46
|
-
if (r === "shadow") {
|
|
47
|
-
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
48
|
-
} else if (r === "light") {
|
|
49
|
-
roots.push(this);
|
|
50
|
-
} else if (r === "all") {
|
|
51
|
-
roots.push(this);
|
|
52
|
-
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
53
|
-
} else {
|
|
54
|
-
roots.push(this.shadowRoot || this);
|
|
55
|
-
}
|
|
56
|
-
roots.forEach((root) => targetEls.push(...root.querySelectorAll(selector)));
|
|
57
|
-
}
|
|
58
|
-
targetEls.forEach((targetEl) => {
|
|
59
|
-
if (!targetEl || typeof targetEl.setAttribute !== "function") return;
|
|
60
|
-
if (res === null) targetEl.removeAttribute(name);
|
|
61
|
-
else targetEl.setAttribute(name, String(res));
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
return res;
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
const getSetAttributeMetadata = (target) => {
|
|
69
|
-
const constructor = target instanceof Function ? target : target.constructor;
|
|
70
|
-
return ReflectUtils.getMetadata(SET_ATTRIBUTE_METADATA_KEY, constructor);
|
|
71
|
-
};
|
|
72
|
-
const findAllSetAttributeMetadata = (target) => {
|
|
73
|
-
const result = /* @__PURE__ */ new Map();
|
|
74
|
-
const maps = ReflectUtils.findAllMetadata(SET_ATTRIBUTE_METADATA_KEY, target);
|
|
75
|
-
maps.forEach((map) => {
|
|
76
|
-
if (map instanceof Map) {
|
|
77
|
-
map.forEach((v, k) => result.set(k, v));
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return result;
|
|
81
|
-
};
|
|
82
|
-
function setAttributeHost(name, options) {
|
|
83
|
-
return setAttribute(":host", name, options);
|
|
84
|
-
}
|
|
85
|
-
export {
|
|
86
|
-
SET_ATTRIBUTE_METADATA_KEY,
|
|
87
|
-
findAllSetAttributeMetadata,
|
|
88
|
-
getSetAttributeMetadata,
|
|
89
|
-
setAttribute,
|
|
90
|
-
setAttributeHost
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=setAttribute.js.map
|