agile-core 3.0.0
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/LICENSE +21 -0
- package/README.md +353 -0
- package/assets/aui-colored.svg +56 -0
- package/assets/aui.svg +35 -0
- package/dist/core.cjs.js +1 -0
- package/dist/core.cjs.js.map +1 -0
- package/dist/core.d.ts +93 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.es.js +374 -0
- package/dist/core.es.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +6 -0
- package/dist/index.es.js.map +1 -0
- package/dist/plugin.cjs.js +1 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/plugin.d.ts +10 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.es.js +61 -0
- package/dist/plugin.es.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +65 -0
- package/types/aui-global.d.ts +80 -0
- package/types/aui-vue-global.d.ts +36 -0
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { Component as ComponentType } from 'vue';
|
|
2
|
+
export { type Component as TraditionComponent } from './types';
|
|
3
|
+
declare const shadowSymbol: unique symbol;
|
|
4
|
+
export type HookHandler = (c: any) => void | any;
|
|
5
|
+
type AUI_COMPONENT_OPTION = {
|
|
6
|
+
valueType?: any;
|
|
7
|
+
};
|
|
8
|
+
export type Component = ComponentType;
|
|
9
|
+
type AUI_SLOT_CACHE = {
|
|
10
|
+
start: Comment;
|
|
11
|
+
end: Comment;
|
|
12
|
+
};
|
|
13
|
+
type SlotElement = {
|
|
14
|
+
default: Node[];
|
|
15
|
+
[key: string]: Node[];
|
|
16
|
+
};
|
|
17
|
+
export declare class AuiComponent extends HTMLElement {
|
|
18
|
+
__hasVue__: boolean;
|
|
19
|
+
private static readonly shadowSymbol;
|
|
20
|
+
private [shadowSymbol];
|
|
21
|
+
constructor(options?: AUI_COMPONENT_OPTION);
|
|
22
|
+
connectedCallback(): void;
|
|
23
|
+
set textContent(v: string);
|
|
24
|
+
get textContent(): string;
|
|
25
|
+
set innerHTML(v: string);
|
|
26
|
+
get innerHTML(): string;
|
|
27
|
+
set innerText(v: string);
|
|
28
|
+
prepend<T extends Node>(node: T): void;
|
|
29
|
+
appendChild<T extends Node>(node: T): T;
|
|
30
|
+
set value(v: string | null);
|
|
31
|
+
get value(): any;
|
|
32
|
+
hasAttribute(qualifiedName: string): boolean;
|
|
33
|
+
setAttribute(qualifiedName: string, value: string): void;
|
|
34
|
+
getAttribute(qualifiedName: string): string | null;
|
|
35
|
+
removeAttribute(qualifiedName: string): void;
|
|
36
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
37
|
+
static $anyToArray(s: any): any;
|
|
38
|
+
$textContent(name: string, ...args: any): string;
|
|
39
|
+
$innerHTML(name: string, ...args: any): string;
|
|
40
|
+
$prepend<T extends Node>(name: string, node: T): void;
|
|
41
|
+
$appendChild<T extends Node>(name: string, node: T): T;
|
|
42
|
+
$childNodes(name?: string): NodeListOf<ChildNode>;
|
|
43
|
+
$children(name?: string): HTMLCollection;
|
|
44
|
+
$replaceChildren(name: string, children: any[]): void;
|
|
45
|
+
$slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined;
|
|
46
|
+
$needHook(need?: boolean): boolean;
|
|
47
|
+
$ignoreLog(name: string): void;
|
|
48
|
+
$moveChildren(el?: AuiComponent): SlotElement;
|
|
49
|
+
$isArrayValue(): boolean;
|
|
50
|
+
$attrChange(name: string): void;
|
|
51
|
+
$initAttrs(): void;
|
|
52
|
+
$isShowProp(name: string): boolean;
|
|
53
|
+
$getProp(name: string): any;
|
|
54
|
+
$initVue(): void;
|
|
55
|
+
$needInit(): boolean;
|
|
56
|
+
$bindVue(v: Component): void;
|
|
57
|
+
$call(name?: string, ...args: any[]): any;
|
|
58
|
+
}
|
|
59
|
+
type TypeAuiComponent = typeof AuiComponent;
|
|
60
|
+
type AUI_VUE_DEFINE_CACHE = {
|
|
61
|
+
aui?: TypeAuiComponent;
|
|
62
|
+
vue?: Component;
|
|
63
|
+
origin?: Component;
|
|
64
|
+
hooks?: HookHandler[];
|
|
65
|
+
};
|
|
66
|
+
declare const _default: {
|
|
67
|
+
init(): /*elided*/ any;
|
|
68
|
+
defineSlot(): void;
|
|
69
|
+
$call(ref: Record<string, any>, name?: string, ...args: any[]): any;
|
|
70
|
+
formatName(name: string | undefined): string;
|
|
71
|
+
cache: {
|
|
72
|
+
defined: Record<string, AUI_VUE_DEFINE_CACHE>;
|
|
73
|
+
getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined;
|
|
74
|
+
getAuiPropNames(tagName: string): string[];
|
|
75
|
+
addHooks(name: string, handle: HookHandler): void;
|
|
76
|
+
};
|
|
77
|
+
createExtendComp(v: Component): Component;
|
|
78
|
+
patchDefaultProps(origin: Component): any;
|
|
79
|
+
defineAuiComponent(tagName: string, component: Component, origin: Component): void;
|
|
80
|
+
define(v: Component, force?: boolean): Component;
|
|
81
|
+
createTempSlot(children: SlotElement): any;
|
|
82
|
+
replaceTempSlot(el: AuiComponent, children: SlotElement): void;
|
|
83
|
+
createVueComponent(tagName: string, el?: AuiComponent): Component;
|
|
84
|
+
getAuiAttrs(el: AuiComponent): Record<string, any>;
|
|
85
|
+
isVueAttr(name: string): boolean;
|
|
86
|
+
auiAttrName(name: string): string;
|
|
87
|
+
vueAttrName(name: string): string;
|
|
88
|
+
hookStructure(name: string, handle: HookHandler): void;
|
|
89
|
+
getHookStructure(name: string): HookHandler[];
|
|
90
|
+
formatStructure(tagName: string): Component | null;
|
|
91
|
+
};
|
|
92
|
+
export default _default;
|
|
93
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/core.es.js
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
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) {
|
|
6
|
+
constructor(e2) {
|
|
7
|
+
super(), this.__hasVue__ = false, this[u] = { needHook: false, slot: {} }, this[_AuiComponent.shadowSymbol].options = e2 || {}, this.$initAttrs();
|
|
8
|
+
}
|
|
9
|
+
connectedCallback() {
|
|
10
|
+
this.$needInit() && (this.$needHook(true), this.$initVue());
|
|
11
|
+
}
|
|
12
|
+
set textContent(e2) {
|
|
13
|
+
this.$needHook() ? this.$textContent(e2) : super.textContent = e2;
|
|
14
|
+
}
|
|
15
|
+
get textContent() {
|
|
16
|
+
return this.$needHook() ? this.$textContent("default") : super.textContent || "";
|
|
17
|
+
}
|
|
18
|
+
set innerHTML(e2) {
|
|
19
|
+
this.$needHook() ? this.$innerHTML(e2) : super.innerHTML = e2;
|
|
20
|
+
}
|
|
21
|
+
get innerHTML() {
|
|
22
|
+
return this.$needHook() ? this.$innerHTML("default") : super.innerHTML || "";
|
|
23
|
+
}
|
|
24
|
+
set innerText(e2) {
|
|
25
|
+
this.$ignoreLog("innerText"), super.innerText = e2;
|
|
26
|
+
}
|
|
27
|
+
prepend(e2) {
|
|
28
|
+
if (!this.$needHook()) return super.prepend(e2);
|
|
29
|
+
this.$prepend("default", e2);
|
|
30
|
+
}
|
|
31
|
+
appendChild(e2) {
|
|
32
|
+
return this.$needHook() ? this.$appendChild("default", e2) : super.appendChild(e2);
|
|
33
|
+
}
|
|
34
|
+
set value(e2) {
|
|
35
|
+
let t2 = e2;
|
|
36
|
+
const n2 = this[_AuiComponent.shadowSymbol].value;
|
|
37
|
+
let r2;
|
|
38
|
+
this.$isArrayValue() ? (t2 = _AuiComponent.$anyToArray(e2), r2 = JSON.stringify(t2)) : r2 = t2.toString(), n2 !== r2 && (this[_AuiComponent.shadowSymbol].value = r2, this[_AuiComponent.shadowSymbol].el && this.$attrChange("value"));
|
|
39
|
+
}
|
|
40
|
+
get value() {
|
|
41
|
+
const e2 = this[_AuiComponent.shadowSymbol].value;
|
|
42
|
+
return this.$isArrayValue() && "string" == typeof e2 ? JSON.parse(e2) : e2;
|
|
43
|
+
}
|
|
44
|
+
hasAttribute(e2) {
|
|
45
|
+
const t2 = this[_AuiComponent.shadowSymbol].el;
|
|
46
|
+
return t2 ? t2.hasAttribute(e2) : super.hasAttribute(e2);
|
|
47
|
+
}
|
|
48
|
+
setAttribute(e2, t2) {
|
|
49
|
+
t2 = t2.toString();
|
|
50
|
+
const n2 = this[_AuiComponent.shadowSymbol].el;
|
|
51
|
+
if (n2) {
|
|
52
|
+
if (n2.getAttribute(e2) === t2) return;
|
|
53
|
+
n2.setAttribute(e2, t2);
|
|
54
|
+
}
|
|
55
|
+
this.$isShowProp(m.vueAttrName(e2)) && super.setAttribute(e2, t2), "value" === e2 && n2 ? this.value = n2.getAttribute(e2) : this.$attrChange(e2);
|
|
56
|
+
}
|
|
57
|
+
getAttribute(e2) {
|
|
58
|
+
const t2 = this[_AuiComponent.shadowSymbol].el;
|
|
59
|
+
return t2 ? t2.getAttribute(e2) : super.getAttribute(e2);
|
|
60
|
+
}
|
|
61
|
+
removeAttribute(e2) {
|
|
62
|
+
const t2 = this[_AuiComponent.shadowSymbol].el;
|
|
63
|
+
t2 && t2.removeAttribute(e2);
|
|
64
|
+
this.$isShowProp(m.vueAttrName(e2)) && super.removeAttribute(e2), this.$attrChange(e2);
|
|
65
|
+
}
|
|
66
|
+
attributeChangedCallback(e2, t2, n2) {
|
|
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));
|
|
69
|
+
}
|
|
70
|
+
static $anyToArray(e2) {
|
|
71
|
+
let t2 = [];
|
|
72
|
+
if ("string" == typeof e2) {
|
|
73
|
+
try {
|
|
74
|
+
const t3 = JSON.parse(e2);
|
|
75
|
+
if (t3 instanceof Array) return t3;
|
|
76
|
+
} catch (e3) {
|
|
77
|
+
}
|
|
78
|
+
t2 = e2.split(",").filter((e3) => !!e3 && e3.trim());
|
|
79
|
+
} else e2 instanceof Array && (t2 = e2);
|
|
80
|
+
return t2;
|
|
81
|
+
}
|
|
82
|
+
$textContent(e2, ...t2) {
|
|
83
|
+
if (0 === t2.length) {
|
|
84
|
+
const t3 = [], { start: n2, end: r2 } = this.$slot(e2) || {};
|
|
85
|
+
let i2 = n2;
|
|
86
|
+
for (; i2 && (i2 = i2.nextSibling) && i2 !== r2; ) t3.push(i2.textContent);
|
|
87
|
+
return t3.join("");
|
|
88
|
+
}
|
|
89
|
+
return this.$replaceChildren(e2, [document.createTextNode(t2[0] || "")]), "";
|
|
90
|
+
}
|
|
91
|
+
$innerHTML(e2, ...t2) {
|
|
92
|
+
if (0 === t2.length) {
|
|
93
|
+
const t3 = [], { start: n2, end: r2 } = this.$slot(e2) || {};
|
|
94
|
+
let i2 = n2;
|
|
95
|
+
for (; i2 && (i2 = i2.nextSibling) && i2 !== r2; ) if (i2.outerHTML) t3.push(i2.outerHTML);
|
|
96
|
+
else {
|
|
97
|
+
let e3 = i2.textContent;
|
|
98
|
+
i2 instanceof Comment && (e3 = `<!--${e3}-->`), t3.push(e3);
|
|
99
|
+
}
|
|
100
|
+
return t3.join("");
|
|
101
|
+
}
|
|
102
|
+
{
|
|
103
|
+
const n2 = document.createElement("div");
|
|
104
|
+
n2.innerHTML = t2[0] || "";
|
|
105
|
+
const r2 = this.$moveChildren(n2);
|
|
106
|
+
this.$replaceChildren(e2, r2.default);
|
|
107
|
+
}
|
|
108
|
+
return "";
|
|
109
|
+
}
|
|
110
|
+
$prepend(e2, t2) {
|
|
111
|
+
var _a;
|
|
112
|
+
const { start: n2 } = this.$slot(e2) || {};
|
|
113
|
+
(_a = n2 == null ? void 0 : n2.parentNode) == null ? void 0 : _a.insertBefore(t2, n2.nextSibling);
|
|
114
|
+
}
|
|
115
|
+
$appendChild(e2, t2) {
|
|
116
|
+
var _a;
|
|
117
|
+
const { end: n2 } = this.$slot(e2) || {};
|
|
118
|
+
return (_a = n2 == null ? void 0 : n2.parentNode) == null ? void 0 : _a.insertBefore(t2, n2), t2;
|
|
119
|
+
}
|
|
120
|
+
$childNodes(e2) {
|
|
121
|
+
const t2 = [], { start: n2, end: r2 } = this.$slot(e2) || {};
|
|
122
|
+
let i2 = n2;
|
|
123
|
+
for (; i2 && (i2 = i2.nextSibling) && i2 !== r2; ) t2.push(i2);
|
|
124
|
+
return t2;
|
|
125
|
+
}
|
|
126
|
+
$children(e2) {
|
|
127
|
+
const t2 = [], { start: n2, end: r2 } = this.$slot(e2) || {};
|
|
128
|
+
let i2 = n2;
|
|
129
|
+
for (; i2 && (i2 = i2.nextSibling) && i2 !== r2; ) i2 instanceof HTMLElement && t2.push(i2);
|
|
130
|
+
return t2;
|
|
131
|
+
}
|
|
132
|
+
$replaceChildren(e2, t2) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
const { start: n2, end: r2 } = this.$slot(e2) || {};
|
|
135
|
+
let i2 = null;
|
|
136
|
+
for (; n2 && (i2 = n2.nextSibling) && i2 !== r2; ) (_a = i2.parentNode) == null ? void 0 : _a.removeChild(i2);
|
|
137
|
+
if (r2) for (; i2 = t2.shift(); ) (_b = r2.parentNode) == null ? void 0 : _b.insertBefore(i2, r2);
|
|
138
|
+
}
|
|
139
|
+
$slot(e2, t2) {
|
|
140
|
+
if (e2 = e2 || "default", !t2) return this[_AuiComponent.shadowSymbol].slot[e2];
|
|
141
|
+
this[_AuiComponent.shadowSymbol].slot[e2] = t2;
|
|
142
|
+
}
|
|
143
|
+
$needHook(e2) {
|
|
144
|
+
return "boolean" == typeof e2 && (this[_AuiComponent.shadowSymbol].needHook = e2), this[_AuiComponent.shadowSymbol].needHook;
|
|
145
|
+
}
|
|
146
|
+
$ignoreLog(e2) {
|
|
147
|
+
}
|
|
148
|
+
$moveChildren(e2) {
|
|
149
|
+
var _a;
|
|
150
|
+
const t2 = (e2 = e2 || this).childNodes, n2 = { default: [] };
|
|
151
|
+
for (; t2.length > 0; ) {
|
|
152
|
+
const r2 = t2[0];
|
|
153
|
+
if ((_a = r2.parentNode) == null ? void 0 : _a.removeChild(r2), p.$isForAuiSlot(r2)) {
|
|
154
|
+
const t3 = r2.getAttribute("for") || "default";
|
|
155
|
+
n2[t3] = n2[t3] || [];
|
|
156
|
+
const i2 = Array.prototype.slice.call(r2.childNodes);
|
|
157
|
+
p.prototype.$bind.call(r2, e2), n2[t3].push(...i2);
|
|
158
|
+
} else n2.default.push(r2);
|
|
159
|
+
}
|
|
160
|
+
return n2;
|
|
161
|
+
}
|
|
162
|
+
$isArrayValue() {
|
|
163
|
+
var _a;
|
|
164
|
+
return ((_a = this[_AuiComponent.shadowSymbol].options) == null ? void 0 : _a.valueType) === Array;
|
|
165
|
+
}
|
|
166
|
+
$attrChange(e2) {
|
|
167
|
+
if ("value" === e2) {
|
|
168
|
+
const e3 = this.value;
|
|
169
|
+
super.hasAttribute(c) ? this.$call("$emit", "update:value", e3) : super.dispatchEvent(new CustomEvent("input", { bubbles: true, composed: true }));
|
|
170
|
+
}
|
|
171
|
+
this.dispatchEvent(new CustomEvent("aui-attr-change", { bubbles: true, composed: true, detail: { attributeName: m.vueAttrName(e2) } }));
|
|
172
|
+
}
|
|
173
|
+
$initAttrs() {
|
|
174
|
+
const e2 = this.attributes, t2 = document.createElement("div");
|
|
175
|
+
for (let n2 = 0; n2 < e2.length; n2++) {
|
|
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);
|
|
178
|
+
}
|
|
179
|
+
Object.defineProperty(this, "attributes", { get value() {
|
|
180
|
+
return t2.attributes;
|
|
181
|
+
}, writable: false }), this[_AuiComponent.shadowSymbol].el = t2;
|
|
182
|
+
}
|
|
183
|
+
$isShowProp(e2) {
|
|
184
|
+
if (m.isVueAttr(e2)) return true;
|
|
185
|
+
const t2 = this.$getProp(e2), n2 = t2 == null ? void 0 : t2.show;
|
|
186
|
+
return n2;
|
|
187
|
+
}
|
|
188
|
+
$getProp(e2) {
|
|
189
|
+
var _a;
|
|
190
|
+
const t2 = m.cache.getAuiVueDefined(this.tagName);
|
|
191
|
+
return (((_a = t2 == null ? void 0 : t2.origin) == null ? void 0 : _a.props) || {})[e2];
|
|
192
|
+
}
|
|
193
|
+
$initVue() {
|
|
194
|
+
if (this.__hasVue__) return;
|
|
195
|
+
this.__hasVue__ = true;
|
|
196
|
+
const t2 = this.tagName.toLowerCase();
|
|
197
|
+
m.cache.getAuiVueDefined(t2) && e(m.createVueComponent(t2, this)).mount(this);
|
|
198
|
+
}
|
|
199
|
+
$needInit() {
|
|
200
|
+
return !super.hasAttribute(c);
|
|
201
|
+
}
|
|
202
|
+
$bindVue(e2) {
|
|
203
|
+
var _a, _b;
|
|
204
|
+
if (this[_AuiComponent.shadowSymbol].ref) return;
|
|
205
|
+
this[_AuiComponent.shadowSymbol].ref = e2, this.__hasVue__ = true;
|
|
206
|
+
const t2 = new CustomEvent("aui-init", { bubbles: false, detail: { code: 0 } });
|
|
207
|
+
this.dispatchEvent(t2);
|
|
208
|
+
const n2 = (_b = (_a = m.cache.getAuiVueDefined(this.tagName)) == null ? void 0 : _a.origin) == null ? void 0 : _b.auiInit;
|
|
209
|
+
n2 && n2.call(e2);
|
|
210
|
+
}
|
|
211
|
+
$call(e2, ...t2) {
|
|
212
|
+
const n2 = this[_AuiComponent.shadowSymbol].ref;
|
|
213
|
+
return m.$call(n2, e2, ...t2);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
_AuiComponent.shadowSymbol = d;
|
|
217
|
+
let AuiComponent = _AuiComponent;
|
|
218
|
+
class p extends HTMLElement {
|
|
219
|
+
constructor() {
|
|
220
|
+
super();
|
|
221
|
+
}
|
|
222
|
+
connectedCallback() {
|
|
223
|
+
this.style.display = "none";
|
|
224
|
+
}
|
|
225
|
+
set textContent(e2) {
|
|
226
|
+
var _a;
|
|
227
|
+
this._name_ ? (_a = this._el_) == null ? void 0 : _a.$textContent(this._name_, e2) : super.textContent = e2;
|
|
228
|
+
}
|
|
229
|
+
set innerHTML(e2) {
|
|
230
|
+
var _a;
|
|
231
|
+
this._name_ ? (_a = this._el_) == null ? void 0 : _a.$innerHTML(this._name_, e2) : super.innerHTML = e2;
|
|
232
|
+
}
|
|
233
|
+
prepend(e2) {
|
|
234
|
+
var _a;
|
|
235
|
+
this._name_ ? (_a = this._el_) == null ? void 0 : _a.$prepend(this._name_, e2) : super.prepend(e2);
|
|
236
|
+
}
|
|
237
|
+
appendChild(e2) {
|
|
238
|
+
var _a;
|
|
239
|
+
return this._name_ ? ((_a = this._el_) == null ? void 0 : _a.$appendChild(this._name_, e2), e2) : super.appendChild(e2);
|
|
240
|
+
}
|
|
241
|
+
static $isAuiSlot(e2) {
|
|
242
|
+
return !(!e2 || e2.nodeType !== Node.ELEMENT_NODE) && "aui-slot" === e2.tagName.toLowerCase();
|
|
243
|
+
}
|
|
244
|
+
static $isForAuiSlot(e2) {
|
|
245
|
+
return !(!p.$isAuiSlot(e2) || !e2.hasAttribute("for"));
|
|
246
|
+
}
|
|
247
|
+
$bind(e2) {
|
|
248
|
+
this._el_ = e2, this._name_ = this.getAttribute("for") || "default";
|
|
249
|
+
}
|
|
250
|
+
$replace(e2) {
|
|
251
|
+
const t2 = this.getAttribute("name") || "default", n2 = document.createComment(`aui-slot-${t2}-start`), r2 = document.createComment(`aui-slot-${t2}-end`);
|
|
252
|
+
e2.$slot(t2, { start: n2, end: r2 }), this.replaceWith(n2, r2);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
const m = { init: () => (m.defineSlot(), m), defineSlot() {
|
|
256
|
+
try {
|
|
257
|
+
customElements.define("aui-slot", p);
|
|
258
|
+
} catch (e2) {
|
|
259
|
+
}
|
|
260
|
+
}, $call(e2, t2, ...n2) {
|
|
261
|
+
if (!e2) return new Error("not init");
|
|
262
|
+
if (!t2) return e2;
|
|
263
|
+
if ("function" == typeof e2[t2]) return e2[t2].call(e2, ...n2);
|
|
264
|
+
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];
|
|
269
|
+
}
|
|
270
|
+
return 0 === n2.length ? i2[s2] : (i2[s2] = n2[0], null);
|
|
271
|
+
}, formatName: (e2) => e2 ? (e2 = e2.replace(/[A-Z]/g, function(e3) {
|
|
272
|
+
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) {
|
|
274
|
+
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));
|
|
277
|
+
return r2;
|
|
278
|
+
}, addHooks(e2, t2) {
|
|
279
|
+
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] };
|
|
282
|
+
} }, createExtendComp: (e2) => {
|
|
283
|
+
var _a, _b;
|
|
284
|
+
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) {
|
|
285
|
+
const t2 = this.$aui();
|
|
286
|
+
if (0 === e3.length) return t2 == null ? void 0 : t2.value;
|
|
287
|
+
t2 && (t2.value = e3[0]);
|
|
288
|
+
}, $call(e3, ...t2) {
|
|
289
|
+
const n2 = this.$aui();
|
|
290
|
+
return n2 ? m.$call(n2, e3, ...t2) : null;
|
|
291
|
+
}, $aui() {
|
|
292
|
+
var _a2;
|
|
293
|
+
return (_a2 = this.$el) == null ? void 0 : _a2.parentNode;
|
|
294
|
+
} }, data: () => ({}) });
|
|
295
|
+
}, patchDefaultProps(e2) {
|
|
296
|
+
var _a, _b;
|
|
297
|
+
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;
|
|
299
|
+
}, defineAuiComponent(e2, t2, n2) {
|
|
300
|
+
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;
|
|
303
|
+
else {
|
|
304
|
+
class i2 extends AuiComponent {
|
|
305
|
+
constructor() {
|
|
306
|
+
super({ valueType: r2 });
|
|
307
|
+
}
|
|
308
|
+
static get observedAttributes() {
|
|
309
|
+
return m.cache.getAuiPropNames(e2);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
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);
|
|
313
|
+
}
|
|
314
|
+
}, define(e2, t2 = false) {
|
|
315
|
+
const n2 = m.formatName(e2.name);
|
|
316
|
+
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;
|
|
321
|
+
}, createTempSlot(e2) {
|
|
322
|
+
const t2 = {};
|
|
323
|
+
return Object.keys(e2).forEach((e3) => {
|
|
324
|
+
t2[e3] = () => o("aui-slot", { name: e3 });
|
|
325
|
+
}), t2;
|
|
326
|
+
}, replaceTempSlot(e2, t2) {
|
|
327
|
+
Object.keys(t2).forEach((n2) => {
|
|
328
|
+
const r2 = e2.querySelector(`aui-slot[name="${n2}"]`);
|
|
329
|
+
r2 && (p.prototype.$replace.call(r2, e2), e2.$replaceChildren(n2, t2[n2]));
|
|
330
|
+
});
|
|
331
|
+
}, createVueComponent(e2, t2) {
|
|
332
|
+
const a2 = t2 ? t2.$moveChildren() : { default: [] };
|
|
333
|
+
return { setup() {
|
|
334
|
+
const u2 = n(), l2 = r(null), h2 = r(null), d2 = r({}), p2 = r(t2 ? m.createTempSlot(a2) : i());
|
|
335
|
+
let f2;
|
|
336
|
+
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));
|
|
340
|
+
}), () => {
|
|
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]);
|
|
344
|
+
};
|
|
345
|
+
} };
|
|
346
|
+
}, getAuiAttrs(e2) {
|
|
347
|
+
const t2 = {}, n2 = e2.attributes;
|
|
348
|
+
for (let e3 = 0; e3 < n2.length; e3++) {
|
|
349
|
+
const r2 = n2[e3];
|
|
350
|
+
r2.name === h || m.isVueAttr(r2.name) || (t2[r2.name] = r2.value);
|
|
351
|
+
}
|
|
352
|
+
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);
|
|
355
|
+
}, getHookStructure(e2) {
|
|
356
|
+
const t2 = m.cache.getAuiVueDefined(e2);
|
|
357
|
+
return ((t2 == null ? void 0 : t2.hooks) || []).slice(0);
|
|
358
|
+
}, formatStructure(e2) {
|
|
359
|
+
const t2 = m.cache.getAuiVueDefined(e2);
|
|
360
|
+
if (!(t2 == null ? void 0 : t2.origin)) return null;
|
|
361
|
+
let n2 = a({}, t2.origin);
|
|
362
|
+
const r2 = m.getHookStructure(e2);
|
|
363
|
+
let i2;
|
|
364
|
+
for (; i2 = r2.shift(); ) {
|
|
365
|
+
const e3 = i2(n2);
|
|
366
|
+
e3 && (n2 = e3);
|
|
367
|
+
}
|
|
368
|
+
return n2;
|
|
369
|
+
} }, f = m.init();
|
|
370
|
+
export {
|
|
371
|
+
AuiComponent,
|
|
372
|
+
f as default
|
|
373
|
+
};
|
|
374
|
+
//# sourceMappingURL=core.es.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core.cjs.js");exports.AuiComponent=e.AuiComponent,exports.default=e.default;//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/index.es.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("url"),n=require("path"),r=require("glob"),t=require("ts-deepmerge");var i="undefined"!=typeof document?document.currentScript:null;const o="auicore",u=e.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:i&&"SCRIPT"===i.tagName.toUpperCase()&&i.src||new URL("plugin.cjs.js",document.baseURI).href),a=n.dirname(u),s="Comp",c="// insert";function _(e){const n="virtual:aui-config",r="\0"+n;return{name:"aui-config-plugin",resolveId(e){if(e===n)return r},load(n){if(n===r){const n=t.merge({tagPrefix:"aui",buildTime:(new Date).toISOString()},e||{});return`export default ${JSON.stringify(n)}`}}}}exports.getAuiConfig=function(e){const i=(null==(e=t.merge({tagPrefix:"aui"},e||{}))?void 0:e.tagPrefix)||"aui";return{userConfig:{plugins:[{name:"aui-export-plugin",enforce:"pre",transform(e,t){if(t.endsWith(".export.aui.ts")){if(-1===e.indexOf(c))throw new Error(`.export.aui.ts文件必须包含[ ${c} ]标记`);const t=n.join(a,"../src"),i=r.glob.sync("**/*.aui.vue",{cwd:t});if(0===i.length)return null;const o=[];return i.forEach((e,r)=>{const i=n.join(t,e).replace(/\\\\/g,"/");o.push(`import ${s}${r} from '${i}';`),o.push(`import {componentStructure as ${s}${r}_${r} } from '${i}';`)}),o.push(e.replace(c,function(e){const n=[];return e.forEach((e,r)=>{n.push(`[${s}${r}_${r}.name]: ${s}${r}`)}),n.join(", ")}(i))),{code:o.join("\n")}}return null}},{name:"aui-vue-plugin",enforce:"post",transform(e,r){if(r.endsWith(".aui.vue")){const t=n.basename(r).replace(".aui.vue",""),i=e.split("export default"),u=`\nconst __aui_comp_define__ = ${i.pop()};\nimport __aui_como_core__ from '@${o}';\nif(!__aui_comp_define__.name) {\n __aui_comp_define__.name = '${t}';\n}\nexport const componentStructure = __aui_comp_define__;\nexport default __aui_como_core__.define(__aui_comp_define__);\n`;return{code:i.join("export default")+u}}return null}},_(e)],resolve:{alias:{[`@${o}`]:n.resolve(a,"./core")},extensions:[".js",".ts",".jsx",".tsx",".json",".cjs.js",".es.js"]},define:{__AUI_CONFIG__:JSON.stringify(t.merge({tagPrefix:"aui",buildTime:(new Date).toISOString()},e||{}))}},isCustomElement:e=>e.startsWith(`${i}-`)}};//# sourceMappingURL=plugin.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["../src/plugin.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { fileURLToPath } from 'url'\nimport { default as path, dirname } from 'path'\nimport { glob } from 'glob'\nimport { merge } from 'ts-deepmerge'\n\nconst coreAlias = 'auicore'\n// 避免使用 import.meta.url,在构建时会被转换为 data URL\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = dirname(__filename)\n\n// 自定义AUI.vue文件处理插件\nfunction auiVuePlugin(): Plugin {\n return {\n name: 'aui-vue-plugin',\n enforce: 'post', // 在Vue插件之后执行\n transform(code, id) {\n if (id.endsWith(`.aui.vue`)) {\n const fileName = path.basename(id).replace('.aui.vue', '');\n const sp = code.split('export default');\n const last = `\nconst __aui_comp_define__ = ${sp.pop()};\nimport __aui_como_core__ from '@${coreAlias}';\nif(!__aui_comp_define__.name) {\n __aui_comp_define__.name = '${fileName}';\n}\nexport const componentStructure = __aui_comp_define__;\nexport default __aui_como_core__.define(__aui_comp_define__);\n`;\n const first = sp.join('export default');\n return {\n code: first + last,\n }\n }\n return null\n },\n }\n}\n\n\nconst IMPORT_PREFIX = 'Comp';\n\nfunction joinExport(files: string[]): string {\n const codes: string[] = [];\n files.forEach((_, index: number) => {\n codes.push(`[${IMPORT_PREFIX}${index}_${index}.name]: ${IMPORT_PREFIX}${index}`);\n });\n return codes.join(', ');\n}\n\nconst INSERT_FLAG = '// insert';\n\nfunction auiExportPlugin(): Plugin {\n return {\n name: 'aui-export-plugin',\n enforce: 'pre',\n transform(code, id) {\n if (id.endsWith(`.export.aui.ts`)) {\n\n if (code.indexOf(INSERT_FLAG) === -1) {\n throw new Error(`.export.aui.ts文件必须包含[ ${INSERT_FLAG} ]标记`);\n }\n\n const cwd = path.join(__dirname, '../src');\n const files: string[] = glob.sync('**/*.aui.vue', {\n cwd,\n });\n\n if (files.length === 0) return null;\n\n const codes: string[] = [];\n files.forEach((file, index) => {\n const filePath = path.join(cwd, file).replace(/\\\\\\\\/g, '/');\n codes.push(`import ${IMPORT_PREFIX}${index} from '${filePath}';`);\n codes.push(`import {componentStructure as ${IMPORT_PREFIX}${index}_${index} } from '${filePath}';`);\n });\n codes.push(code.replace(INSERT_FLAG, joinExport(files)));\n return { code: codes.join(`\\n`) };\n }\n return null\n },\n }\n}\n\n\nfunction auiConfigPlugin(options?: AuiOptions) {\n const virtualModuleId = 'virtual:aui-config'\n const resolvedVirtualModuleId = '\\0' + virtualModuleId\n\n return {\n name: 'aui-config-plugin',\n resolveId(id: string) {\n if (id === virtualModuleId) {\n return resolvedVirtualModuleId\n }\n },\n load(id: string) {\n if (id === resolvedVirtualModuleId) {\n const auiConfig = merge({\n tagPrefix: 'aui',\n buildTime: new Date().toISOString()\n }, options || {})\n return `export default ${JSON.stringify(auiConfig)}`\n }\n }\n }\n}\n\nexport type AuiOptions = {\n tagPrefix?: string,\n};\n\nexport type AuiVuePlugin = {\n userConfig: UserConfig,\n isCustomElement: (tag: string) => boolean,\n};\n\n// 导出AUI配置函数\nexport function getAuiConfig(options?: AuiOptions): AuiVuePlugin {\n\n options = merge({\n tagPrefix: 'aui'\n }, options || {});\n\n const tagPrefix = options?.tagPrefix || 'aui';\n\n return {\n userConfig: {\n plugins: [auiExportPlugin(), auiVuePlugin(), auiConfigPlugin(options)],\n resolve: {\n alias: {\n [`@${coreAlias}`]: path.resolve(__dirname, './core')\n },\n extensions: ['.js', '.ts', '.jsx', '.tsx', '.json', '.cjs.js', '.es.js'],\n },\n define: {\n __AUI_CONFIG__: JSON.stringify(merge({\n tagPrefix: 'aui',\n buildTime: new Date().toISOString()\n }, options || {}))\n },\n },\n isCustomElement: (tag: string) => tag.startsWith(`${tagPrefix}-`),\n }\n}"],"names":["coreAlias","__filename","fileURLToPath","__dirname","dirname","IMPORT_PREFIX","INSERT_FLAG","auiConfigPlugin","options","virtualModuleId","resolvedVirtualModuleId","name","resolveId","id","load","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","exports","getAuiConfig","userConfig","plugins","enforce","transform","code","endsWith","indexOf","Error","cwd","path","join","files","glob","sync","length","codes","forEach","file","index","filePath","replace","push","_","fileName","basename","sp","split","last","pop","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"oOAMA,MAAMA,EAAY,UAEZC,EAAaC,EAAAA,uLACbC,EAAYC,EAAAA,QAAQH,GA+BpBI,EAAgB,OAUhBC,EAAc,YAmCpB,SAASC,EAAgBC,GACvB,MAAMC,EAAkB,qBAClBC,EAA0B,KAAOD,EAEvC,MAAO,CACLE,KAAM,oBACN,SAAAC,CAAUC,GACR,GAAIA,IAAOJ,EACT,OAAOC,CAEX,EACA,IAAAI,CAAKD,GACH,GAAIA,IAAOH,EAAyB,CAClC,MAAMK,EAAYC,EAAAA,MAAM,CACtBC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrBZ,GAAW,CAAA,GACd,MAAO,kBAAkBa,KAAKC,UAAUP,IAC1C,CACF,EAEJ,CAsCAQ,QAAAC,aA1BO,SAAsBhB,GAM3B,MAAMS,GAAYT,OAJlBA,EAAUQ,EAAAA,MAAM,CACdC,UAAW,OACVT,GAAW,CAAA,SAEIA,EAAAA,EAASS,YAAa,MAExC,MAAO,CACLQ,WAAY,CACVC,QAAS,CA3EN,CACLf,KAAM,oBACNgB,QAAS,MACT,SAAAC,CAAUC,EAAMhB,GACd,GAAIA,EAAGiB,SAAS,kBAAmB,CAEjC,IAAA,IAAID,EAAKE,QAAQzB,SACT,IAAI0B,MAAM,yBAAyB1B,SAG3C,MAAM2B,EAAMC,EAAKC,KAAKhC,EAAW,UAC3BiC,EAAkBC,EAAAA,KAAKC,KAAK,eAAgB,CAChDL,QAGF,GAAqB,IAAjBG,EAAMG,OAAc,OAAO,KAE/B,MAAMC,EAAkB,GAOxB,OANAJ,EAAMK,QAAQ,CAACC,EAAMC,KACnB,MAAMC,EAAWV,EAAKC,KAAKF,EAAKS,GAAMG,QAAQ,QAAS,KACvDL,EAAMM,KAAK,UAAUzC,IAAgBsC,WAAeC,OACpDJ,EAAMM,KAAK,iCAAiCzC,IAAgBsC,KAASA,aAAiBC,SAExFJ,EAAMM,KAAKjB,EAAKgB,QAAQvC,EAlChC,SAAoB8B,GAClB,MAAMI,EAAkB,GAIxB,OAHAJ,EAAMK,QAAQ,CAACM,EAAGJ,KAChBH,EAAMM,KAAK,IAAIzC,IAAgBsC,KAASA,YAAgBtC,IAAgBsC,OAEnEH,EAAML,KAAK,KACpB,CANA,CAkCwDC,KACzC,CAAEP,KAAMW,EAAML,KAAK,MAC5B,CACA,OAAO,IACT,GAnEK,CACLxB,KAAM,iBACNgB,QAAS,OACT,SAAAC,CAAUC,EAAMhB,GACd,GAAIA,EAAGiB,SAAS,YAAa,CAC3B,MAAMkB,EAAWd,EAAKe,SAASpC,GAAIgC,QAAQ,WAAY,IACjDK,EAAKrB,EAAKsB,MAAM,kBAChBC,EAAO,iCACSF,EAAGG,2CACCrD,uEAEFgD,kIAMxB,MAAO,CACLnB,KAFYqB,EAAGf,KAAK,kBAENiB,EAElB,CACA,OAAO,IACT,GA6F+C7C,EAAgBC,IAC7D8C,QAAS,CACPC,MAAO,CACL,CAAC,IAAIvD,KAAckC,EAAKoB,QAAQnD,EAAW,WAE7CqD,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,QAAS,UAAW,WAEjEC,OAAQ,CACNC,eAAgBrC,KAAKC,UAAUN,QAAM,CACnCC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrBZ,GAAW,CAAA,MAGlBmD,gBAAkBC,GAAgBA,EAAIC,WAAW,GAAG5C,MAExD"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UserConfig } from 'vite';
|
|
2
|
+
export type AuiOptions = {
|
|
3
|
+
tagPrefix?: string;
|
|
4
|
+
};
|
|
5
|
+
export type AuiVuePlugin = {
|
|
6
|
+
userConfig: UserConfig;
|
|
7
|
+
isCustomElement: (tag: string) => boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function getAuiConfig(options?: AuiOptions): AuiVuePlugin;
|
|
10
|
+
//# sourceMappingURL=plugin.d.ts.map
|