agile-core 3.0.1 → 3.0.3
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 +355 -353
- package/dist/core.cjs.js +1 -1
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.d.ts +3 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.es.js +81 -70
- package/dist/core.es.js.map +1 -1
- package/package.json +84 -65
package/dist/core.es.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { createApp as e, defineComponent as t, useAttrs as n,
|
|
2
|
-
import { merge as
|
|
3
|
-
var
|
|
4
|
-
const
|
|
5
|
-
const _AuiComponent = class _AuiComponent extends (
|
|
1
|
+
import { createApp as e, defineComponent as t, useAttrs as n, shallowRef as r, ref as i, useSlots as o, onMounted as s, h as a } from "vue";
|
|
2
|
+
import { merge as u } from "ts-deepmerge";
|
|
3
|
+
var l, h;
|
|
4
|
+
const c = __AUI_CONFIG__.tagPrefix || "aui", d = "data-v-aui", p = Symbol("shadow");
|
|
5
|
+
const _AuiComponent = class _AuiComponent extends (h = HTMLElement, l = p, h) {
|
|
6
6
|
constructor(e2) {
|
|
7
|
-
super(), this.__hasVue__ = false, this[
|
|
7
|
+
super(), this.__hasVue__ = false, this[l] = { needHook: false, slot: {} }, this[_AuiComponent.shadowSymbol].options = e2 || {}, this.$initAttrs();
|
|
8
8
|
}
|
|
9
9
|
connectedCallback() {
|
|
10
10
|
this.$needInit() && (this.$needHook(true), this.$initVue());
|
|
@@ -52,7 +52,7 @@ const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
|
|
|
52
52
|
if (n2.getAttribute(e2) === t2) return;
|
|
53
53
|
n2.setAttribute(e2, t2);
|
|
54
54
|
}
|
|
55
|
-
this.$isShowProp(
|
|
55
|
+
this.$isShowProp(f.vueAttrName(e2)) && super.setAttribute(e2, t2), "value" === e2 && n2 ? this.value = n2.getAttribute(e2) : this.$attrChange(e2);
|
|
56
56
|
}
|
|
57
57
|
getAttribute(e2) {
|
|
58
58
|
const t2 = this[_AuiComponent.shadowSymbol].el;
|
|
@@ -61,11 +61,11 @@ const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
|
|
|
61
61
|
removeAttribute(e2) {
|
|
62
62
|
const t2 = this[_AuiComponent.shadowSymbol].el;
|
|
63
63
|
t2 && t2.removeAttribute(e2);
|
|
64
|
-
this.$isShowProp(
|
|
64
|
+
this.$isShowProp(f.vueAttrName(e2)) && super.removeAttribute(e2), this.$attrChange(e2);
|
|
65
65
|
}
|
|
66
66
|
attributeChangedCallback(e2, t2, n2) {
|
|
67
67
|
const r2 = this[_AuiComponent.shadowSymbol].el;
|
|
68
|
-
r2 && t2 !== n2 && (this.$isShowProp(
|
|
68
|
+
r2 && t2 !== n2 && (this.$isShowProp(f.vueAttrName(e2)) || super.removeAttribute(e2), r2.setAttribute(e2, n2 || ""), "value" !== e2 && this.$attrChange(e2));
|
|
69
69
|
}
|
|
70
70
|
static $anyToArray(e2) {
|
|
71
71
|
let t2 = [];
|
|
@@ -150,11 +150,11 @@ const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
|
|
|
150
150
|
const t2 = (e2 = e2 || this).childNodes, n2 = { default: [] };
|
|
151
151
|
for (; t2.length > 0; ) {
|
|
152
152
|
const r2 = t2[0];
|
|
153
|
-
if ((_a = r2.parentNode) == null ? void 0 : _a.removeChild(r2),
|
|
153
|
+
if ((_a = r2.parentNode) == null ? void 0 : _a.removeChild(r2), m.$isForAuiSlot(r2)) {
|
|
154
154
|
const t3 = r2.getAttribute("for") || "default";
|
|
155
155
|
n2[t3] = n2[t3] || [];
|
|
156
156
|
const i2 = Array.prototype.slice.call(r2.childNodes);
|
|
157
|
-
|
|
157
|
+
m.prototype.$bind.call(r2, e2), n2[t3].push(...i2);
|
|
158
158
|
} else n2.default.push(r2);
|
|
159
159
|
}
|
|
160
160
|
return n2;
|
|
@@ -166,38 +166,38 @@ const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
|
|
|
166
166
|
$attrChange(e2) {
|
|
167
167
|
if ("value" === e2) {
|
|
168
168
|
const e3 = this.value;
|
|
169
|
-
super.hasAttribute(
|
|
169
|
+
super.hasAttribute(d) ? this.$call("$emit", "update:value", e3) : super.dispatchEvent(new CustomEvent("input", { bubbles: true, composed: true }));
|
|
170
170
|
}
|
|
171
|
-
this.dispatchEvent(new CustomEvent("aui-attr-change", { bubbles: true, composed: true, detail: { attributeName:
|
|
171
|
+
this.dispatchEvent(new CustomEvent("aui-attr-change", { bubbles: true, composed: true, detail: { attributeName: f.vueAttrName(e2) } }));
|
|
172
172
|
}
|
|
173
173
|
$initAttrs() {
|
|
174
174
|
const e2 = this.attributes, t2 = document.createElement("div");
|
|
175
175
|
for (let n2 = 0; n2 < e2.length; n2++) {
|
|
176
176
|
const r2 = e2[n2];
|
|
177
|
-
t2.setAttribute(r2.name, r2.value), this.$isShowProp(
|
|
177
|
+
t2.setAttribute(r2.name, r2.value), this.$isShowProp(f.vueAttrName(r2.name)) || super.removeAttribute(r2.name), "value" === r2.name && (this.value = r2.value);
|
|
178
178
|
}
|
|
179
179
|
Object.defineProperty(this, "attributes", { get value() {
|
|
180
180
|
return t2.attributes;
|
|
181
181
|
}, writable: false }), this[_AuiComponent.shadowSymbol].el = t2;
|
|
182
182
|
}
|
|
183
183
|
$isShowProp(e2) {
|
|
184
|
-
if (
|
|
184
|
+
if (f.isVueAttr(e2)) return true;
|
|
185
185
|
const t2 = this.$getProp(e2), n2 = t2 == null ? void 0 : t2.show;
|
|
186
186
|
return n2;
|
|
187
187
|
}
|
|
188
188
|
$getProp(e2) {
|
|
189
189
|
var _a;
|
|
190
|
-
const t2 =
|
|
190
|
+
const t2 = f.cache.getAuiVueDefined(this.tagName);
|
|
191
191
|
return (((_a = t2 == null ? void 0 : t2.origin) == null ? void 0 : _a.props) || {})[e2];
|
|
192
192
|
}
|
|
193
193
|
$initVue() {
|
|
194
194
|
if (this.__hasVue__) return;
|
|
195
195
|
this.__hasVue__ = true;
|
|
196
196
|
const t2 = this.tagName.toLowerCase();
|
|
197
|
-
|
|
197
|
+
f.cache.getAuiVueDefined(t2) && e(f.createVueComponent(t2, this)).mount(this);
|
|
198
198
|
}
|
|
199
199
|
$needInit() {
|
|
200
|
-
return !super.hasAttribute(
|
|
200
|
+
return !super.hasAttribute(d);
|
|
201
201
|
}
|
|
202
202
|
$bindVue(e2) {
|
|
203
203
|
var _a, _b;
|
|
@@ -205,17 +205,17 @@ const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
|
|
|
205
205
|
this[_AuiComponent.shadowSymbol].ref = e2, this.__hasVue__ = true;
|
|
206
206
|
const t2 = new CustomEvent("aui-init", { bubbles: false, detail: { code: 0 } });
|
|
207
207
|
this.dispatchEvent(t2);
|
|
208
|
-
const n2 = (_b = (_a =
|
|
208
|
+
const n2 = (_b = (_a = f.cache.getAuiVueDefined(this.tagName)) == null ? void 0 : _a.origin) == null ? void 0 : _b.auiInit;
|
|
209
209
|
n2 && n2.call(e2);
|
|
210
210
|
}
|
|
211
211
|
$call(e2, ...t2) {
|
|
212
212
|
const n2 = this[_AuiComponent.shadowSymbol].ref;
|
|
213
|
-
return
|
|
213
|
+
return f.$call(n2, e2, ...t2);
|
|
214
214
|
}
|
|
215
215
|
};
|
|
216
|
-
_AuiComponent.shadowSymbol =
|
|
216
|
+
_AuiComponent.shadowSymbol = p;
|
|
217
217
|
let AuiComponent = _AuiComponent;
|
|
218
|
-
class
|
|
218
|
+
class m extends HTMLElement {
|
|
219
219
|
constructor() {
|
|
220
220
|
super();
|
|
221
221
|
}
|
|
@@ -242,7 +242,7 @@ class p extends HTMLElement {
|
|
|
242
242
|
return !(!e2 || e2.nodeType !== Node.ELEMENT_NODE) && "aui-slot" === e2.tagName.toLowerCase();
|
|
243
243
|
}
|
|
244
244
|
static $isForAuiSlot(e2) {
|
|
245
|
-
return !(!
|
|
245
|
+
return !(!m.$isAuiSlot(e2) || !e2.hasAttribute("for"));
|
|
246
246
|
}
|
|
247
247
|
$bind(e2) {
|
|
248
248
|
this._el_ = e2, this._name_ = this.getAttribute("for") || "default";
|
|
@@ -252,33 +252,30 @@ class p extends HTMLElement {
|
|
|
252
252
|
e2.$slot(t2, { start: n2, end: r2 }), this.replaceWith(n2, r2);
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
customElements.define("aui-slot", p);
|
|
258
|
-
} catch (e2) {
|
|
259
|
-
}
|
|
255
|
+
const f = { init: () => (f.defineSlot(), f), defineSlot() {
|
|
256
|
+
f.defineCustomElement("aui-slot", m);
|
|
260
257
|
}, $call(e2, t2, ...n2) {
|
|
261
258
|
if (!e2) return new Error("not init");
|
|
262
259
|
if (!t2) return e2;
|
|
263
260
|
if ("function" == typeof e2[t2]) return e2[t2].call(e2, ...n2);
|
|
264
261
|
const r2 = t2.split(".");
|
|
265
|
-
let i2 = e2,
|
|
266
|
-
for (;
|
|
267
|
-
if (!Object.prototype.hasOwnProperty.call(i2,
|
|
268
|
-
i2 = i2[
|
|
262
|
+
let i2 = e2, o2 = r2.pop() || "", s2 = null;
|
|
263
|
+
for (; s2 = r2.shift(); ) {
|
|
264
|
+
if (!Object.prototype.hasOwnProperty.call(i2, s2)) return new Error("no match name");
|
|
265
|
+
i2 = i2[s2];
|
|
269
266
|
}
|
|
270
|
-
return 0 === n2.length ? i2[
|
|
267
|
+
return 0 === n2.length ? i2[o2] : (i2[o2] = n2[0], null);
|
|
271
268
|
}, formatName: (e2) => e2 ? (e2 = e2.replace(/[A-Z]/g, function(e3) {
|
|
272
269
|
return "-" + e3.toLowerCase();
|
|
273
|
-
}),
|
|
270
|
+
}), c + e2) : "", cache: { defined: (Object.prototype.hasOwnProperty.call(window, "__GLOBAL_AUI_CORE__") || Object.defineProperty(window, "__GLOBAL_AUI_CORE__", { value: { defined: {} }, writable: false, enumerable: false }), window.__GLOBAL_AUI_CORE__).defined, getAuiVueDefined: (e2) => (e2 = e2.toLowerCase(), f.cache.defined[e2]), getAuiPropNames(e2) {
|
|
274
271
|
var _a;
|
|
275
|
-
const t2 =
|
|
276
|
-
for (const e3 in n2) r2.push(
|
|
272
|
+
const t2 = f.cache.getAuiVueDefined(e2), n2 = ((_a = t2 == null ? void 0 : t2.origin) == null ? void 0 : _a.props) || {}, r2 = [];
|
|
273
|
+
for (const e3 in n2) r2.push(f.auiAttrName(e3));
|
|
277
274
|
return r2;
|
|
278
275
|
}, addHooks(e2, t2) {
|
|
279
276
|
e2 = e2.toLowerCase();
|
|
280
|
-
const n2 =
|
|
281
|
-
n2 ? (n2.hooks = n2.hooks || [], n2.hooks.push(t2)) :
|
|
277
|
+
const n2 = f.cache.getAuiVueDefined(e2);
|
|
278
|
+
n2 ? (n2.hooks = n2.hooks || [], n2.hooks.push(t2)) : f.cache.defined[e2] = { hooks: [t2] };
|
|
282
279
|
} }, createExtendComp: (e2) => {
|
|
283
280
|
var _a, _b;
|
|
284
281
|
return t({ props: { auiExtend: { type: String }, value: { type: ((_b = (_a = e2.props) == null ? void 0 : _a.value) == null ? void 0 : _b.type) || [String, Number, Array] } }, methods: { $anyToArray: AuiComponent.$anyToArray, $value(...e3) {
|
|
@@ -287,7 +284,7 @@ const m = { init: () => (m.defineSlot(), m), defineSlot() {
|
|
|
287
284
|
t2 && (t2.value = e3[0]);
|
|
288
285
|
}, $call(e3, ...t2) {
|
|
289
286
|
const n2 = this.$aui();
|
|
290
|
-
return n2 ?
|
|
287
|
+
return n2 ? f.$call(n2, e3, ...t2) : null;
|
|
291
288
|
}, $aui() {
|
|
292
289
|
var _a2;
|
|
293
290
|
return (_a2 = this.$el) == null ? void 0 : _a2.parentNode;
|
|
@@ -295,80 +292,94 @@ const m = { init: () => (m.defineSlot(), m), defineSlot() {
|
|
|
295
292
|
}, patchDefaultProps(e2) {
|
|
296
293
|
var _a, _b;
|
|
297
294
|
const t2 = (_b = (_a = e2.props) == null ? void 0 : _a.value) == null ? void 0 : _b.type;
|
|
298
|
-
return e2.mixins || (e2.mixins = []), e2.mixins.push(
|
|
295
|
+
return e2.mixins || (e2.mixins = []), e2.mixins.push(f.createExtendComp(e2)), t2;
|
|
299
296
|
}, defineAuiComponent(e2, t2, n2) {
|
|
300
297
|
var _a, _b;
|
|
301
|
-
const r2 =
|
|
302
|
-
if ((_a =
|
|
298
|
+
const r2 = f.patchDefaultProps(n2);
|
|
299
|
+
if ((_a = f.cache.defined[e2]) == null ? void 0 : _a.origin) f.cache.defined[e2].origin = n2;
|
|
303
300
|
else {
|
|
304
301
|
class i2 extends AuiComponent {
|
|
305
302
|
constructor() {
|
|
306
303
|
super({ valueType: r2 });
|
|
307
304
|
}
|
|
308
305
|
static get observedAttributes() {
|
|
309
|
-
return
|
|
306
|
+
return f.cache.getAuiPropNames(e2);
|
|
310
307
|
}
|
|
311
308
|
}
|
|
312
|
-
|
|
309
|
+
f.cache.defined[e2] = { aui: i2, vue: t2, origin: n2, hooks: ((_b = f.cache.defined[e2]) == null ? void 0 : _b.hooks) || [] }, f.defineCustomElement(e2, i2);
|
|
313
310
|
}
|
|
314
|
-
},
|
|
315
|
-
|
|
311
|
+
}, defineCustomElement(e2, t2) {
|
|
312
|
+
try {
|
|
313
|
+
customElements.define(e2, t2);
|
|
314
|
+
} catch (e3) {
|
|
315
|
+
}
|
|
316
|
+
}, sameComponent(e2, t2) {
|
|
317
|
+
if (!Object.prototype.hasOwnProperty.call(t2, "__hmrId")) return false;
|
|
318
|
+
const n2 = f.cache.getAuiVueDefined(e2), r2 = n2 == null ? void 0 : n2.origin;
|
|
319
|
+
return !!r2 && t2.__hmrId === r2.__hmrId;
|
|
320
|
+
}, notifyComponentUpdate(e2) {
|
|
321
|
+
document.querySelectorAll(e2).forEach((e3) => {
|
|
322
|
+
e3.dispatchEvent(new CustomEvent("aui-force-update"));
|
|
323
|
+
});
|
|
324
|
+
}, define(e2, t2 = true) {
|
|
325
|
+
const n2 = f.formatName(e2.name);
|
|
316
326
|
if (!n2) return e2;
|
|
317
|
-
const r2 =
|
|
318
|
-
if (r2 && r2.vue) return t2 &&
|
|
319
|
-
const i2 =
|
|
320
|
-
return
|
|
327
|
+
const r2 = f.cache.getAuiVueDefined(n2);
|
|
328
|
+
if (r2 && r2.vue) return (t2 || f.sameComponent(n2, e2)) && (f.defineAuiComponent(n2, r2.vue, e2), f.notifyComponentUpdate(n2)), r2.vue;
|
|
329
|
+
const i2 = f.createVueComponent(n2);
|
|
330
|
+
return f.defineAuiComponent(n2, i2, e2), i2;
|
|
321
331
|
}, createTempSlot(e2) {
|
|
322
332
|
const t2 = {};
|
|
323
333
|
return Object.keys(e2).forEach((e3) => {
|
|
324
|
-
t2[e3] = () =>
|
|
334
|
+
t2[e3] = () => a("aui-slot", { name: e3 });
|
|
325
335
|
}), t2;
|
|
326
336
|
}, replaceTempSlot(e2, t2) {
|
|
327
337
|
Object.keys(t2).forEach((n2) => {
|
|
328
338
|
const r2 = e2.querySelector(`aui-slot[name="${n2}"]`);
|
|
329
|
-
r2 && (
|
|
339
|
+
r2 && (m.prototype.$replace.call(r2, e2), e2.$replaceChildren(n2, t2[n2]));
|
|
330
340
|
});
|
|
331
341
|
}, createVueComponent(e2, t2) {
|
|
332
|
-
const
|
|
342
|
+
const u2 = t2 ? t2.$moveChildren() : { default: [] };
|
|
333
343
|
return { setup() {
|
|
334
|
-
const
|
|
335
|
-
let f2;
|
|
344
|
+
const l2 = n(), h2 = r(null), c2 = r(null), p2 = i({}), m2 = r(t2 ? f.createTempSlot(u2) : o()), $2 = r(null);
|
|
336
345
|
return s(() => {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
}),
|
|
346
|
+
h2.value && c2.value && c2.value.$bindVue && (c2.value.$bindVue(h2.value), t2 && f.replaceTempSlot(t2, u2), c2.value.addEventListener("aui-attr-change", () => {
|
|
347
|
+
c2.value && (p2.value = f.getAuiAttrs(c2.value));
|
|
348
|
+
}), c2.value.addEventListener("aui-force-update", () => {
|
|
349
|
+
$2.value = null;
|
|
350
|
+
}), c2.value.$call("$emit", "update:value", c2.value.value));
|
|
340
351
|
}), () => {
|
|
341
|
-
if (t2 && (
|
|
342
|
-
const n2 =
|
|
343
|
-
return t2 ? n2 :
|
|
352
|
+
if (t2 && (c2.value = t2, p2.value = f.getAuiAttrs(t2)), $2.value || ($2.value = f.formatStructure(e2)), !$2.value) return null;
|
|
353
|
+
const n2 = a($2.value, { ...l2, ...p2.value, ref: h2 }, m2.value || {});
|
|
354
|
+
return t2 ? n2 : a(e2, { ref: c2, [d]: "" }, [n2]);
|
|
344
355
|
};
|
|
345
356
|
} };
|
|
346
357
|
}, getAuiAttrs(e2) {
|
|
347
358
|
const t2 = {}, n2 = e2.attributes;
|
|
348
359
|
for (let e3 = 0; e3 < n2.length; e3++) {
|
|
349
360
|
const r2 = n2[e3];
|
|
350
|
-
r2.name ===
|
|
361
|
+
r2.name === c || f.isVueAttr(r2.name) || (t2[r2.name] = r2.value);
|
|
351
362
|
}
|
|
352
363
|
return null !== e2.value && (t2.value = e2.value), t2;
|
|
353
|
-
}, isVueAttr: (e2) => 0 === e2.indexOf("data-v-"), auiAttrName: (e2) => e2.replace(/([A-Z])/g, (e3) => "-" + e3.toLowerCase()), vueAttrName: (e2) =>
|
|
354
|
-
|
|
364
|
+
}, isVueAttr: (e2) => 0 === e2.indexOf("data-v-"), auiAttrName: (e2) => e2.replace(/([A-Z])/g, (e3) => "-" + e3.toLowerCase()), vueAttrName: (e2) => f.isVueAttr(e2) ? e2 : e2.replace(/-([a-z])/g, (e3, t2) => t2.toUpperCase()), hookStructure(e2, t2) {
|
|
365
|
+
f.cache.addHooks(e2, t2);
|
|
355
366
|
}, getHookStructure(e2) {
|
|
356
|
-
const t2 =
|
|
367
|
+
const t2 = f.cache.getAuiVueDefined(e2);
|
|
357
368
|
return ((t2 == null ? void 0 : t2.hooks) || []).slice(0);
|
|
358
369
|
}, formatStructure(e2) {
|
|
359
|
-
const t2 =
|
|
370
|
+
const t2 = f.cache.getAuiVueDefined(e2);
|
|
360
371
|
if (!(t2 == null ? void 0 : t2.origin)) return null;
|
|
361
|
-
let n2 =
|
|
362
|
-
const r2 =
|
|
372
|
+
let n2 = u({}, t2.origin);
|
|
373
|
+
const r2 = f.getHookStructure(e2);
|
|
363
374
|
let i2;
|
|
364
375
|
for (; i2 = r2.shift(); ) {
|
|
365
376
|
const e3 = i2(n2);
|
|
366
377
|
e3 && (n2 = e3);
|
|
367
378
|
}
|
|
368
379
|
return n2;
|
|
369
|
-
} },
|
|
380
|
+
} }, $ = f.init();
|
|
370
381
|
export {
|
|
371
382
|
AuiComponent,
|
|
372
|
-
|
|
383
|
+
$ as default
|
|
373
384
|
};
|
|
374
385
|
//# sourceMappingURL=core.es.js.map
|
package/dist/core.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.es.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\nimport { h, useSlots, useAttrs, onMounted, ref, createApp, defineComponent } from 'vue';\nimport { merge } from 'ts-deepmerge';\nexport { type Component as TraditionComponent } from './types';\n\nconst TAG_PREFIX = __AUI_CONFIG__.tagPrefix || 'aui';\nconst AUI_ATTR_FLAG = 'data-v-aui';\n\nconst shadowSymbol = Symbol('shadow');\n\nexport type HookHandler = (c: any) => void | any;\n\ntype AUI_COMPONENT_OPTION = {\n valueType?: any\n}\n\nexport type Component = ComponentType;\n\ntype AUI_SLOT_CACHE = {\n start: Comment,\n end: Comment,\n};\n\ntype AUI_COMP_SHADOW = {\n el?: HTMLElement | null,\n ref?: Component | null,\n value?: string | null,\n options?: AUI_COMPONENT_OPTION,\n needHook: boolean,\n slot: Record<string, AUI_SLOT_CACHE>,\n};\n\ntype GlobalAuiCore = {\n defined: Record<string, AUI_VUE_DEFINE_CACHE>\n}\n\ntype SlotElement = {\n default: Node[],\n [key: string]: Node[],\n}\n\nfunction getGlobalAuiCore(): GlobalAuiCore {\n if (!Object.prototype.hasOwnProperty.call(window, '__GLOBAL_AUI_CORE__')) {\n Object.defineProperty(window, '__GLOBAL_AUI_CORE__', {\n value: {\n defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>\n },\n writable: false,\n enumerable: false,\n });\n }\n return (window as any)['__GLOBAL_AUI_CORE__'];\n}\n\n\nexport class AuiComponent extends HTMLElement {\n __hasVue__: boolean = false;\n private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\n private [shadowSymbol]: AUI_COMP_SHADOW = { needHook: false, slot: {} };\n\n constructor(options?: AUI_COMPONENT_OPTION) {\n super();\n this[AuiComponent.shadowSymbol].options = options || {};\n this.$initAttrs();\n }\n\n connectedCallback() {\n // console.log('aui component connected:', this.tagName);\n\n if (this.$needInit()) {\n this.$needHook(true);\n this.$initVue();\n }\n\n }\n\n set textContent(v: string) {\n if (!this.$needHook()) {\n super.textContent = v;\n return;\n }\n\n this.$textContent(v);\n }\n\n get textContent() {\n if (!this.$needHook()) {\n return super.textContent || '';\n }\n\n return this.$textContent('default');\n }\n\n set innerHTML(v: string) {\n if (!this.$needHook()) {\n super.innerHTML = v;\n return;\n }\n\n this.$innerHTML(v);\n }\n\n get innerHTML() {\n if (!this.$needHook()) {\n return super.innerHTML || '';\n }\n\n return this.$innerHTML('default');\n }\n\n set innerText(v: string) {\n this.$ignoreLog('innerText');\n super.innerText = v;\n }\n\n prepend<T extends Node>(node: T) {\n if (!this.$needHook()) {\n return super.prepend(node);\n }\n this.$prepend('default', node);\n }\n\n appendChild<T extends Node>(node: T): T {\n if (!this.$needHook()) {\n return super.appendChild(node);\n }\n return this.$appendChild('default', node);\n }\n\n set value(v: string | null) {\n let val: any = v;\n\n const oldValue = this[AuiComponent.shadowSymbol].value;\n let newValue;\n\n if (this.$isArrayValue()) {\n val = AuiComponent.$anyToArray(v);\n newValue = JSON.stringify(val);\n } else {\n newValue = val.toString();\n }\n\n if (oldValue === newValue) return;\n\n this[AuiComponent.shadowSymbol].value = newValue;\n\n if (this[AuiComponent.shadowSymbol].el) {\n this.$attrChange('value');\n }\n }\n\n get value(): any {\n const v = this[AuiComponent.shadowSymbol].value;\n if (this.$isArrayValue()) {\n return typeof v === 'string' ? JSON.parse(v) : v;\n } else {\n return v;\n }\n }\n\n hasAttribute(qualifiedName: string): boolean {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n return shadowElement.hasAttribute(qualifiedName);\n }\n return super.hasAttribute(qualifiedName);\n }\n\n setAttribute(qualifiedName: string, value: string): void {\n value = value.toString();\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n if (shadowElement.getAttribute(qualifiedName) === value) return;\n shadowElement.setAttribute(qualifiedName, value);\n }\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\n if (isShow) {\n super.setAttribute(qualifiedName, value);\n }\n\n if (qualifiedName === 'value' && shadowElement) {\n this.value = shadowElement.getAttribute(qualifiedName);\n } else {\n this.$attrChange(qualifiedName);\n }\n }\n\n getAttribute(qualifiedName: string): string | null {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n return shadowElement ? shadowElement.getAttribute(qualifiedName) : super.getAttribute(qualifiedName);\n }\n\n removeAttribute(qualifiedName: string): void {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n shadowElement.removeAttribute(qualifiedName);\n }\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\n if (isShow) {\n super.removeAttribute(qualifiedName);\n }\n this.$attrChange(qualifiedName);\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (!shadowElement) return;\n if (oldValue === newValue) return;\n\n if (!this.$isShowProp(_M.vueAttrName(name))) {\n super.removeAttribute(name);\n }\n\n shadowElement.setAttribute(name, newValue || '');\n if (name !== 'value') {\n this.$attrChange(name);\n }\n\n }\n\n // ---------------------------\n\n static $anyToArray(s: any): any {\n let arr = [];\n if (typeof s === 'string') {\n try {\n const json = JSON.parse(s);\n if (json instanceof Array) {\n return json;\n }\n } catch (_) { }\n const sp = s.split(',');\n arr = sp.filter((item) => item ? item.trim() : false);\n } else if (s instanceof Array) {\n arr = s;\n }\n\n return arr;\n }\n\n // ---------------------------\n\n $textContent(name: string, ...args: any): string {\n if (args.length === 0) {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n ret.push(next.textContent);\n }\n return ret.join('');\n\n } else {\n this.$replaceChildren(name, [document.createTextNode(args[0] || '')]);\n }\n return '';\n }\n\n $innerHTML(name: string, ...args: any): string {\n if (args.length === 0) {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n if ((next as any).outerHTML) {\n ret.push((next as any).outerHTML);\n } else {\n let text = next.textContent;\n if (next instanceof Comment) {\n text = `<!--${text}-->`;\n }\n ret.push(text);\n }\n\n }\n return ret.join('');\n\n } else {\n const tpl = document.createElement('div');\n tpl.innerHTML = args[0] || '';\n const children = this.$moveChildren(tpl as any);\n this.$replaceChildren(name, children.default);\n }\n return '';\n }\n\n $prepend<T extends Node>(name: string, node: T) {\n const { start } = this.$slot(name) || {};\n start?.parentNode?.insertBefore(node, start.nextSibling);\n }\n\n $appendChild<T extends Node>(name: string, node: T): T {\n const { end } = this.$slot(name) || {};\n end?.parentNode?.insertBefore(node, end);\n return node;\n }\n\n $childNodes(name?: string): NodeListOf<ChildNode> {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n ret.push(next);\n }\n return ret as any;\n }\n\n $children(name?: string): HTMLCollection {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n if (next instanceof HTMLElement) {\n ret.push(next);\n }\n }\n return ret as any;\n }\n\n $replaceChildren(name: string, children: any[]) {\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = null;\n while (start && (next = start.nextSibling) && next !== end) {\n next.parentNode?.removeChild(next);\n }\n if (end) {\n while (next = children.shift()) {\n end.parentNode?.insertBefore(next, end);\n }\n }\n }\n\n $slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined {\n name = name || 'default';\n if (slot) {\n this[AuiComponent.shadowSymbol].slot[name] = slot;\n } else {\n return this[AuiComponent.shadowSymbol].slot[name];\n }\n }\n\n $needHook(need?: boolean): boolean {\n if (typeof need === 'boolean') {\n this[AuiComponent.shadowSymbol].needHook = need;\n }\n return this[AuiComponent.shadowSymbol].needHook;\n }\n\n $ignoreLog(name: string) {\n console.warn(`aui component ignore : ${name}`);\n }\n\n $moveChildren(el?: AuiComponent): SlotElement {\n el = el || this;\n const list = el.childNodes;\n const ret: SlotElement = {\n default: []\n };\n while (list.length > 0) {\n const child = list[0] as AuiSlot;\n child.parentNode?.removeChild(child);\n if (AuiSlot.$isForAuiSlot(child)) {\n const name = child.getAttribute('for') || 'default';\n ret[name] = ret[name] || [];\n const children = Array.prototype.slice.call(child.childNodes);\n AuiSlot.prototype.$bind.call(child, el);\n ret[name].push(...children);\n } else {\n ret['default'].push(child);\n }\n }\n return ret;\n }\n\n $isArrayValue() {\n return this[AuiComponent.shadowSymbol].options?.valueType === Array;\n }\n\n $attrChange(name: string) {\n if (name === 'value') {\n const val = this.value;\n if (super.hasAttribute(AUI_ATTR_FLAG)) {\n this.$call('$emit', `update:value`, val);\n } else {\n super.dispatchEvent(new CustomEvent('input', {\n bubbles: true,\n composed: true,\n }));\n // super.dispatchEvent(new CustomEvent('change', {\n // bubbles: true,\n // composed: true,\n // }));\n }\n }\n this.dispatchEvent(new CustomEvent('aui-attr-change', {\n bubbles: true,\n composed: true,\n detail: { attributeName: _M.vueAttrName(name) }\n }));\n }\n\n $initAttrs() {\n const attributes = this.attributes;\n const shadow = document.createElement('div');\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n shadow.setAttribute(attr.name, attr.value);\n if (!this.$isShowProp(_M.vueAttrName(attr.name))) {\n super.removeAttribute(attr.name);\n }\n if (attr.name === 'value') {\n this.value = attr.value;\n }\n }\n Object.defineProperty(this, 'attributes', {\n get value() {\n return shadow.attributes;\n },\n writable: false,\n });\n\n this[AuiComponent.shadowSymbol].el = shadow;\n }\n\n $isShowProp(name: string): boolean {\n if (_M.isVueAttr(name)) return true;\n const prop = this.$getProp(name);\n // console.log('name:', name)\n const isShow = prop?.show;\n return isShow;\n }\n\n $getProp(name: string): any {\n const auiVueDefined = _M.cache.getAuiVueDefined(this.tagName);\n const props = (auiVueDefined?.origin as any)?.props || {};\n return props[name];\n }\n\n $initVue() {\n if (this.__hasVue__) {\n return;\n }\n this.__hasVue__ = true;\n\n const tagName = this.tagName.toLowerCase();\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n if (!auiVueDefined) {\n console.warn(`AUI组件 [${this.tagName}] 未定义`);\n return;\n }\n createApp(_M.createVueComponent(tagName, this)).mount(this);\n }\n\n $needInit() {\n const flag = super.hasAttribute(AUI_ATTR_FLAG);\n if (flag) {\n return false;\n }\n\n return true;\n }\n\n $bindVue(v: Component) {\n if (this[AuiComponent.shadowSymbol].ref) {\n return;\n }\n // Object.assign(v, { $aui: this });\n this[AuiComponent.shadowSymbol].ref = v;\n this.__hasVue__ = true;\n // 触发init事件\n const event = new CustomEvent('aui-init', {\n bubbles: false,\n detail: { code: 0 }\n });\n this.dispatchEvent(event);\n const auiInit = (_M.cache.getAuiVueDefined(this.tagName)?.origin as any)?.auiInit;\n if (auiInit) {\n auiInit.call(v);\n }\n }\n\n $call(name?: string, ...args: any[]): any {\n const ref = this[AuiComponent.shadowSymbol].ref as Record<string, any>;\n return _M.$call(ref, name, ...args);\n }\n\n}\n\ntype TypeAuiComponent = typeof AuiComponent;\n\ntype AUI_VUE_DEFINE_CACHE = {\n aui?: TypeAuiComponent,\n vue?: Component,\n origin?: Component,\n hooks?: HookHandler[],\n}\n\n\nclass AuiSlot extends HTMLElement {\n\n _el_?: AuiComponent;\n _name_?: string;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.style.display = 'none';\n }\n\n set textContent(v: string) {\n if (this._name_) {\n this._el_?.$textContent(this._name_, v);\n } else {\n super.textContent = v;\n }\n }\n\n set innerHTML(v: string) {\n if (this._name_) {\n this._el_?.$innerHTML(this._name_, v);\n } else {\n super.innerHTML = v;\n }\n }\n\n prepend<T extends Node>(node: T): void {\n if (this._name_) {\n this._el_?.$prepend(this._name_, node);\n } else {\n super.prepend(node);\n }\n }\n\n appendChild<T extends Node>(node: T): T {\n if (this._name_) {\n this._el_?.$appendChild(this._name_, node);\n return node;\n } else {\n return super.appendChild(node);\n }\n }\n\n // ---------------------\n\n static $isAuiSlot(el: HTMLElement) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n\n if (el.tagName.toLowerCase() === 'aui-slot') return true;\n\n return false;\n }\n\n static $isForAuiSlot(el: HTMLElement) {\n if (AuiSlot.$isAuiSlot(el) && el.hasAttribute('for')) return true;\n return false;\n }\n\n $bind(el: AuiComponent) {\n this._el_ = el;\n this._name_ = this.getAttribute('for') || 'default';\n }\n\n $replace(el: AuiComponent) {\n const name = this.getAttribute('name') || 'default';\n const start = document.createComment(`aui-slot-${name}-start`);\n const end = document.createComment(`aui-slot-${name}-end`);\n\n el.$slot(name, { start, end });\n this.replaceWith(start, end);\n }\n}\n\nconst _M = {\n init() {\n _M.defineSlot();\n return _M;\n },\n defineSlot() {\n try {\n customElements.define('aui-slot', AuiSlot);\n } catch (error) { }\n },\n $call(ref: Record<string, any>, name?: string, ...args: any[]): any {\n\n if (!ref) {\n return new Error('not init');\n }\n\n if (!name) return ref;\n\n if (typeof ref[name] === 'function') {\n return ref[name].call(ref, ...args);\n }\n\n const sp = name.split('.');\n let target = ref, last = sp.pop() || '', cur = null;\n\n while (cur = sp.shift()) {\n if (Object.prototype.hasOwnProperty.call(target, cur)) {\n target = target[cur];\n } else {\n return new Error('no match name');\n }\n }\n\n if (args.length === 0) {\n return target[last];\n } else {\n target[last] = args[0];\n return null;\n }\n\n },\n formatName(name: string | undefined): string {\n if (!name) {\n return '';\n }\n name = name.replace(/[A-Z]/g, function (s) {\n return '-' + s.toLowerCase();\n });\n return TAG_PREFIX + name;\n },\n cache: {\n defined: getGlobalAuiCore().defined,\n getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined {\n tagName = tagName.toLowerCase();\n return _M.cache.defined[tagName];\n },\n getAuiPropNames(tagName: string): string[] {\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n const props = (auiVueDefined?.origin as any)?.props || {};\n const names = [];\n for (const key in props) {\n names.push(_M.auiAttrName(key));\n }\n return names;\n },\n addHooks(name: string, handle: HookHandler) {\n name = name.toLowerCase();\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\n if (auiVueDefined) {\n auiVueDefined.hooks = auiVueDefined.hooks || [];\n auiVueDefined.hooks.push(handle);\n } else {\n _M.cache.defined[name] = {\n hooks: [handle],\n }\n }\n }\n },\n createExtendComp(v: Component): Component {\n return defineComponent({\n props: {\n auiExtend: {\n type: String,\n },\n value: {\n type: (v as any).props?.value?.type || [String, Number, Array],\n }\n },\n methods: {\n $anyToArray: AuiComponent.$anyToArray,\n $value(...args: any[]) {\n const $aui = this.$aui();\n if (args.length === 0) {\n return $aui?.value;\n } else {\n if ($aui) {\n $aui.value = args[0];\n }\n }\n },\n $call(name?: string, ...args: any[]): any {\n const $aui = this.$aui();\n if (!$aui) return null;\n return _M.$call($aui, name, ...args);\n },\n $aui(): AuiComponent | null {\n return this.$el?.parentNode;\n },\n },\n data() {\n return {\n\n }\n }\n })\n },\n patchDefaultProps(origin: Component): any {\n\n const valueType = (origin as any).props?.value?.type;\n\n if (!(origin as any).mixins) {\n (origin as any).mixins = [];\n }\n\n (origin as any).mixins.push(_M.createExtendComp(origin));\n\n return valueType;\n\n },\n defineAuiComponent(tagName: string, component: Component, origin: Component) {\n\n const valueType = _M.patchDefaultProps(origin);\n\n if (!_M.cache.defined[tagName]?.origin) {\n class AuiChild extends AuiComponent {\n constructor() {\n super({ valueType });\n }\n\n static get observedAttributes() {\n return _M.cache.getAuiPropNames(tagName);\n }\n\n }\n\n _M.cache.defined[tagName] = {\n aui: AuiChild,\n vue: component,\n origin,\n hooks: _M.cache.defined[tagName]?.hooks || [],\n };\n\n customElements.define(tagName, AuiChild);\n\n } else {\n _M.cache.defined[tagName].origin = origin;\n }\n },\n\n define(v: Component, force: boolean = false): Component {\n const tagName = _M.formatName(v.name);\n\n // console.log('define aui comp, name is', tagName);\n\n if (!tagName) {\n console.warn('当前组件不符合AUI定义');\n return v;\n }\n\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n\n if (auiVueDefined && auiVueDefined.vue) {\n if (!force) {\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\n } else {\n console.log('aui组件更新origin定义');\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\n }\n\n return auiVueDefined.vue;\n }\n\n const wrappedComponent = _M.createVueComponent(tagName);\n\n _M.defineAuiComponent(tagName, wrappedComponent, v);\n\n return wrappedComponent;\n },\n createTempSlot(children: SlotElement): any {\n const ret = {} as { [key: string]: any };\n Object.keys(children).forEach((name) => {\n ret[name] = () => h('aui-slot', { name });\n });\n return ret;\n },\n replaceTempSlot(el: AuiComponent, children: SlotElement) {\n const names = Object.keys(children);\n names.forEach((name) => {\n const slot = el.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot | null;\n if (slot) {\n AuiSlot.prototype.$replace.call(slot, el);\n el.$replaceChildren(name, children[name]);\n }\n });\n\n },\n createVueComponent(tagName: string, el?: AuiComponent): Component {\n\n const children = el ? el.$moveChildren() : { default: [] };\n\n const wrappedComponent = {\n setup() {\n const attrs = useAttrs()\n const vueComponentRef = ref<any>(null)\n const elementRef = ref<AuiComponent | null>(null)\n const selfAttrs = ref<Record<string, any>>({})\n const slotsRef = ref<any>(el ? _M.createTempSlot(children) : useSlots())\n let target: Component | null;\n\n onMounted(() => {\n if (vueComponentRef.value && elementRef.value && elementRef.value.$bindVue) {\n elementRef.value.$bindVue(vueComponentRef.value);\n\n el && _M.replaceTempSlot(el, children);\n\n // 监听属性变化事件\n elementRef.value.addEventListener('aui-attr-change', () => {\n if (elementRef.value) {\n selfAttrs.value = _M.getAuiAttrs(elementRef.value);\n }\n });\n\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\n } else {\n console.warn('AUI组件绑定失败');\n }\n })\n\n return () => {\n\n if (el) {\n elementRef.value = el;\n selfAttrs.value = _M.getAuiAttrs(el);\n }\n\n if (!target) {\n target = _M.formatStructure(tagName);\n }\n\n if (!target) {\n console.warn('AUI组件未定义,加载失败,name:', tagName);\n return null;\n }\n\n const trueComp = h(target, { ...attrs, ...selfAttrs.value, ref: vueComponentRef }, slotsRef.value || {});\n\n const ret = el ? trueComp : h(tagName, { ref: elementRef, [AUI_ATTR_FLAG]: '' }, [\n trueComp\n ]);\n\n return ret;\n }\n }\n };\n\n return wrappedComponent;\n },\n getAuiAttrs(el: AuiComponent): Record<string, any> {\n\n const attrs = {} as Record<string, any>;\n\n const attributes = el.attributes;\n\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n // 跳过 aui 和 vue 标记属性\n if (attr.name === TAG_PREFIX || _M.isVueAttr(attr.name)) continue;\n attrs[attr.name] = attr.value;\n }\n\n if (el.value !== null) {\n attrs.value = el.value;\n }\n\n return attrs;\n },\n isVueAttr(name: string): boolean {\n return name.indexOf('data-v-') === 0;\n },\n auiAttrName(name: string): string {\n return name.replace(/([A-Z])/g, (a) => '-' + a.toLowerCase());\n },\n vueAttrName(name: string): string {\n if (_M.isVueAttr(name)) return name;\n return name.replace(/-([a-z])/g, (_, s1) => s1.toUpperCase());\n },\n hookStructure(name: string, handle: HookHandler) {\n _M.cache.addHooks(name, handle);\n },\n getHookStructure(name: string): HookHandler[] {\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\n const hooks = auiVueDefined?.hooks || [];\n return hooks.slice(0);\n },\n formatStructure(tagName: string): Component | null {\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n if (!auiVueDefined?.origin) {\n return null;\n }\n let origin = merge({}, auiVueDefined.origin) as Component;\n const hooks = _M.getHookStructure(tagName);\n let handle;\n while (handle = hooks.shift()) {\n const cur = handle(origin);\n if (cur) {\n origin = cur;\n }\n }\n\n return origin;\n }\n};\n\nexport default _M.init();"],"names":["_a","_b","TAG_PREFIX","__AUI_CONFIG__","tagPrefix","AUI_ATTR_FLAG","shadowSymbol","Symbol","AuiComponent","HTMLElement","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$needHook","$initVue","v","$textContent","textContent","$innerHTML","innerHTML","$ignoreLog","innerText","node","prepend","$prepend","$appendChild","appendChild","val","oldValue","value","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","qualifiedName","shadowElement","hasAttribute","getAttribute","setAttribute","$isShowProp","_M","vueAttrName","removeAttribute","name","s","arr","json","Array","_","split","filter","item","trim","args","length","ret","start","end","$slot","next","nextSibling","push","join","$replaceChildren","document","createTextNode","outerHTML","text","Comment","tpl","createElement","children","$moveChildren","default","parentNode","insertBefore","removeChild","shift","need","list","childNodes","child","AuiSlot","$isForAuiSlot","prototype","slice","call","$bind","valueType","$call","dispatchEvent","CustomEvent","bubbles","composed","detail","attributeName","attributes","shadow","i","attr","Object","defineProperty","writable","isVueAttr","prop","$getProp","isShow","show","auiVueDefined","cache","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","ref","event","code","auiInit","constructor","style","display","_name_","_el_","nodeType","Node","ELEMENT_NODE","$isAuiSlot","createComment","replaceWith","init","defineSlot","customElements","define","error","Error","sp","target","last","pop","cur","hasOwnProperty","formatName","replace","defined","window","enumerable","names","key","auiAttrName","handle","hooks","createExtendComp","defineComponent","auiExtend","type","String","Number","methods","$aui","$el","data","mixins","component","patchDefaultProps","AuiChild","observedAttributes","getAuiPropNames","aui","vue","force","defineAuiComponent","wrappedComponent","keys","forEach","h","querySelector","$replace","setup","attrs","useAttrs","vueComponentRef","elementRef","selfAttrs","slotsRef","createTempSlot","useSlots","onMounted","$bindVue","replaceTempSlot","addEventListener","getAuiAttrs","formatStructure","trueComp","indexOf","a","s1","toUpperCase","addHooks","merge","getHookStructure","core"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.es.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\r\nimport { h, useSlots, useAttrs, onMounted, ref, createApp, defineComponent, shallowRef } from 'vue';\r\nimport { merge } from 'ts-deepmerge';\r\nexport { type Component as TraditionComponent } from './types';\r\n\r\nconst TAG_PREFIX = __AUI_CONFIG__.tagPrefix || 'aui';\r\nconst AUI_ATTR_FLAG = 'data-v-aui';\r\n\r\nconst shadowSymbol = Symbol('shadow');\r\n\r\nexport type HookHandler = (c: any) => void | any;\r\n\r\ntype AUI_COMPONENT_OPTION = {\r\n valueType?: any\r\n}\r\n\r\nexport type Component = ComponentType;\r\n\r\ntype AUI_SLOT_CACHE = {\r\n start: Comment,\r\n end: Comment,\r\n};\r\n\r\ntype AUI_COMP_SHADOW = {\r\n el?: HTMLElement | null,\r\n ref?: Component | null,\r\n value?: string | null,\r\n options?: AUI_COMPONENT_OPTION,\r\n needHook: boolean,\r\n slot: Record<string, AUI_SLOT_CACHE>,\r\n};\r\n\r\ntype GlobalAuiCore = {\r\n defined: Record<string, AUI_VUE_DEFINE_CACHE>\r\n}\r\n\r\ntype SlotElement = {\r\n default: Node[],\r\n [key: string]: Node[],\r\n}\r\n\r\nfunction getGlobalAuiCore(): GlobalAuiCore {\r\n if (!Object.prototype.hasOwnProperty.call(window, '__GLOBAL_AUI_CORE__')) {\r\n Object.defineProperty(window, '__GLOBAL_AUI_CORE__', {\r\n value: {\r\n defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>\r\n },\r\n writable: false,\r\n enumerable: false,\r\n });\r\n }\r\n return (window as any)['__GLOBAL_AUI_CORE__'];\r\n}\r\n\r\n\r\nexport class AuiComponent extends HTMLElement {\r\n __hasVue__: boolean = false;\r\n private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\r\n private [shadowSymbol]: AUI_COMP_SHADOW = { needHook: false, slot: {} };\r\n\r\n constructor(options?: AUI_COMPONENT_OPTION) {\r\n super();\r\n this[AuiComponent.shadowSymbol].options = options || {};\r\n this.$initAttrs();\r\n }\r\n\r\n connectedCallback() {\r\n // console.log('aui component connected:', this.tagName);\r\n\r\n if (this.$needInit()) {\r\n this.$needHook(true);\r\n this.$initVue();\r\n }\r\n\r\n }\r\n\r\n set textContent(v: string) {\r\n if (!this.$needHook()) {\r\n super.textContent = v;\r\n return;\r\n }\r\n\r\n this.$textContent(v);\r\n }\r\n\r\n get textContent() {\r\n if (!this.$needHook()) {\r\n return super.textContent || '';\r\n }\r\n\r\n return this.$textContent('default');\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (!this.$needHook()) {\r\n super.innerHTML = v;\r\n return;\r\n }\r\n\r\n this.$innerHTML(v);\r\n }\r\n\r\n get innerHTML() {\r\n if (!this.$needHook()) {\r\n return super.innerHTML || '';\r\n }\r\n\r\n return this.$innerHTML('default');\r\n }\r\n\r\n set innerText(v: string) {\r\n this.$ignoreLog('innerText');\r\n super.innerText = v;\r\n }\r\n\r\n prepend<T extends Node>(node: T) {\r\n if (!this.$needHook()) {\r\n return super.prepend(node);\r\n }\r\n this.$prepend('default', node);\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (!this.$needHook()) {\r\n return super.appendChild(node);\r\n }\r\n return this.$appendChild('default', node);\r\n }\r\n\r\n set value(v: string | null) {\r\n let val: any = v;\r\n\r\n const oldValue = this[AuiComponent.shadowSymbol].value;\r\n let newValue;\r\n\r\n if (this.$isArrayValue()) {\r\n val = AuiComponent.$anyToArray(v);\r\n newValue = JSON.stringify(val);\r\n } else {\r\n newValue = val.toString();\r\n }\r\n\r\n if (oldValue === newValue) return;\r\n\r\n this[AuiComponent.shadowSymbol].value = newValue;\r\n\r\n if (this[AuiComponent.shadowSymbol].el) {\r\n this.$attrChange('value');\r\n }\r\n }\r\n\r\n get value(): any {\r\n const v = this[AuiComponent.shadowSymbol].value;\r\n if (this.$isArrayValue()) {\r\n return typeof v === 'string' ? JSON.parse(v) : v;\r\n } else {\r\n return v;\r\n }\r\n }\r\n\r\n hasAttribute(qualifiedName: string): boolean {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n return shadowElement.hasAttribute(qualifiedName);\r\n }\r\n return super.hasAttribute(qualifiedName);\r\n }\r\n\r\n setAttribute(qualifiedName: string, value: string): void {\r\n value = value.toString();\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n if (shadowElement.getAttribute(qualifiedName) === value) return;\r\n shadowElement.setAttribute(qualifiedName, value);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.setAttribute(qualifiedName, value);\r\n }\r\n\r\n if (qualifiedName === 'value' && shadowElement) {\r\n this.value = shadowElement.getAttribute(qualifiedName);\r\n } else {\r\n this.$attrChange(qualifiedName);\r\n }\r\n }\r\n\r\n getAttribute(qualifiedName: string): string | null {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n return shadowElement ? shadowElement.getAttribute(qualifiedName) : super.getAttribute(qualifiedName);\r\n }\r\n\r\n removeAttribute(qualifiedName: string): void {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n shadowElement.removeAttribute(qualifiedName);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.removeAttribute(qualifiedName);\r\n }\r\n this.$attrChange(qualifiedName);\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (!shadowElement) return;\r\n if (oldValue === newValue) return;\r\n\r\n if (!this.$isShowProp(_M.vueAttrName(name))) {\r\n super.removeAttribute(name);\r\n }\r\n\r\n shadowElement.setAttribute(name, newValue || '');\r\n if (name !== 'value') {\r\n this.$attrChange(name);\r\n }\r\n\r\n }\r\n\r\n // ---------------------------\r\n\r\n static $anyToArray(s: any): any {\r\n let arr = [];\r\n if (typeof s === 'string') {\r\n try {\r\n const json = JSON.parse(s);\r\n if (json instanceof Array) {\r\n return json;\r\n }\r\n } catch (_) { }\r\n const sp = s.split(',');\r\n arr = sp.filter((item) => item ? item.trim() : false);\r\n } else if (s instanceof Array) {\r\n arr = s;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n // ---------------------------\r\n\r\n $textContent(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next.textContent);\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n this.$replaceChildren(name, [document.createTextNode(args[0] || '')]);\r\n }\r\n return '';\r\n }\r\n\r\n $innerHTML(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if ((next as any).outerHTML) {\r\n ret.push((next as any).outerHTML);\r\n } else {\r\n let text = next.textContent;\r\n if (next instanceof Comment) {\r\n text = `<!--${text}-->`;\r\n }\r\n ret.push(text);\r\n }\r\n\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n const tpl = document.createElement('div');\r\n tpl.innerHTML = args[0] || '';\r\n const children = this.$moveChildren(tpl as any);\r\n this.$replaceChildren(name, children.default);\r\n }\r\n return '';\r\n }\r\n\r\n $prepend<T extends Node>(name: string, node: T) {\r\n const { start } = this.$slot(name) || {};\r\n start?.parentNode?.insertBefore(node, start.nextSibling);\r\n }\r\n\r\n $appendChild<T extends Node>(name: string, node: T): T {\r\n const { end } = this.$slot(name) || {};\r\n end?.parentNode?.insertBefore(node, end);\r\n return node;\r\n }\r\n\r\n $childNodes(name?: string): NodeListOf<ChildNode> {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next);\r\n }\r\n return ret as any;\r\n }\r\n\r\n $children(name?: string): HTMLCollection {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if (next instanceof HTMLElement) {\r\n ret.push(next);\r\n }\r\n }\r\n return ret as any;\r\n }\r\n\r\n $replaceChildren(name: string, children: any[]) {\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = null;\r\n while (start && (next = start.nextSibling) && next !== end) {\r\n next.parentNode?.removeChild(next);\r\n }\r\n if (end) {\r\n while (next = children.shift()) {\r\n end.parentNode?.insertBefore(next, end);\r\n }\r\n }\r\n }\r\n\r\n $slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined {\r\n name = name || 'default';\r\n if (slot) {\r\n this[AuiComponent.shadowSymbol].slot[name] = slot;\r\n } else {\r\n return this[AuiComponent.shadowSymbol].slot[name];\r\n }\r\n }\r\n\r\n $needHook(need?: boolean): boolean {\r\n if (typeof need === 'boolean') {\r\n this[AuiComponent.shadowSymbol].needHook = need;\r\n }\r\n return this[AuiComponent.shadowSymbol].needHook;\r\n }\r\n\r\n $ignoreLog(name: string) {\r\n console.warn(`aui component ignore : ${name}`);\r\n }\r\n\r\n $moveChildren(el?: AuiComponent): SlotElement {\r\n el = el || this;\r\n const list = el.childNodes;\r\n const ret: SlotElement = {\r\n default: []\r\n };\r\n while (list.length > 0) {\r\n const child = list[0] as AuiSlot;\r\n child.parentNode?.removeChild(child);\r\n if (AuiSlot.$isForAuiSlot(child)) {\r\n const name = child.getAttribute('for') || 'default';\r\n ret[name] = ret[name] || [];\r\n const children = Array.prototype.slice.call(child.childNodes);\r\n AuiSlot.prototype.$bind.call(child, el);\r\n ret[name].push(...children);\r\n } else {\r\n ret['default'].push(child);\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n $isArrayValue() {\r\n return this[AuiComponent.shadowSymbol].options?.valueType === Array;\r\n }\r\n\r\n $attrChange(name: string) {\r\n if (name === 'value') {\r\n const val = this.value;\r\n if (super.hasAttribute(AUI_ATTR_FLAG)) {\r\n this.$call('$emit', `update:value`, val);\r\n } else {\r\n super.dispatchEvent(new CustomEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n }));\r\n // super.dispatchEvent(new CustomEvent('change', {\r\n // bubbles: true,\r\n // composed: true,\r\n // }));\r\n }\r\n }\r\n this.dispatchEvent(new CustomEvent('aui-attr-change', {\r\n bubbles: true,\r\n composed: true,\r\n detail: { attributeName: _M.vueAttrName(name) }\r\n }));\r\n }\r\n\r\n $initAttrs() {\r\n const attributes = this.attributes;\r\n const shadow = document.createElement('div');\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n shadow.setAttribute(attr.name, attr.value);\r\n if (!this.$isShowProp(_M.vueAttrName(attr.name))) {\r\n super.removeAttribute(attr.name);\r\n }\r\n if (attr.name === 'value') {\r\n this.value = attr.value;\r\n }\r\n }\r\n Object.defineProperty(this, 'attributes', {\r\n get value() {\r\n return shadow.attributes;\r\n },\r\n writable: false,\r\n });\r\n\r\n this[AuiComponent.shadowSymbol].el = shadow;\r\n }\r\n\r\n $isShowProp(name: string): boolean {\r\n if (_M.isVueAttr(name)) return true;\r\n const prop = this.$getProp(name);\r\n // console.log('name:', name)\r\n const isShow = prop?.show;\r\n return isShow;\r\n }\r\n\r\n $getProp(name: string): any {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(this.tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n return props[name];\r\n }\r\n\r\n $initVue() {\r\n if (this.__hasVue__) {\r\n return;\r\n }\r\n this.__hasVue__ = true;\r\n\r\n const tagName = this.tagName.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined) {\r\n console.warn(`AUI组件 [${this.tagName}] 未定义`);\r\n return;\r\n }\r\n createApp(_M.createVueComponent(tagName, this)).mount(this);\r\n }\r\n\r\n $needInit() {\r\n const flag = super.hasAttribute(AUI_ATTR_FLAG);\r\n if (flag) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n $bindVue(v: Component) {\r\n if (this[AuiComponent.shadowSymbol].ref) {\r\n return;\r\n }\r\n // Object.assign(v, { $aui: this });\r\n this[AuiComponent.shadowSymbol].ref = v;\r\n this.__hasVue__ = true;\r\n // 触发init事件\r\n const event = new CustomEvent('aui-init', {\r\n bubbles: false,\r\n detail: { code: 0 }\r\n });\r\n this.dispatchEvent(event);\r\n const auiInit = (_M.cache.getAuiVueDefined(this.tagName)?.origin as any)?.auiInit;\r\n if (auiInit) {\r\n auiInit.call(v);\r\n }\r\n }\r\n\r\n $call(name?: string, ...args: any[]): any {\r\n const ref = this[AuiComponent.shadowSymbol].ref as Record<string, any>;\r\n return _M.$call(ref, name, ...args);\r\n }\r\n\r\n}\r\n\r\ntype TypeAuiComponent = typeof AuiComponent;\r\n\r\ntype AUI_VUE_DEFINE_CACHE = {\r\n aui?: TypeAuiComponent,\r\n vue?: Component,\r\n origin?: Component,\r\n hooks?: HookHandler[],\r\n}\r\n\r\n\r\nclass AuiSlot extends HTMLElement {\r\n\r\n _el_?: AuiComponent;\r\n _name_?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n connectedCallback() {\r\n this.style.display = 'none';\r\n }\r\n\r\n set textContent(v: string) {\r\n if (this._name_) {\r\n this._el_?.$textContent(this._name_, v);\r\n } else {\r\n super.textContent = v;\r\n }\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (this._name_) {\r\n this._el_?.$innerHTML(this._name_, v);\r\n } else {\r\n super.innerHTML = v;\r\n }\r\n }\r\n\r\n prepend<T extends Node>(node: T): void {\r\n if (this._name_) {\r\n this._el_?.$prepend(this._name_, node);\r\n } else {\r\n super.prepend(node);\r\n }\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (this._name_) {\r\n this._el_?.$appendChild(this._name_, node);\r\n return node;\r\n } else {\r\n return super.appendChild(node);\r\n }\r\n }\r\n\r\n // ---------------------\r\n\r\n static $isAuiSlot(el: HTMLElement) {\r\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\r\n\r\n if (el.tagName.toLowerCase() === 'aui-slot') return true;\r\n\r\n return false;\r\n }\r\n\r\n static $isForAuiSlot(el: HTMLElement) {\r\n if (AuiSlot.$isAuiSlot(el) && el.hasAttribute('for')) return true;\r\n return false;\r\n }\r\n\r\n $bind(el: AuiComponent) {\r\n this._el_ = el;\r\n this._name_ = this.getAttribute('for') || 'default';\r\n }\r\n\r\n $replace(el: AuiComponent) {\r\n const name = this.getAttribute('name') || 'default';\r\n const start = document.createComment(`aui-slot-${name}-start`);\r\n const end = document.createComment(`aui-slot-${name}-end`);\r\n\r\n el.$slot(name, { start, end });\r\n this.replaceWith(start, end);\r\n }\r\n}\r\n\r\nconst _M = {\r\n init() {\r\n _M.defineSlot();\r\n return _M;\r\n },\r\n defineSlot() {\r\n _M.defineCustomElement('aui-slot', AuiSlot);\r\n },\r\n $call(ref: Record<string, any>, name?: string, ...args: any[]): any {\r\n\r\n if (!ref) {\r\n return new Error('not init');\r\n }\r\n\r\n if (!name) return ref;\r\n\r\n if (typeof ref[name] === 'function') {\r\n return ref[name].call(ref, ...args);\r\n }\r\n\r\n const sp = name.split('.');\r\n let target = ref, last = sp.pop() || '', cur = null;\r\n\r\n while (cur = sp.shift()) {\r\n if (Object.prototype.hasOwnProperty.call(target, cur)) {\r\n target = target[cur];\r\n } else {\r\n return new Error('no match name');\r\n }\r\n }\r\n\r\n if (args.length === 0) {\r\n return target[last];\r\n } else {\r\n target[last] = args[0];\r\n return null;\r\n }\r\n\r\n },\r\n formatName(name: string | undefined): string {\r\n if (!name) {\r\n return '';\r\n }\r\n name = name.replace(/[A-Z]/g, function (s) {\r\n return '-' + s.toLowerCase();\r\n });\r\n return TAG_PREFIX + name;\r\n },\r\n cache: {\r\n defined: getGlobalAuiCore().defined,\r\n getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined {\r\n tagName = tagName.toLowerCase();\r\n return _M.cache.defined[tagName];\r\n },\r\n getAuiPropNames(tagName: string): string[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n const names = [];\r\n for (const key in props) {\r\n names.push(_M.auiAttrName(key));\r\n }\r\n return names;\r\n },\r\n addHooks(name: string, handle: HookHandler) {\r\n name = name.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n if (auiVueDefined) {\r\n auiVueDefined.hooks = auiVueDefined.hooks || [];\r\n auiVueDefined.hooks.push(handle);\r\n } else {\r\n _M.cache.defined[name] = {\r\n hooks: [handle],\r\n }\r\n }\r\n }\r\n },\r\n createExtendComp(v: Component): Component {\r\n return defineComponent({\r\n props: {\r\n auiExtend: {\r\n type: String,\r\n },\r\n value: {\r\n type: (v as any).props?.value?.type || [String, Number, Array],\r\n }\r\n },\r\n methods: {\r\n $anyToArray: AuiComponent.$anyToArray,\r\n $value(...args: any[]) {\r\n const $aui = this.$aui();\r\n if (args.length === 0) {\r\n return $aui?.value;\r\n } else {\r\n if ($aui) {\r\n $aui.value = args[0];\r\n }\r\n }\r\n },\r\n $call(name?: string, ...args: any[]): any {\r\n const $aui = this.$aui();\r\n if (!$aui) return null;\r\n return _M.$call($aui, name, ...args);\r\n },\r\n $aui(): AuiComponent | null {\r\n return this.$el?.parentNode;\r\n },\r\n },\r\n data() {\r\n return {\r\n\r\n }\r\n }\r\n })\r\n },\r\n patchDefaultProps(origin: Component): any {\r\n\r\n const valueType = (origin as any).props?.value?.type;\r\n\r\n if (!(origin as any).mixins) {\r\n (origin as any).mixins = [];\r\n }\r\n\r\n (origin as any).mixins.push(_M.createExtendComp(origin));\r\n\r\n return valueType;\r\n\r\n },\r\n defineAuiComponent(tagName: string, component: Component, origin: Component) {\r\n\r\n const valueType = _M.patchDefaultProps(origin);\r\n\r\n if (!_M.cache.defined[tagName]?.origin) {\r\n class AuiChild extends AuiComponent {\r\n constructor() {\r\n super({ valueType });\r\n }\r\n\r\n static get observedAttributes() {\r\n return _M.cache.getAuiPropNames(tagName);\r\n }\r\n\r\n }\r\n\r\n _M.cache.defined[tagName] = {\r\n aui: AuiChild,\r\n vue: component,\r\n origin,\r\n hooks: _M.cache.defined[tagName]?.hooks || [],\r\n };\r\n\r\n _M.defineCustomElement(tagName, AuiChild);\r\n\r\n } else {\r\n _M.cache.defined[tagName].origin = origin;\r\n }\r\n },\r\n\r\n defineCustomElement(tagName: string, cls: any) {\r\n try {\r\n customElements.define(tagName, cls);\r\n } catch (_) {\r\n // console.warn('defineCustomElement error', error);\r\n }\r\n },\r\n\r\n sameComponent(tagName: string, v: any): boolean {\r\n if (!Object.prototype.hasOwnProperty.call(v, '__hmrId')) return false;\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const origin = auiVueDefined?.origin as any;\r\n if (!origin) return false;\r\n return v.__hmrId === origin.__hmrId;\r\n },\r\n\r\n notifyComponentUpdate(tagName: string) {\r\n const comps = document.querySelectorAll(tagName);\r\n comps.forEach((comp) => {\r\n comp.dispatchEvent(new CustomEvent('aui-force-update'));\r\n });\r\n },\r\n\r\n define(v: Component, force: boolean = true): Component {\r\n const tagName = _M.formatName(v.name);\r\n\r\n // console.log('define aui comp, name is', tagName);\r\n\r\n if (!tagName) {\r\n console.warn('当前组件不符合AUI定义');\r\n return v;\r\n }\r\n\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n\r\n if (auiVueDefined && auiVueDefined.vue) {\r\n if (force || _M.sameComponent(tagName, v)) {\r\n console.log('aui组件更新origin定义');\r\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\r\n _M.notifyComponentUpdate(tagName);\r\n } else {\r\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\r\n }\r\n\r\n return auiVueDefined.vue;\r\n }\r\n\r\n const wrappedComponent = _M.createVueComponent(tagName);\r\n\r\n _M.defineAuiComponent(tagName, wrappedComponent, v);\r\n\r\n return wrappedComponent;\r\n },\r\n createTempSlot(children: SlotElement): any {\r\n const ret = {} as { [key: string]: any };\r\n Object.keys(children).forEach((name) => {\r\n ret[name] = () => h('aui-slot', { name });\r\n });\r\n return ret;\r\n },\r\n replaceTempSlot(el: AuiComponent, children: SlotElement) {\r\n const names = Object.keys(children);\r\n names.forEach((name) => {\r\n const slot = el.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot | null;\r\n if (slot) {\r\n AuiSlot.prototype.$replace.call(slot, el);\r\n el.$replaceChildren(name, children[name]);\r\n }\r\n });\r\n\r\n },\r\n createVueComponent(tagName: string, el?: AuiComponent): Component {\r\n\r\n const children = el ? el.$moveChildren() : { default: [] };\r\n\r\n const wrappedComponent = {\r\n setup() {\r\n const attrs = useAttrs()\r\n const vueComponentRef = shallowRef<any>(null)\r\n const elementRef = shallowRef<AuiComponent | null>(null)\r\n const selfAttrs = ref<Record<string, any>>({})\r\n const slotsRef = shallowRef<any>(el ? _M.createTempSlot(children) : useSlots())\r\n const target = shallowRef<Component | null>(null);\r\n\r\n onMounted(() => {\r\n if (vueComponentRef.value && elementRef.value && elementRef.value.$bindVue) {\r\n elementRef.value.$bindVue(vueComponentRef.value);\r\n\r\n el && _M.replaceTempSlot(el, children);\r\n\r\n // 监听属性变化事件\r\n elementRef.value.addEventListener('aui-attr-change', () => {\r\n if (elementRef.value) {\r\n selfAttrs.value = _M.getAuiAttrs(elementRef.value);\r\n }\r\n });\r\n\r\n // 监听自定义强制更新事件\r\n elementRef.value.addEventListener('aui-force-update', () => {\r\n target.value = null;\r\n });\r\n\r\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\r\n } else {\r\n console.warn('AUI组件绑定失败');\r\n }\r\n })\r\n\r\n return () => {\r\n\r\n if (el) {\r\n elementRef.value = el;\r\n selfAttrs.value = _M.getAuiAttrs(el);\r\n }\r\n\r\n if (!target.value) {\r\n (target as any).value = _M.formatStructure(tagName);\r\n }\r\n\r\n if (!target.value) {\r\n console.warn('AUI组件未定义,加载失败,name:', tagName);\r\n return null;\r\n }\r\n\r\n const trueComp = h(target.value, { ...attrs, ...selfAttrs.value, ref: vueComponentRef }, slotsRef.value || {});\r\n\r\n const ret = el ? trueComp : h(tagName, { ref: elementRef, [AUI_ATTR_FLAG]: '' }, [\r\n trueComp\r\n ]);\r\n\r\n return ret;\r\n }\r\n }\r\n };\r\n\r\n return wrappedComponent;\r\n },\r\n getAuiAttrs(el: AuiComponent): Record<string, any> {\r\n\r\n const attrs = {} as Record<string, any>;\r\n\r\n const attributes = el.attributes;\r\n\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n // 跳过 aui 和 vue 标记属性\r\n if (attr.name === TAG_PREFIX || _M.isVueAttr(attr.name)) continue;\r\n attrs[attr.name] = attr.value;\r\n }\r\n\r\n if (el.value !== null) {\r\n attrs.value = el.value;\r\n }\r\n\r\n return attrs;\r\n },\r\n isVueAttr(name: string): boolean {\r\n return name.indexOf('data-v-') === 0;\r\n },\r\n auiAttrName(name: string): string {\r\n return name.replace(/([A-Z])/g, (a) => '-' + a.toLowerCase());\r\n },\r\n vueAttrName(name: string): string {\r\n if (_M.isVueAttr(name)) return name;\r\n return name.replace(/-([a-z])/g, (_, s1) => s1.toUpperCase());\r\n },\r\n hookStructure(name: string, handle: HookHandler) {\r\n _M.cache.addHooks(name, handle);\r\n },\r\n getHookStructure(name: string): HookHandler[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n const hooks = auiVueDefined?.hooks || [];\r\n return hooks.slice(0);\r\n },\r\n formatStructure(tagName: string): Component | null {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined?.origin) {\r\n return null;\r\n }\r\n let origin = merge({}, auiVueDefined.origin) as Component;\r\n const hooks = _M.getHookStructure(tagName);\r\n let handle;\r\n while (handle = hooks.shift()) {\r\n const cur = handle(origin);\r\n if (cur) {\r\n origin = cur;\r\n }\r\n }\r\n\r\n return origin;\r\n }\r\n};\r\n\r\nexport default _M.init();"],"names":["_a","_b","TAG_PREFIX","__AUI_CONFIG__","tagPrefix","AUI_ATTR_FLAG","shadowSymbol","Symbol","AuiComponent","HTMLElement","options","super","this","__hasVue__","needHook","slot","$initAttrs","$needInit","$needHook","$initVue","v","$textContent","textContent","$innerHTML","innerHTML","$ignoreLog","innerText","node","prepend","$prepend","$appendChild","appendChild","val","oldValue","value","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","qualifiedName","shadowElement","hasAttribute","getAttribute","setAttribute","$isShowProp","_M","vueAttrName","removeAttribute","name","s","arr","json","Array","_","split","filter","item","trim","args","length","ret","start","end","$slot","next","nextSibling","push","join","$replaceChildren","document","createTextNode","outerHTML","text","Comment","tpl","createElement","children","$moveChildren","default","parentNode","insertBefore","removeChild","shift","need","list","childNodes","child","AuiSlot","$isForAuiSlot","prototype","slice","call","$bind","valueType","$call","dispatchEvent","CustomEvent","bubbles","composed","detail","attributeName","attributes","shadow","i","attr","Object","defineProperty","writable","isVueAttr","prop","$getProp","isShow","show","auiVueDefined","cache","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","ref","event","code","auiInit","constructor","connectedCallback","style","display","_name_","_el_","nodeType","Node","ELEMENT_NODE","$isAuiSlot","createComment","replaceWith","init","defineSlot","defineCustomElement","Error","sp","target","last","pop","cur","hasOwnProperty","formatName","replace","defined","window","enumerable","names","key","auiAttrName","handle","hooks","createExtendComp","defineComponent","auiExtend","type","String","Number","methods","$aui","$el","data","mixins","component","patchDefaultProps","AuiChild","observedAttributes","getAuiPropNames","aui","vue","cls","customElements","define","__hmrId","querySelectorAll","forEach","comp","force","sameComponent","defineAuiComponent","notifyComponentUpdate","wrappedComponent","keys","h","querySelector","$replace","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","createTempSlot","useSlots","onMounted","$bindVue","replaceTempSlot","addEventListener","getAuiAttrs","formatStructure","trueComp","indexOf","a","s1","toUpperCase","addHooks","merge","getHookStructure","core"],"mappings":"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"}
|