agile-core 3.0.2 → 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/dist/core.es.js CHANGED
@@ -1,10 +1,10 @@
1
- import { createApp as e, defineComponent as t, useAttrs as n, ref as r, useSlots as i, onMounted as s, h as o } from "vue";
2
- import { merge as a } from "ts-deepmerge";
3
- var u, l;
4
- const h = __AUI_CONFIG__.tagPrefix || "aui", c = "data-v-aui", d = Symbol("shadow");
5
- const _AuiComponent = class _AuiComponent extends (l = HTMLElement, u = d, l) {
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[u] = { needHook: false, slot: {} }, this[_AuiComponent.shadowSymbol].options = e2 || {}, this.$initAttrs();
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(m.vueAttrName(e2)) && super.setAttribute(e2, t2), "value" === e2 && n2 ? this.value = n2.getAttribute(e2) : this.$attrChange(e2);
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(m.vueAttrName(e2)) && super.removeAttribute(e2), this.$attrChange(e2);
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(m.vueAttrName(e2)) || super.removeAttribute(e2), r2.setAttribute(e2, n2 || ""), "value" !== e2 && this.$attrChange(e2));
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), p.$isForAuiSlot(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
- p.prototype.$bind.call(r2, e2), n2[t3].push(...i2);
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(c) ? this.$call("$emit", "update:value", e3) : super.dispatchEvent(new CustomEvent("input", { bubbles: true, composed: true }));
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: m.vueAttrName(e2) } }));
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(m.vueAttrName(r2.name)) || super.removeAttribute(r2.name), "value" === r2.name && (this.value = r2.value);
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 (m.isVueAttr(e2)) return true;
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 = m.cache.getAuiVueDefined(this.tagName);
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
- m.cache.getAuiVueDefined(t2) && e(m.createVueComponent(t2, this)).mount(this);
197
+ f.cache.getAuiVueDefined(t2) && e(f.createVueComponent(t2, this)).mount(this);
198
198
  }
199
199
  $needInit() {
200
- return !super.hasAttribute(c);
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 = m.cache.getAuiVueDefined(this.tagName)) == null ? void 0 : _a.origin) == null ? void 0 : _b.auiInit;
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 m.$call(n2, e2, ...t2);
213
+ return f.$call(n2, e2, ...t2);
214
214
  }
215
215
  };
216
- _AuiComponent.shadowSymbol = d;
216
+ _AuiComponent.shadowSymbol = p;
217
217
  let AuiComponent = _AuiComponent;
218
- class p extends HTMLElement {
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 !(!p.$isAuiSlot(e2) || !e2.hasAttribute("for"));
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 m = { init: () => (m.defineSlot(), m), defineSlot() {
256
- try {
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, s2 = r2.pop() || "", o2 = null;
266
- for (; o2 = r2.shift(); ) {
267
- if (!Object.prototype.hasOwnProperty.call(i2, o2)) return new Error("no match name");
268
- i2 = i2[o2];
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[s2] : (i2[s2] = n2[0], null);
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
- }), h + 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(), m.cache.defined[e2]), getAuiPropNames(e2) {
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 = m.cache.getAuiVueDefined(e2), n2 = ((_a = t2 == null ? void 0 : t2.origin) == null ? void 0 : _a.props) || {}, r2 = [];
276
- for (const e3 in n2) r2.push(m.auiAttrName(e3));
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 = m.cache.getAuiVueDefined(e2);
281
- n2 ? (n2.hooks = n2.hooks || [], n2.hooks.push(t2)) : m.cache.defined[e2] = { hooks: [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 ? m.$call(n2, e3, ...t2) : null;
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(m.createExtendComp(e2)), t2;
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 = m.patchDefaultProps(n2);
302
- if ((_a = m.cache.defined[e2]) == null ? void 0 : _a.origin) m.cache.defined[e2].origin = n2;
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 m.cache.getAuiPropNames(e2);
306
+ return f.cache.getAuiPropNames(e2);
310
307
  }
311
308
  }
312
- m.cache.defined[e2] = { aui: i2, vue: t2, origin: n2, hooks: ((_b = m.cache.defined[e2]) == null ? void 0 : _b.hooks) || [] }, customElements.define(e2, i2);
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
- }, define(e2, t2 = false) {
315
- const n2 = m.formatName(e2.name);
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 = m.cache.getAuiVueDefined(n2);
318
- if (r2 && r2.vue) return t2 && m.defineAuiComponent(n2, r2.vue, e2), r2.vue;
319
- const i2 = m.createVueComponent(n2);
320
- return m.defineAuiComponent(n2, i2, e2), i2;
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] = () => o("aui-slot", { name: 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 && (p.prototype.$replace.call(r2, e2), e2.$replaceChildren(n2, t2[n2]));
339
+ r2 && (m.prototype.$replace.call(r2, e2), e2.$replaceChildren(n2, t2[n2]));
330
340
  });
331
341
  }, createVueComponent(e2, t2) {
332
- const a2 = t2 ? t2.$moveChildren() : { default: [] };
342
+ const u2 = t2 ? t2.$moveChildren() : { default: [] };
333
343
  return { setup() {
334
- const u2 = n(), l2 = r(null), h2 = r(null), d2 = r({}), p2 = r(t2 ? m.createTempSlot(a2) : i());
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
- l2.value && h2.value && h2.value.$bindVue && (h2.value.$bindVue(l2.value), t2 && m.replaceTempSlot(t2, a2), h2.value.addEventListener("aui-attr-change", () => {
338
- h2.value && (d2.value = m.getAuiAttrs(h2.value));
339
- }), h2.value.$call("$emit", "update:value", h2.value.value));
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 && (h2.value = t2, d2.value = m.getAuiAttrs(t2)), f2 || (f2 = m.formatStructure(e2)), !f2) return null;
342
- const n2 = o(f2, { ...u2, ...d2.value, ref: l2 }, p2.value || {});
343
- return t2 ? n2 : o(e2, { ref: h2, [c]: "" }, [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 === h || m.isVueAttr(r2.name) || (t2[r2.name] = r2.value);
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) => m.isVueAttr(e2) ? e2 : e2.replace(/-([a-z])/g, (e3, t2) => t2.toUpperCase()), hookStructure(e2, t2) {
354
- m.cache.addHooks(e2, t2);
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 = m.cache.getAuiVueDefined(e2);
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 = m.cache.getAuiVueDefined(e2);
370
+ const t2 = f.cache.getAuiVueDefined(e2);
360
371
  if (!(t2 == null ? void 0 : t2.origin)) return null;
361
- let n2 = a({}, t2.origin);
362
- const r2 = m.getHookStructure(e2);
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
- } }, f = m.init();
380
+ } }, $ = f.init();
370
381
  export {
371
382
  AuiComponent,
372
- f as default
383
+ $ as default
373
384
  };
374
385
  //# sourceMappingURL=core.es.js.map
@@ -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":";;AAAA,IAAAA,GAAAC;AAKA,MAAMC,IAAaC,eAAeC,aAAa,OACzCC,IAAgB,cAEhBC,IAAeC,OAAO,QAAA;AA+CrB,MAAMC,gBAAN,MAAMA,uBAAqBP,IAAAQ,aAGrBT,IAAAM,GAHqBL;EAK9B,YAAYS,IAAAA;AACRC,UAAAA,GALJC,KAAAC,aAAAA,OAEAD,KAASZ,CAAAA,IAAiC,EAAEc,UAAAA,OAAiBC,MAAM,MAI/DH,KAAKJ,cAAaF,YAAAA,EAAcI,UAAUA,MAAW,CAAA,GACrDE,KAAKI,WAAAA;AAAAA,EACT;AAAA,EAEA;AAGQJ,SAAKK,UAAAA,MACLL,KAAKM,UAAAA,IAAU,GACfN,KAAKO,SAAAA;AAAAA,EAGb;AAAA,EAEA,IAAA,YAAgBC,IAAAA;AACPR,SAAKM,UAAAA,IAKVN,KAAKS,aAAaD,EAAAA,IAJdT,MAAMW,cAAcF;AAAAA,EAK5B;AAAA,EAEA,IAAA,cAAIE;AACA,WAAKV,KAAKM,UAAAA,IAIHN,KAAKS,aAAa,SAAA,IAHdV,MAAMW,eAAe;AAAA,EAIpC;AAAA,EAEA,IAAA,UAAcF,IAAAA;AACLR,SAAKM,UAAAA,IAKVN,KAAKW,WAAWH,EAAAA,IAJZT,MAAMa,YAAYJ;AAAAA,EAK1B;AAAA,EAEA,IAAA,YAAII;AACA,WAAKZ,KAAKM,UAAAA,IAIHN,KAAKW,WAAW,SAAA,IAHZZ,MAAMa,aAAa;AAAA,EAIlC;AAAA,EAEA,IAAA,UAAcJ,IAAAA;AACVR,SAAKa,WAAW,WAAA,GAChBd,MAAMe,YAAYN;AAAAA,EACtB;AAAA,EAEA,QAAwBO,IAAAA;AACpB,QAAA,CAAKf,KAAKM,UAAAA,EACN,QAAOP,MAAMiB,QAAQD,EAAAA;AAEzBf,SAAKiB,SAAS,WAAWF,EAAAA;AAAAA,EAC7B;AAAA,EAEA,YAA4BA,IAAAA;AACxB,WAAKf,KAAKM,UAAAA,IAGHN,KAAKkB,aAAa,WAAWH,EAAAA,IAFzBhB,MAAMoB,YAAYJ;EAGjC;AAAA,EAEA,IAAA,MAAUP,IAAAA;AACN,QAAIY,KAAWZ;AAEf,UAAMa,KAAWrB,KAAKJ,cAAaF,YAAAA,EAAc4B;AACjD,QAAIC;AAEAvB,SAAKwB,cAAAA,KACLJ,KAAMxB,cAAa6B,YAAYjB,EAAAA,GAC/Be,KAAWG,KAAKC,UAAUP,EAAAA,KAE1BG,KAAWH,GAAIQ,SAAAA,GAGfP,OAAaE,OAEjBvB,KAAKJ,cAAaF,YAAAA,EAAc4B,QAAQC,IAEpCvB,KAAKJ,cAAaF,YAAAA,EAAcmC,MAChC7B,KAAK8B,YAAY,OAAA;AAAA,EAEzB;AAAA,EAEA,IAAA,QAAIR;AACA,UAAMd,KAAIR,KAAKJ,cAAaF,YAAAA,EAAc4B;AAC1C,WAAItB,KAAKwB,cAAAA,KACe,YAAA,OAANhB,KAAiBkB,KAAKK,MAAMvB,EAAAA,IAEnCA;AAAAA,EAEf;AAAA,EAEA,aAAawB,IAAAA;AACT,UAAMC,KAAgBjC,KAAKJ,cAAaF,YAAAA,EAAcmC;AACtD,WAAII,KACOA,GAAcC,aAAaF,EAAAA,IAE/BjC,MAAMmC,aAAaF,EAAAA;AAAAA,EAC9B;AAAA,EAEA,aAAaA,IAAuBV,IAAAA;AAChCA,IAAAA,KAAQA,GAAMM,SAAAA;AACd,UAAMK,KAAgBjC,KAAKJ,cAAaF,YAAAA,EAAcmC;AACtD,QAAII,IAAe;AACf,UAAIA,GAAcE,aAAaH,EAAAA,MAAmBV,GAAO;AACzDW,MAAAA,GAAcG,aAAaJ,IAAeV,EAAAA;AAAAA,IAC9C;AACetB,SAAKqC,YAAYC,EAAGC,YAAYP,EAAAA,CAAAA,KAE3CjC,MAAMqC,aAAaJ,IAAeV,EAAAA,GAGhB,YAAlBU,MAA6BC,KAC7BjC,KAAKsB,QAAQW,GAAcE,aAAaH,EAAAA,IAExChC,KAAK8B,YAAYE,EAAAA;AAAAA,EAEzB;AAAA,EAEA,aAAaA,IAAAA;AACT,UAAMC,KAAgBjC,KAAKJ,cAAaF,YAAAA,EAAcmC;AACtD,WAAOI,KAAgBA,GAAcE,aAAaH,EAAAA,IAAiBjC,MAAMoC,aAAaH,EAAAA;AAAAA,EAC1F;AAAA,EAEA,gBAAgBA,IAAAA;AACZ,UAAMC,KAAgBjC,KAAKJ,cAAaF,YAAAA,EAAcmC;AAClDI,IAAAA,MACAA,GAAcO,gBAAgBR,EAAAA;AAEnBhC,SAAKqC,YAAYC,EAAGC,YAAYP,EAAAA,CAAAA,KAE3CjC,MAAMyC,gBAAgBR,EAAAA,GAE1BhC,KAAK8B,YAAYE,EAAAA;AAAAA,EACrB;AAAA,EAEA,yBAAyBS,IAAcpB,IAAyBE,IAAAA;AAC5D,UAAMU,KAAgBjC,KAAKJ,cAAaF,YAAAA,EAAcmC;AACjDI,IAAAA,MACDZ,OAAaE,OAEZvB,KAAKqC,YAAYC,EAAGC,YAAYE,EAAAA,CAAAA,KACjC1C,MAAMyC,gBAAgBC,EAAAA,GAG1BR,GAAcG,aAAaK,IAAMlB,MAAY,EAAA,GAChC,YAATkB,MACAzC,KAAK8B,YAAYW,EAAAA;AAAAA,EAGzB;AAAA,EAIA,OAAA,YAAmBC,IAAAA;AACf,QAAIC,KAAM,CAAA;AACV,QAAiB,YAAA,OAAND,IAAgB;AACvB,UAAA;AACI,cAAME,KAAOlB,KAAKK,MAAMW;AACxB,YAAIE,cAAgBC,MAChB,QAAOD;AAAAA,MAEf,SAASE,IAAAA;AAAAA,MAAK;AAEdH,MAAAA,KADWD,GAAEK,MAAM,GAAA,EACVC,OAAQC,CAAAA,OAAAA,CAAAA,CAASA,MAAOA,GAAKC,KAAAA,CAAAA;AAAAA,IAC1C,MAAWR,CAAAA,cAAaG,UACpBF,KAAMD;AAGV,WAAOC;AAAAA,EACX;AAAA,EAIA,aAAaF,OAAiBU,IAAAA;AAC1B,QAAoB,MAAhBA,GAAKC,QAAc;AACnB,YAAMC,KAAM,CAAA,GAAA,EACNC,OAAEA,SAAOC,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAC3C,UAAIgB,KAAsDH;AAC1D,aAAOG,OAASA,KAAOA,GAAKC,gBAAgBD,OAASF,KACjDF,CAAAA,GAAIM,KAAKF,GAAK/C,WAAAA;AAElB,aAAO2C,GAAIO,KAAK,EAAA;AAAA,IAEpB;AAGA,WAFI5D,KAAK6D,iBAAiBpB,IAAM,CAACqB,SAASC,eAAeZ,GAAK,CAAA,KAAM,EAAA,CAAA,CAAA,GAE7D;AAAA,EACX;AAAA,EAEA,WAAWV,OAAiBU,IAAAA;AACxB,QAAoB,MAAhBA,GAAKC,QAAc;AACnB,YAAMC,KAAM,CAAA,GAAA,EACNC,OAAEA,SAAOC,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAC3C,UAAIgB,KAAsDH;AAC1D,aAAOG,OAASA,KAAOA,GAAKC,gBAAgBD,OAASF,KACjD,KAAKE,GAAaO,UACdX,CAAAA,GAAIM,KAAMF,GAAaO,SAAAA;AAAAA,WACpB;AACH,YAAIC,KAAOR,GAAK/C;AACZ+C,QAAAA,cAAgBS,YAChBD,KAAO,OAAOA,EAAAA,QAElBZ,GAAIM,KAAKM,EAAAA;AAAAA,MACb;AAGJ,aAAOZ,GAAIO,KAAK,EAAA;AAAA,IAEpB;AAAO;AACH,YAAMO,KAAML,SAASM,cAAc,KAAA;AACnCD,MAAAA,GAAIvD,YAAYuC,GAAK,CAAA,KAAM;AAC3B,YAAMkB,KAAWrE,KAAKsE,cAAcH,EAAAA;AACpCnE,WAAK6D,iBAAiBpB,IAAM4B,GAASE;IACzC;AACA,WAAO;AAAA,EACX;AAAA,EAEA,SAAyB9B,IAAc1B,IAAAA;;AACnC,UAAA,EAAMuC,OAAEA,GAAAA,IAAUtD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AACtCa,UAAAA,MAAAA,gBAAAA,GAAOkB,eAAPlB,mBAAmBmB,aAAa1D,IAAMuC,GAAMI;AAAAA,EAChD;AAAA,EAEA,aAA6BjB,IAAc1B,IAAAA;;AACvC,UAAA,EAAMwC,KAAEA,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAEpC,YADAc,KAAAA,MAAAA,gBAAAA,GAAKiB,eAALjB,mBAAiBkB,aAAa1D,IAAMwC,KAC7BxC;AAAAA,EACX;AAAA,EAEA,YAAY0B,IAAAA;AACR,UAAMY,KAAM,CAAA,GAAA,EACNC,OAAEA,SAAOC,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAC3C,QAAIgB,KAAsDH;AAC1D,WAAOG,OAASA,KAAOA,GAAKC,gBAAgBD,OAASF,KACjDF,CAAAA,GAAIM,KAAKF,EAAAA;AAEb,WAAOJ;AAAAA,EACX;AAAA,EAEA,UAAUZ,IAAAA;AACN,UAAMY,KAAM,CAAA,GAAA,EACNC,OAAEA,SAAOC,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAC3C,QAAIgB,KAAsDH;AAC1D,WAAOG,OAASA,KAAOA,GAAKC,gBAAgBD,OAASF,KAC7CE,CAAAA,cAAgB5D,eAChBwD,GAAIM,KAAKF,EAAAA;AAGjB,WAAOJ;AAAAA,EACX;AAAA,EAEA,iBAAiBZ,IAAc4B,IAAAA;;AAC3B,UAAA,EAAMf,OAAEA,SAAOC,GAAAA,IAAQvD,KAAKwD,MAAMf,EAAAA,KAAS,CAAA;AAC3C,QAAIgB,KAAsD;AAC1D,WAAOH,OAAUG,KAAOH,GAAMI,gBAAgBD,OAASF,KACnDE,OAAAA,GAAKe,eAALf,mBAAiBiB,YAAYjB;AAEjC,QAAIF,GACA,QAAOE,KAAOY,GAASM,MAAAA,IACnBpB,OAAAA,GAAIiB,eAAJjB,mBAAgBkB,aAAahB,IAAMF;AAAAA,EAG/C;AAAA,EAEA,MAAMd,IAAetC,IAAAA;AAEjB,QADAsC,KAAOA,MAAQ,WAAA,CACXtC,GAGA,QAAOH,KAAKJ,cAAaF,YAAAA,EAAcS,KAAKsC,EAAAA;AAF5CzC,SAAKJ,cAAaF,YAAAA,EAAcS,KAAKsC,EAAAA,IAAQtC;AAAAA,EAIrD;AAAA,EAEA,UAAUyE,IAAAA;AAIN,WAHoB,aAAA,OAATA,OACP5E,KAAKJ,cAAaF,YAAAA,EAAcQ,WAAW0E,KAExC5E,KAAKJ,cAAaF,YAAAA,EAAcQ;AAAAA,EAC3C;AAAA,EAEA,WAAWuC,IAAAA;AAAAA,EAEX;AAAA,EAEA,cAAcZ,IAAAA;;AAEV,UAAMgD,MADNhD,KAAKA,MAAM7B,MACK8E,YACVzB,KAAmB,EACrBkB,SAAS,CAAA,EAAA;AAEb,WAAOM,GAAKzB,SAAS,KAAG;AACpB,YAAM2B,KAAQF,GAAK,CAAA;AAEnB,WADAE,KAAAA,GAAMP,eAANO,mBAAkBL,YAAYK,KAC1BC,EAAQC,cAAcF,KAAQ;AAC9B,cAAMtC,KAAOsC,GAAM5C,aAAa,KAAA,KAAU;AAC1CkB,QAAAA,GAAIZ,EAAAA,IAAQY,GAAIZ,EAAAA,KAAS,CAAA;AACzB,cAAM4B,KAAWxB,MAAMqC,UAAUC,MAAMC,KAAKL,GAAMD,UAAAA;AAClDE,UAAQE,UAAUG,MAAMD,KAAKL,IAAOlD,EAAAA,GACpCwB,GAAIZ,EAAAA,EAAMkB,KAAAA,GAAQU,EAAAA;AAAAA,MACtB,MACIhB,CAAAA,GAAa,QAAEM,KAAKoB,EAAAA;AAAAA,IAE5B;AACA,WAAO1B;AAAAA,EACX;AAAA,EAEA,gBAAA7B;;AACI,aAAOxB,UAAKJ,cAAaF,YAAAA,EAAcI,YAAhCE,mBAAyCsF,eAAczC;AAAAA,EAClE;AAAA,EAEA,YAAYJ,IAAAA;AACR,QAAa,YAATA,IAAkB;AAClB,YAAMrB,KAAMpB,KAAKsB;AACbvB,YAAMmC,aAAazC,CAAAA,IACnBO,KAAKuF,MAAM,SAAS,gBAAgBnE,EAAAA,IAEpCrB,MAAMyF,cAAc,IAAIC,YAAY,SAAS,EACzCC,SAAAA,MACAC,UAAAA,KAAU,CAAA,CAAA;AAAA,IAOtB;AACA3F,SAAKwF,cAAc,IAAIC,YAAY,mBAAmB,EAClDC,SAAAA,MACAC,UAAAA,MACAC,QAAQ,EAAEC,eAAevD,EAAGC,YAAYE,EAAAA,EAAAA,EAAAA,CAAAA,CAAAA;AAAAA,EAEhD;AAAA,EAEA,aAAArC;AACI,UAAM0F,KAAa9F,KAAK8F,YAClBC,KAASjC,SAASM,cAAc,KAAA;AACtC,aAAS4B,KAAI,GAAGA,KAAIF,GAAW1C,QAAQ4C,MAAK;AACxC,YAAMC,KAAOH,GAAWE,EAAAA;AACxBD,MAAAA,GAAO3D,aAAa6D,GAAKxD,MAAMwD,GAAK3E,QAC/BtB,KAAKqC,YAAYC,EAAGC,YAAY0D,GAAKxD,IAAAA,CAAAA,KACtC1C,MAAMyC,gBAAgByD,GAAKxD,IAAAA,GAEb,YAAdwD,GAAKxD,SACLzC,KAAKsB,QAAQ2E,GAAK3E;AAAAA,IAE1B;AACA4E,WAAOC,eAAenG,MAAM,cAAc,EACtC,IAAA,QAAIsB;AACA,aAAOyE,GAAOD;AAAAA,IAClB,GACAM,UAAAA,MAAU,CAAA,GAGdpG,KAAKJ,cAAaF,YAAAA,EAAcmC,KAAKkE;AAAAA,EACzC;AAAA,EAEA,YAAYtD,IAAAA;AACR,QAAIH,EAAG+D,UAAU5D,EAAAA,EAAO,QAAA;AACxB,UAAM6D,KAAOtG,KAAKuG,SAAS9D,EAAAA,GAErB+D,KAASF,MAAAA,gBAAAA,GAAMG;AACrB,WAAOD;AAAAA,EACX;AAAA,EAEA,SAAS/D,IAAAA;;AACL,UAAMiE,KAAgBpE,EAAGqE,MAAMC,iBAAiB5G,KAAK6G,OAAAA;AAErD,cADeH,KAAAA,MAAAA,gBAAAA,GAAeI,WAAfJ,mBAA+BK,UAAS,CAAA,GAC1CtE,EAAAA;AAAAA,EACjB;AAAA,EAEA,WAAAlC;AACI,QAAIP,KAAKC,WACL;AAEJD,SAAKC,aAAAA;AAEL,UAAM4G,KAAU7G,KAAK6G,QAAQG,YAAAA;AACP1E,MAAGqE,MAAMC,iBAAiBC,EAAAA,KAKhDI,EAAU3E,EAAG4E,mBAAmBL,IAAS7G,IAAAA,CAAAA,EAAOmH,MAAMnH,IAAAA;AAAAA,EAC1D;AAAA,EAEA,YAAAK;AAEI,WAAA,CADaN,MAAMmC,aAAazC,CAAAA;AAAAA,EAMpC;AAAA,EAEA,SAASe,IAAAA;;AACL,QAAIR,KAAKJ,cAAaF,YAAAA,EAAc0H,IAChC;AAGJpH,SAAKJ,cAAaF,YAAAA,EAAc0H,MAAM5G,IACtCR,KAAKC,aAAAA;AAEL,UAAMoH,KAAQ,IAAI5B,YAAY,YAAY,EACtCC,SAAAA,OACAE,QAAQ,EAAE0B,MAAM,EAAA,EAAA,CAAA;AAEpBtH,SAAKwF,cAAc6B,EAAAA;AACnB,UAAME,MAAWjF,aAAGqE,MAAMC,iBAAiB5G,KAAK6G,OAAAA,MAA/BvE,mBAAyCwE,WAAzCxE,mBAAyDiF;AACtEA,IAAAA,MACAA,GAAQnC,KAAK5E,EAAAA;AAAAA,EAErB;AAAA,EAEA,MAAMiC,OAAkBU,IAAAA;AACpB,UAAMiE,KAAMpH,KAAKJ,cAAaF,YAAAA,EAAc0H;AAC5C,WAAO9E,EAAGiD,MAAM6B,IAAK3E,IAAAA,GAASU,EAAAA;AAAAA,EAClC;AAAA;AA3aAnD,cAAwBN,eAAoCA;AAFzD,IAAME,eAAN;AA2bP,MAAMoF,UAAgBnF,YAAAA;AAAAA,EAKlB,cAAA2H;AACIzH,UAAAA;AAAAA,EACJ;AAAA,EAEA,oBAAA0H;AACIzH,SAAK0H,MAAMC,UAAU;AAAA,EACzB;AAAA,EAEA,IAAA,YAAgBnH;;AACRR,SAAK4H,UACL5H,UAAK6H,SAAL7H,mBAAWS,aAAaT,KAAK4H,QAAQpH,MAErCT,MAAMW,cAAcF;AAAAA,EAE5B;AAAA,EAEA,IAAA,UAAcA,IAAAA;;AACNR,SAAK4H,UACL5H,UAAK6H,SAAL7H,mBAAWW,WAAWX,KAAK4H,QAAQpH,MAEnCT,MAAMa,YAAYJ;AAAAA,EAE1B;AAAA,EAEA,QAAwBO,IAAAA;;AAChBf,SAAK4H,UACL5H,UAAK6H,SAAL7H,mBAAWiB,SAASjB,KAAK4H,QAAQ7G,MAEjChB,MAAMiB,QAAQD,EAAAA;AAAAA,EAEtB;AAAA,EAEA,YAA4BA,IAAAA;;AACxB,WAAIf,KAAK4H,WACL5H,UAAK6H,SAAL7H,mBAAWkB,aAAalB,KAAK4H,QAAQ7G,KAC9BA,MAEAhB,MAAMoB,YAAYJ,EAAAA;AAAAA,EAEjC;AAAA,EAIA,OAAA,WAAkBc,IAAAA;AACd,cAAKA,MAAMA,GAAGiG,aAAaC,KAAKC,iBAEC,eAA7BnG,GAAGgF,QAAQG,YAAAA;AAAAA,EAGnB;AAAA,EAEA,OAAA,cAAqBnF,IAAAA;AACjB,WAAA,EAAA,CAAImD,EAAQiD,WAAWpG,EAAAA,KAAAA,CAAOA,GAAGK,aAAa,KAAA;AAAA,EAElD;AAAA,EAEA,MAAML,IAAAA;AACF7B,SAAK6H,OAAOhG,IACZ7B,KAAK4H,SAAS5H,KAAKmC,aAAa,KAAA,KAAU;AAAA,EAC9C;AAAA,EAEA,SAASN,IAAAA;AACL,UAAMY,KAAOzC,KAAKmC,aAAa,MAAA,KAAW,WACpCmB,KAAQQ,SAASoE,cAAc,YAAYzF,EAAAA,QAAAA,GAC3Cc,KAAMO,SAASoE,cAAc,YAAYzF,EAAAA,MAAAA;AAE/CZ,IAAAA,GAAG2B,MAAMf,IAAM,EAAEa,OAAAA,IAAOC,KAAAA,GAAAA,CAAAA,GACxBvD,KAAKmI,YAAY7E,IAAOC,EAAAA;AAAAA,EAC5B;AAAA;AAGJ,MAAMjB,IAAK,EACP8F,MAAA,OACI9F,EAAG+F,WAAAA,GACI/F,IAEX,aAAA+F;AACI/F,IAAGgG,oBAAoB,YAAYtD,CAAAA;AACvC,GACA,MAAMoC,IAA0B3E,OAAkBU,IAAAA;AAE9C,MAAA,CAAKiE,GACD,QAAO,IAAImB,MAAM,UAAA;AAGrB,MAAA,CAAK9F,GAAM,QAAO2E;AAElB,MAAyB,cAAA,OAAdA,GAAI3E,EAAAA,EACX,QAAO2E,GAAI3E,EAAAA,EAAM2C,KAAKgC,IAAAA,GAAQjE,EAAAA;AAGlC,QAAMqF,KAAK/F,GAAKM,MAAM,GAAA;AACtB,MAAI0F,KAASrB,IAAKsB,KAAOF,GAAGG,IAAAA,KAAS,IAAIC,KAAM;AAE/C,SAAOA,KAAMJ,GAAG7D,MAAAA,KAAS;AACrB,QAAA,CAAIuB,OAAOhB,UAAU2D,eAAezD,KAAKqD,IAAQG,EAAAA,EAG7C,QAAO,IAAIL,MAAM,eAAA;AAFjBE,IAAAA,KAASA,GAAOG,EAAAA;AAAAA,EAIxB;AAEA,SAAoB,MAAhBzF,GAAKC,SACEqF,GAAOC,EAAAA,KAEdD,GAAOC,EAAAA,IAAQvF,GAAK,CAAA,GACb;AAGf,GACA2F,YAAWrG,CAAAA,OACFA,MAGLA,KAAOA,GAAKsG,QAAQ,UAAU,SAAUrG,IAAAA;AACpC,SAAO,MAAMA,GAAEsE,YAAAA;AACnB,CAAA,GACO1H,IAAamD,MALT,IAOfkE,OAAO,EACHqC,UArkBC9C,OAAOhB,UAAU2D,eAAezD,KAAK6D,QAAQ,qBAAA,KAC9C/C,OAAOC,eAAe8C,QAAQ,uBAAuB,EACjD3H,OAAO,EACH0H,SAAS,CAAA,EAAA,GAEb5C,iBACA8C,YAAAA,MAAY,CAAA,GAGZD,OAAoC,qBA4jBZD,SAC5BpC,kBAAiBC,CAAAA,QACbA,KAAUA,GAAQG,YAAAA,GACX1E,EAAGqE,MAAMqC,QAAQnC,EAAAA,IAE5B,gBAAgBA,IAAAA;;AACZ,QAAMH,KAAgBpE,EAAGqE,MAAMC,iBAAiBC,EAAAA,GAC1CE,OAASL,KAAAA,MAAAA,gBAAAA,GAAeI,WAAfJ,mBAA+BK,UAAS,CAAA,GACjDoC,KAAQ,CAAA;AACd,aAAWC,MAAOrC,GACdoC,CAAAA,GAAMxF,KAAKrB,EAAG+G,YAAYD,EAAAA,CAAAA;AAE9B,SAAOD;AACX,GACA,SAAS1G,IAAc6G,IAAAA;AACnB7G,EAAAA,KAAOA,GAAKuE,YAAAA;AACZ,QAAMN,KAAgBpE,EAAGqE,MAAMC,iBAAiBnE,EAAAA;AAC5CiE,EAAAA,MACAA,GAAc6C,QAAQ7C,GAAc6C,SAAS,IAC7C7C,GAAc6C,MAAM5F,KAAK2F,EAAAA,KAEzBhH,EAAGqE,MAAMqC,QAAQvG,EAAAA,IAAQ,EACrB8G,OAAO,CAACD,EAAAA,EAAAA;AAGpB,EAAA,GAEJE,kBAAiBhJ,CAAAA,OAAAA;;AACNiJ,WAAgB,EACnB1C,OAAO,EACH2C,WAAW,EACPC,MAAMC,OAAAA,GAEVtI,OAAO,EACHqI,QAAOnJ,WAAAA,GAAUuG,UAAVvG,mBAAiBc,UAAjBd,mBAAwBmJ,SAAQ,CAACC,QAAQC,QAAQhH,KAAAA,EAAAA,EAAAA,GAGhEiH,SAAS,EACLrI,aAAa7B,aAAa6B,aAC1B,UAAU0B,IAAAA;AACN,UAAM4G,KAAO/J,KAAK+J,KAAAA;AAClB,QAAoB,MAAhB5G,GAAKC,OACL,QAAO2G,MAAAA,gBAAAA,GAAMzI;AAETyI,IAAAA,OACAA,GAAKzI,QAAQ6B,GAAK,CAAA;AAAA,EAG9B,GACA,MAAMV,OAAkBU,IAAAA;AACpB,UAAM4G,KAAO/J,KAAK+J,KAAAA;AAClB,WAAKA,KACEzH,EAAGiD,MAAMwE,IAAMtH,IAAAA,GAASU,EAAAA,IADb;AAAA,EAEtB,GACA,OAAA4G;;AACI,YAAO/J,MAAAA,KAAKgK,QAALhK,gBAAAA,IAAUwE;AAAAA,EACrB,EAAA,GAEJyF,MAAA,OACW,CAAA,GAAA,CAAA;AAAA,GAMnB,kBAAkBnD,IAAAA;;AAEd,QAAMxB,MAAawB,WAAAA,GAAeC,UAAfD,mBAAsBxF,UAAtBwF,mBAA6B6C;AAQhD,SANM7C,GAAeoD,WAChBpD,GAAeoD,SAAS,CAAA,IAG5BpD,GAAeoD,OAAOvG,KAAKrB,EAAGkH,iBAAiB1C,EAAAA,CAAAA,GAEzCxB;AAEX,GACA,mBAAmBuB,IAAiBsD,IAAsBrD,IAAAA;;AAEtD,QAAMxB,KAAYhD,EAAG8H,kBAAkBtD,EAAAA;AAEvC,OAAKxE,OAAGqE,MAAMqC,QAAQnC,QAAjBvE,mBAA2BwE,OAsB5BxE,GAAGqE,MAAMqC,QAAQnC,EAAAA,EAASC,SAASA;AAAAA,OAtBC;AAAA,IACpC,MAAMuD,WAAiBzK,aAAAA;AAAAA,MACnB,cAAA4H;AACIzH,cAAM,EAAEuF,WAAAA,GAAAA,CAAAA;AAAAA,MACZ;AAAA,MAEA,WAAA,qBAAWgF;AACP,eAAOhI,EAAGqE,MAAM4D,gBAAgB1D,EAAAA;AAAAA,MACpC;AAAA,IAAA;AAIJvE,MAAGqE,MAAMqC,QAAQnC,EAAAA,IAAW,EACxB2D,KAAKH,IACLI,KAAKN,IACLrD,QAAAA,IACAyC,SAAOjH,OAAGqE,MAAMqC,QAAQnC,EAAAA,MAAjBvE,mBAA2BiH,UAAS,CAAA,EAAA,GAG/CjH,EAAGgG,oBAAoBzB,IAASwD,EAAAA;AAAAA,EAEpC;AAGJ,GAEA,oBAAoBxD,IAAiB6D,IAAAA;AACjC,MAAA;AACIC,mBAAeC,OAAO/D,IAAS6D,EAAAA;AAAAA,EACnC,SAAS5H,IAAAA;AAAAA,EAET;AACJ,GAEA,cAAc+D,IAAiBrG,IAAAA;AAC3B,MAAA,CAAK0F,OAAOhB,UAAU2D,eAAezD,KAAK5E,IAAG,SAAA,EAAY,QAAA;AACzD,QAAMkG,KAAgBpE,EAAGqE,MAAMC,iBAAiBC,EAAAA,GAC1CC,KAASJ,MAAAA,gBAAAA,GAAeI;AAC9B,SAAA,CAAA,CAAKA,MACEtG,GAAEqK,YAAY/D,GAAO+D;AAChC,GAEA,sBAAsBhE,IAAAA;AACJ/C,WAASgH,iBAAiBjE,EAAAA,EAClCkE,QAASC,CAAAA,OAAAA;AACXA,IAAAA,GAAKxF,cAAc,IAAIC,YAAY,kBAAA,CAAA;AAAA,EAAA,CAAA;AAE3C,GAEA,OAAOjF,IAAcyK,KAAAA,MAAiB;AAClC,QAAMpE,KAAUvE,EAAGwG,WAAWtI,GAAEiC,IAAAA;AAIhC,MAAA,CAAKoE,GAED,QAAOrG;AAGX,QAAMkG,KAAgBpE,EAAGqE,MAAMC,iBAAiBC,EAAAA;AAEhD,MAAIH,MAAiBA,GAAc+D,IAS/B,SARIQ,MAAS3I,EAAG4I,cAAcrE,IAASrG,EAAAA,OAEnC8B,EAAG6I,mBAAmBtE,IAASH,GAAc+D,KAAKjK,EAAAA,GAClD8B,EAAG8I,sBAAsBvE,EAAAA,IAKtBH,GAAc+D;AAGzB,QAAMY,KAAmB/I,EAAG4E,mBAAmBL,EAAAA;AAI/C,SAFAvE,EAAG6I,mBAAmBtE,IAASwE,IAAkB7K,EAAAA,GAE1C6K;AACX,GACA,eAAehH,IAAAA;AACX,QAAMhB,KAAM,CAAA;AAIZ,SAHA6C,OAAOoF,KAAKjH,EAAAA,EAAU0G,QAAStI,CAAAA,OAAAA;AAC3BY,IAAAA,GAAIZ,EAAAA,IAAQ,MAAM8I,EAAE,YAAY,EAAE9I,MAAAA,GAAAA,CAAAA;AAAAA,EAAAA,CAAAA,GAE/BY;AACX,GACA,gBAAgBxB,IAAkBwC,IAAAA;AAChB6B,SAAOoF,KAAKjH,EAAAA,EACpB0G,QAAStI,CAAAA,OAAAA;AACX,UAAMtC,KAAO0B,GAAG2J,cAAc,kBAAkB/I,EAAAA,IAAAA;AAC5CtC,IAAAA,OACA6E,EAAQE,UAAUuG,SAASrG,KAAKjF,IAAM0B,EAAAA,GACtCA,GAAGgC,iBAAiBpB,IAAM4B,GAAS5B,EAAAA,CAAAA;AAAAA,EAAAA,CAAAA;AAI/C,GACA,mBAAmBoE,IAAiBhF,IAAAA;AAEhC,QAAMwC,KAAWxC,KAAKA,GAAGyC,cAAAA,IAAkB,EAAEC,SAAS,CAAA,EAAA;AA8DtD,SA5DyB,EACrB,QAAAmH;AACI,UAAMC,KAAQC,EAAAA,GACRC,KAAkBC,EAAgB,IAAA,GAClCC,KAAaD,EAAgC,IAAA,GAC7CE,KAAY5E,EAAyB,KACrC6E,KAAWH,EAAgBjK,KAAKS,EAAG4J,eAAe7H,EAAAA,IAAY8H,EAAAA,CAAAA,GAC9D1D,KAASqD,EAA6B,IAAA;AA0B5C,WAxBAM,EAAU,MAAA;AACFP,MAAAA,GAAgBvK,SAASyK,GAAWzK,SAASyK,GAAWzK,MAAM+K,aAC9DN,GAAWzK,MAAM+K,SAASR,GAAgBvK,KAAAA,GAE1CO,MAAMS,EAAGgK,gBAAgBzK,IAAIwC,EAAAA,GAG7B0H,GAAWzK,MAAMiL,iBAAiB,mBAAmB,MAAA;AAC7CR,QAAAA,GAAWzK,UACX0K,GAAU1K,QAAQgB,EAAGkK,YAAYT,GAAWzK,KAAAA;AAAAA,MAAAA,CAAAA,GAKpDyK,GAAWzK,MAAMiL,iBAAiB,oBAAoB,MAAA;AAClD9D,QAAAA,GAAOnH,QAAQ;AAAA,MAAA,CAAA,GAGnByK,GAAWzK,MAAMiE,MAAM,SAAS,gBAAgBwG,GAAWzK,MAAMA,KAAAA;AAAAA,IAAAA,CAAAA,GAMlE,MAAA;AAWH,UATIO,OACAkK,GAAWzK,QAAQO,IACnBmK,GAAU1K,QAAQgB,EAAGkK,YAAY3K,EAAAA,IAGhC4G,GAAOnH,UACPmH,GAAenH,QAAQgB,EAAGmK,gBAAgB5F,EAAAA,IAAAA,CAG1C4B,GAAOnH,MAER,QAAO;AAGX,YAAMoL,KAAWnB,EAAE9C,GAAOnH,OAAO,EAAA,GAAKqK,IAAAA,GAAUK,GAAU1K,OAAO8F,KAAKyE,GAAAA,GAAmBI,GAAS3K,SAAS,CAAA,CAAA;AAM3G,aAJYO,KAAK6K,KAAWnB,EAAE1E,IAAS,EAAEO,KAAK2E,IAAYtM,CAACA,CAAAA,GAAgB,GAAA,GAAM,CAC7EiN,EAAAA,CAAAA;AAAAA,IAAAA;AAAAA,EAKZ,EAAA;AAIR,GACA,YAAY7K,IAAAA;AAER,QAAM8J,KAAQ,CAAA,GAER7F,KAAajE,GAAGiE;AAEtB,WAASE,KAAI,GAAGA,KAAIF,GAAW1C,QAAQ4C,MAAK;AACxC,UAAMC,KAAOH,GAAWE,EAAAA;AAEpBC,IAAAA,GAAKxD,SAASnD,KAAcgD,EAAG+D,UAAUJ,GAAKxD,IAAAA,MAClDkJ,GAAM1F,GAAKxD,IAAAA,IAAQwD,GAAK3E;AAAAA,EAC5B;AAMA,SAJiB,SAAbO,GAAGP,UACHqK,GAAMrK,QAAQO,GAAGP,QAGdqK;AACX,GACAtF,WAAU5D,CAAAA,OAC6B,MAA5BA,GAAKkK,QAAQ,SAAA,GAExBtD,aAAY5G,CAAAA,OACDA,GAAKsG,QAAQ,YAAa6D,CAAAA,OAAM,MAAMA,GAAE5F,YAAAA,CAAAA,GAEnDzE,aAAYE,CAAAA,OACJH,EAAG+D,UAAU5D,EAAAA,IAAcA,KACxBA,GAAKsG,QAAQ,aAAa,CAACjG,IAAG+J,OAAOA,GAAGC,YAAAA,CAAAA,GAEnD,cAAcrK,IAAc6G,IAAAA;AACxBhH,IAAGqE,MAAMoG,SAAStK,IAAM6G,EAAAA;AAC5B,GACA,iBAAiB7G;AACb,QAAMiE,KAAgBpE,EAAGqE,MAAMC,iBAAiBnE,EAAAA;AAEhD,WADciE,MAAAA,gBAAAA,GAAe6C,UAAS,CAAA,GACzBpE,MAAM,CAAA;AACvB,GACA,gBAAgB0B,IAAAA;AACZ,QAAMH,KAAgBpE,EAAGqE,MAAMC,iBAAiBC,EAAAA;AAChD,MAAA,EAAKH,MAAAA,gBAAAA,GAAeI,QAChB,QAAO;AAEX,MAAIA,KAASkG,EAAM,IAAItG,GAAcI,MAAAA;AACrC,QAAMyC,KAAQjH,EAAG2K,iBAAiBpG,EAAAA;AAClC,MAAIyC;AACJ,SAAOA,KAASC,GAAM5E,MAAAA,KAAS;AAC3B,UAAMiE,KAAMU,GAAOxC,EAAAA;AACf8B,IAAAA,OACA9B,KAAS8B;AAAAA,EAEjB;AAEA,SAAO9B;AACX,EAAA,GAGJoG,IAAe5K,EAAG8F,KAAAA;"}