agile-core 3.0.9 → 3.0.10

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.
@@ -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, onUpdated, ref, createApp, defineComponent, shallowRef } from 'vue';\nimport { merge } from 'ts-deepmerge';\nexport { type Component as TraditionComponent } from './types';\n\nconst auiConfig = (function () {\n try {\n return __AUI_CONFIG__;\n } catch (e) {\n return { tagPrefix: 'aui' };\n }\n})();\n\nconst TAG_PREFIX = auiConfig.tagPrefix || 'aui';\nconst AUI_ATTR_FLAG = 'data-v-aui';\nconst AUI_EXTEND_ATTR = 'auix';\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 slotCollection?: Record<string, any[]>,\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\n// function 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__ = 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.$initVue();\n this.$needHook(true);\n }\n\n }\n\n\n\n set innerHTML(v: string) {\n if (!this.$needHook()) {\n // super.innerHTML = v;\n Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\n return;\n }\n\n this.$innerHTML('default', v);\n }\n\n get innerHTML() {\n if (!this.$needHook()) {\n // return super.innerHTML || '';\n return Reflect.get(HTMLElement.prototype, 'innerHTML', this) || '';\n }\n\n return this.$innerHTML('default');\n }\n\n set textContent(v: string) {\n if (!this.$needHook()) {\n // super.innerHTML = v;\n Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\n return;\n }\n\n this.$textContent('default', v);\n }\n\n get textContent() {\n if (!this.$needHook()) {\n // return super.innerHTML || '';\n return Reflect.get(HTMLElement.prototype, 'innerHTML', this) || '';\n }\n\n return this.$textContent('default');\n }\n\n set innerText(v: string) {\n this.$ignoreLog('innerText');\n // super.innerText = v;\n Reflect.set(HTMLElement.prototype, 'innerText', v, this);\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 prepend<T extends Node>(node: T) {\n if (!this.$needHook()) {\n return HTMLElement.prototype.prepend.call(this, node);\n }\n this.$prepend('default', node);\n }\n\n appendChild<T extends Node>(node: T): T {\n if (!this.$needHook()) {\n return HTMLElement.prototype.appendChild.call(this, node) as T;\n }\n return this.$appendChild('default', node);\n }\n\n insertBefore<T extends Node>(node: T, child: Node | null): T {\n if (!this.$needHook()) {\n return HTMLElement.prototype.insertBefore.call(this, node, child) as T;\n }\n return this.$insertBefore('default', node, child);\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 HTMLElement.prototype.hasAttribute.call(this, 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 HTMLElement.prototype.setAttribute.call(this, 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 HTMLElement.prototype.removeAttribute.call(this, 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 HTMLElement.prototype.removeAttribute.call(this, 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 (e) {\n console.log('$anyToArray err', e);\n }\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 $resetShadowSymbol() {\n this[AuiComponent.shadowSymbol] = { needHook: false, slot: {} };\n }\n\n $customEvent(name: string, opts?: any) {\n this.dispatchEvent(new CustomEvent(name, Object.assign({\n bubbles: false,\n composed: false,\n cancelable: true,\n }, opts || {})));\n }\n\n $forceUpdate() {\n let slotCollection: Record<string, any> | null = null;\n const slot = this[AuiComponent.shadowSymbol].slot;\n for (const name in slot) {\n const children = this.$slotCollection(slot[name]);\n if (!slotCollection) slotCollection = {};\n slotCollection[name] = children;\n }\n\n if (slotCollection) {\n this[AuiComponent.shadowSymbol].slotCollection = slotCollection;\n }\n\n this.$customEvent('aui-force-update');\n }\n\n $slotCollection(cache: AUI_SLOT_CACHE) {\n const { start, end } = cache;\n const children = [];\n let child;\n while (start && (child = start.nextSibling) && child !== end) {\n start.parentNode?.removeChild(child);\n children.push(child);\n }\n return children;\n }\n\n $slotReplace() {\n const slotCollection = this[AuiComponent.shadowSymbol].slotCollection;\n if (!slotCollection) return;\n delete this[AuiComponent.shadowSymbol].slotCollection;\n for (const name in slotCollection) {\n const slot = this.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot;\n slot.$replace(this);\n this.$replaceChildren(name, slotCollection[name]);\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 if (!this.$hasSlot()) return '';\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 if (!this.$hasSlot()) return '';\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 $insertBefore<T extends Node>(name: string, node: T, ref: Node | null): T {\n const { start } = this.$slot(name) || {};\n const parentNode = start?.parentNode || this;\n if (ref) {\n if (parentNode === this) {\n HTMLElement.prototype.insertBefore.call(this, node, ref);\n } else {\n parentNode.insertBefore(node, ref);\n }\n } else {\n this.appendChild(node);\n }\n\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 $hasSlot() {\n const keys = Object.keys(this[AuiComponent.shadowSymbol].slot);\n return keys.length > 0;\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 (HTMLElement.prototype.hasAttribute.call(this, AUI_ATTR_FLAG)) {\n this.$call('$emit', `update:value`, val);\n } else {\n this.$customEvent('input', {\n bubbles: true,\n composed: true,\n });\n }\n }\n this.$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 HTMLElement.prototype.removeAttribute.call(this, 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 = HTMLElement.prototype.hasAttribute.call(this, 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 this.$customEvent('aui-init', {\n bubbles: false,\n detail: { code: 0 }\n });\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\nexport class 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 Reflect.set(HTMLElement.prototype, 'textContent', v, this);\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 Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\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 HTMLElement.prototype.prepend.call(this, 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 HTMLElement.prototype.appendChild.call(this, node) as T;\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 this.$replaceWith(start, end);\n }\n\n $replaceWith(...args: any[]) {\n args.forEach((target) => {\n this.parentNode?.insertBefore(target, this);\n });\n this.parentNode?.removeChild(this);\n }\n}\n\nconst _M = {\n init() {\n _M.defineSlot();\n return _M;\n },\n defineSlot() {\n _M.defineCustomElement('aui-slot', AuiSlot);\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, cur = null;\n const last = sp.pop() || '';\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: {} as Record<string, AUI_VUE_DEFINE_CACHE>, // 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 if (names.indexOf(AUI_EXTEND_ATTR) === -1) {\n names.push(AUI_EXTEND_ATTR);\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 [AUI_EXTEND_ATTR]: {\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 _M.defineCustomElement(tagName, AuiChild);\n\n } else {\n _M.cache.defined[tagName].origin = origin;\n }\n },\n\n defineCustomElement(tagName: string, cls: any) {\n try {\n customElements.define(tagName, cls);\n } catch (_) {\n // console.warn('defineCustomElement error', error);\n }\n },\n\n sameComponent(tagName: string, v: any): boolean {\n if (!Object.prototype.hasOwnProperty.call(v, '__hmrId')) return false;\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n const origin = auiVueDefined?.origin as any;\n if (!origin) return false;\n return v.__hmrId === origin.__hmrId;\n },\n\n notifyComponentUpdate(tagName: string) {\n const comps = document.querySelectorAll(tagName) as NodeListOf<AuiComponent>;\n comps.forEach((comp) => {\n comp.$forceUpdate();\n });\n },\n\n define(v: Component, force = true): 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 || _M.sameComponent(tagName, v)) {\n console.log('aui组件更新origin定义');\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\n _M.notifyComponentUpdate(tagName);\n } else {\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\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 = shallowRef<any>(null)\n const elementRef = shallowRef<AuiComponent | null>(null)\n const selfAttrs = ref<Record<string, any>>({})\n const slotsRef = shallowRef<any>(el ? _M.createTempSlot(children) : useSlots())\n const target = shallowRef<Component | null>(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 // 监听自定义强制更新事件\n elementRef.value.addEventListener('aui-force-update', () => {\n target.value = null;\n });\n\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\n } else {\n console.warn('AUI组件绑定失败');\n }\n })\n\n onUpdated(() => {\n if (elementRef.value) {\n elementRef.value.$slotReplace();\n }\n })\n\n return () => {\n\n if (el) {\n elementRef.value = el;\n selfAttrs.value = _M.getAuiAttrs(el);\n }\n\n if (!target.value) {\n (target as any).value = _M.formatStructure(tagName);\n }\n\n if (!target.value) {\n console.warn('AUI组件未定义,加载失败,name:', tagName);\n return null;\n }\n\n const trueComp = h(target.value, { ...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: HookHandler | null | undefined;\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__","e","tagPrefix","AUI_ATTR_FLAG","AUI_EXTEND_ATTR","shadowSymbol","Symbol","AuiComponent","HTMLElement","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$initVue","$needHook","v","$innerHTML","Reflect","set","prototype","innerHTML","get","$textContent","textContent","$ignoreLog","val","oldValue","value","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","node","prepend","call","$prepend","$appendChild","appendChild","child","$insertBefore","insertBefore","qualifiedName","shadowElement","hasAttribute","getAttribute","setAttribute","$isShowProp","_M","vueAttrName","removeAttribute","name","s","arr","json","Array","split","filter","item","trim","$resetShadowSymbol","opts","dispatchEvent","CustomEvent","Object","assign","bubbles","composed","cancelable","$forceUpdate","slotCollection","children","$slotCollection","$customEvent","cache","start","end","nextSibling","parentNode","removeChild","push","$slotReplace","querySelector","$replace","$replaceChildren","args","length","ret","$slot","next","join","$hasSlot","document","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","ref","shift","keys","need","list","childNodes","AuiSlot","$isForAuiSlot","slice","$bind","valueType","$call","detail","attributeName","attributes","shadow","i","attr","defineProperty","writable","isVueAttr","prop","$getProp","isShow","show","auiVueDefined","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","code","auiInit","constructor","style","display","_name_","_el_","nodeType","Node","ELEMENT_NODE","$isAuiSlot","createComment","$replaceWith","forEach","target","init","defineSlot","defineCustomElement","Error","sp","cur","last","pop","hasOwnProperty","formatName","replace","defined","names","key","auiAttrName","indexOf","handle","hooks","createExtendComp","defineComponent","type","String","Number","methods","$aui","$el","data","mixins","component","patchDefaultProps","AuiChild","observedAttributes","getAuiPropNames","aui","vue","cls","customElements","define","_","__hmrId","querySelectorAll","comp","force","sameComponent","defineAuiComponent","notifyComponentUpdate","wrappedComponent","h","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","createTempSlot","useSlots","onMounted","$bindVue","replaceTempSlot","addEventListener","getAuiAttrs","onUpdated","formatStructure","trueComp","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';\nimport { h, useSlots, useAttrs, onMounted, onUpdated, ref, createApp, defineComponent, shallowRef } from 'vue';\nimport { merge } from 'ts-deepmerge';\nexport { type Component as TraditionComponent } from './types';\n\nconst auiConfig = (function () {\n try {\n return __AUI_CONFIG__;\n } catch (e) {\n return { tagPrefix: 'aui' };\n }\n})();\n\nconst TAG_PREFIX = auiConfig.tagPrefix || 'aui';\nconst AUI_ATTR_FLAG = 'data-v-aui';\nconst AUI_EXTEND_ATTR = 'auix';\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 slotCollection?: Record<string, any[]>,\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\n// function 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__ = 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.$initVue();\n this.$needHook(true);\n }\n\n }\n\n\n\n set innerHTML(v: string) {\n if (!this.$needHook()) {\n // super.innerHTML = v;\n Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\n return;\n }\n\n this.$innerHTML('default', v);\n }\n\n get innerHTML() {\n if (!this.$needHook()) {\n // return super.innerHTML || '';\n return Reflect.get(HTMLElement.prototype, 'innerHTML', this) || '';\n }\n\n return this.$innerHTML('default');\n }\n\n set textContent(v: string) {\n if (!this.$needHook()) {\n // super.innerHTML = v;\n Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\n return;\n }\n\n this.$textContent('default', v);\n }\n\n get textContent() {\n if (!this.$needHook()) {\n // return super.innerHTML || '';\n return Reflect.get(HTMLElement.prototype, 'innerHTML', this) || '';\n }\n\n return this.$textContent('default');\n }\n\n set innerText(v: string) {\n this.$ignoreLog('innerText');\n // super.innerText = v;\n Reflect.set(HTMLElement.prototype, 'innerText', v, this);\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 prepend<T extends Node>(node: T) {\n if (!this.$needHook()) {\n return HTMLElement.prototype.prepend.call(this, node);\n }\n this.$prepend('default', node);\n }\n\n appendChild<T extends Node>(node: T): T {\n if (!this.$needHook()) {\n return HTMLElement.prototype.appendChild.call(this, node) as T;\n }\n return this.$appendChild('default', node);\n }\n\n insertBefore<T extends Node>(node: T, child: Node | null): T {\n if (!this.$needHook()) {\n return HTMLElement.prototype.insertBefore.call(this, node, child) as T;\n }\n return this.$insertBefore('default', node, child);\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 HTMLElement.prototype.hasAttribute.call(this, 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 HTMLElement.prototype.setAttribute.call(this, 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 HTMLElement.prototype.removeAttribute.call(this, 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 HTMLElement.prototype.removeAttribute.call(this, 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 (e) {\n console.log('$anyToArray err', e);\n }\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 $resetShadowSymbol() {\n this[AuiComponent.shadowSymbol] = { needHook: false, slot: {} };\n }\n\n $customEvent(name: string, opts?: any) {\n this.dispatchEvent(new CustomEvent(name, Object.assign({\n bubbles: false,\n composed: false,\n cancelable: true,\n }, opts || {})));\n }\n\n $forceUpdate() {\n let slotCollection: Record<string, any> | null = null;\n const slot = this[AuiComponent.shadowSymbol].slot;\n for (const name in slot) {\n const children = this.$slotCollection(slot[name]);\n if (!slotCollection) slotCollection = {};\n slotCollection[name] = children;\n }\n\n if (slotCollection) {\n this[AuiComponent.shadowSymbol].slotCollection = slotCollection;\n }\n\n this.$customEvent('aui-force-update');\n }\n\n $slotCollection(cache: AUI_SLOT_CACHE) {\n const { start, end } = cache;\n const children = [];\n let child;\n while (start && (child = start.nextSibling) && child !== end) {\n start.parentNode?.removeChild(child);\n children.push(child);\n }\n return children;\n }\n\n $slotReplace() {\n const slotCollection = this[AuiComponent.shadowSymbol].slotCollection;\n if (!slotCollection) return;\n delete this[AuiComponent.shadowSymbol].slotCollection;\n for (const name in slotCollection) {\n const slot = this.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot;\n slot.$replace(this);\n this.$replaceChildren(name, slotCollection[name]);\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 if (!this.$hasSlot()) return '';\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 if (!this.$hasSlot()) return '';\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 $insertBefore<T extends Node>(name: string, node: T, ref: Node | null): T {\n const { start } = this.$slot(name) || {};\n const parentNode = start?.parentNode || this;\n if (ref) {\n if (parentNode === this) {\n HTMLElement.prototype.insertBefore.call(this, node, ref);\n } else {\n parentNode.insertBefore(node, ref);\n }\n } else {\n this.appendChild(node);\n }\n\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 $hasSlot() {\n const keys = Object.keys(this[AuiComponent.shadowSymbol].slot);\n return keys.length > 0;\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 (HTMLElement.prototype.hasAttribute.call(this, AUI_ATTR_FLAG)) {\n this.$call('$emit', `update:value`, val);\n } else {\n this.$customEvent('input', {\n bubbles: true,\n composed: true,\n });\n }\n }\n this.$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 HTMLElement.prototype.removeAttribute.call(this, 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 = HTMLElement.prototype.hasAttribute.call(this, 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 this.$customEvent('aui-init', {\n bubbles: false,\n detail: { code: 0 }\n });\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\nexport class 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 Reflect.set(HTMLElement.prototype, 'textContent', v, this);\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 Reflect.set(HTMLElement.prototype, 'innerHTML', v, this);\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 HTMLElement.prototype.prepend.call(this, 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 HTMLElement.prototype.appendChild.call(this, node) as T;\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 this.$replaceWith(start, end);\n }\n\n $replaceWith(...args: any[]) {\n args.forEach((target) => {\n this.parentNode?.insertBefore(target, this);\n });\n this.parentNode?.removeChild(this);\n }\n}\n\nconst _M = {\n init() {\n _M.defineSlot();\n return _M;\n },\n defineSlot() {\n _M.defineCustomElement('aui-slot', AuiSlot);\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, cur = null;\n const last = sp.pop() || '';\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: {} as Record<string, AUI_VUE_DEFINE_CACHE>, // 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 if (names.indexOf(AUI_EXTEND_ATTR) === -1) {\n names.push(AUI_EXTEND_ATTR);\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 [AUI_EXTEND_ATTR]: {\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 _M.defineCustomElement(tagName, AuiChild);\n\n } else {\n _M.cache.defined[tagName].origin = origin;\n }\n },\n\n defineCustomElement(tagName: string, cls: any) {\n try {\n customElements.define(tagName, cls);\n } catch (_) {\n // console.warn('defineCustomElement error', error);\n }\n },\n\n sameComponent(tagName: string, v: any): boolean {\n if (!Object.prototype.hasOwnProperty.call(v, '__hmrId')) return false;\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n const origin = auiVueDefined?.origin as any;\n if (!origin) return false;\n return v.__hmrId === origin.__hmrId;\n },\n\n notifyComponentUpdate(tagName: string) {\n const comps = document.querySelectorAll(tagName) as NodeListOf<AuiComponent>;\n comps.forEach((comp) => {\n comp.$forceUpdate();\n });\n },\n\n define(v: Component, force = true): 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 || _M.sameComponent(tagName, v)) {\n console.log('aui组件更新origin定义');\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\n _M.notifyComponentUpdate(tagName);\n } else {\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\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', {\n name,\n onVnodeMounted(vnode: any) {\n const el = vnode.el as AuiSlot;\n el && el.$replaceWith && el.$replaceWith(...children[name]);\n }\n });\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 = shallowRef<any>(null)\n const elementRef = shallowRef<AuiComponent | null>(null)\n const selfAttrs = ref<Record<string, any>>({})\n const slotsRef = shallowRef<any>(el ? _M.createTempSlot(children) : useSlots())\n const target = shallowRef<Component | null>(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 // 监听自定义强制更新事件\n elementRef.value.addEventListener('aui-force-update', () => {\n target.value = null;\n });\n\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\n } else {\n console.warn('AUI组件绑定失败');\n }\n })\n\n // onUpdated(() => {\n // if (elementRef.value) {\n // // elementRef.value.$slotReplace();\n // }\n // })\n\n return () => {\n\n if (el) {\n elementRef.value = el;\n selfAttrs.value = _M.getAuiAttrs(el);\n }\n\n if (!target.value) {\n (target as any).value = _M.formatStructure(tagName);\n }\n\n if (!target.value) {\n console.warn('AUI组件未定义,加载失败,name:', tagName);\n return null;\n }\n\n const trueComp = h(target.value, { ...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: HookHandler | null | undefined;\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__","e","tagPrefix","AUI_ATTR_FLAG","AUI_EXTEND_ATTR","shadowSymbol","AuiComponent","HTMLElement","constructor","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$initVue","$needHook","v","$innerHTML","Reflect","set","prototype","innerHTML","get","textContent","$textContent","innerText","$ignoreLog","value","val","oldValue","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","prepend","node","call","$prepend","appendChild","$appendChild","insertBefore","child","$insertBefore","hasAttribute","qualifiedName","shadowElement","setAttribute","getAttribute","$isShowProp","_M","vueAttrName","removeAttribute","attributeChangedCallback","name","s","arr","json","Array","split","filter","item","trim","$resetShadowSymbol","$customEvent","opts","dispatchEvent","CustomEvent","Object","assign","bubbles","composed","cancelable","$forceUpdate","slotCollection","children","$slotCollection","cache","start","end","nextSibling","parentNode","removeChild","push","$slotReplace","querySelector","$replace","$replaceChildren","args","length","ret","$slot","next","join","$hasSlot","document","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","ref","$childNodes","$children","shift","keys","need","list","childNodes","AuiSlot","$isForAuiSlot","slice","$bind","valueType","$call","detail","attributeName","attributes","shadow","i","attr","defineProperty","writable","isVueAttr","prop","$getProp","show","auiVueDefined","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","$bindVue","code","auiInit","_AuiComponent","style","display","_name_","_el_","$isAuiSlot","nodeType","Node","ELEMENT_NODE","createComment","$replaceWith","forEach","target","init","defineSlot","defineCustomElement","Error","sp","cur","last","pop","hasOwnProperty","formatName","replace","defined","getAuiPropNames","names","key","auiAttrName","indexOf","addHooks","handle","hooks","createExtendComp","defineComponent","type","String","Number","methods","$value","$aui","$el","data","patchDefaultProps","mixins","defineAuiComponent","component","AuiChild","observedAttributes","aui","vue","cls","customElements","define","_","sameComponent","__hmrId","notifyComponentUpdate","querySelectorAll","comp","force","wrappedComponent","createTempSlot","h","onVnodeMounted","vnode","replaceTempSlot","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","useSlots","onMounted","addEventListener","getAuiAttrs","formatStructure","trueComp","a","s1","toUpperCase","hookStructure","getHookStructure","merge","core"],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,7 +1 @@
1
- import { AuiComponent, AuiSlot, default as default2 } from "./core.es.js";
2
- export {
3
- AuiComponent,
4
- AuiSlot,
5
- default2 as default
6
- };
7
- //# sourceMappingURL=index.es.js.map
1
+ import{AuiComponent as e,AuiSlot as a,default as o}from"./core.es.js";export{e as AuiComponent,a as AuiSlot,o as default};//# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +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(options: AuiOptions): 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 '${options.coreAlias?options.coreAlias:'agile-core'}';\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 const cwd = path.dirname(id);\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 coreAlias?: 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(options), 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":["__filename","fileURLToPath","__dirname","dirname","auiVuePlugin","options","name","enforce","transform","code","id","endsWith","fileName","path","basename","replace","sp","split","last","pop","coreAlias","join","IMPORT_PREFIX","INSERT_FLAG","auiConfigPlugin","virtualModuleId","resolvedVirtualModuleId","resolveId","load","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","exports","getAuiConfig","userConfig","plugins","indexOf","Error","cwd","files","glob","sync","length","codes","forEach","file","index","filePath","push","_","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"oOAMA,MAEMA,EAAaC,EAAAA,uLACbC,EAAYC,EAAAA,QAAQH,GAG1B,SAASI,EAAaC,GACpB,MAAO,CACLC,KAAM,iBACNC,QAAS,OACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,YAAa,CAC3B,MAAMC,EAAWC,EAAKC,SAASJ,GAAIK,QAAQ,WAAY,IACjDC,EAAKP,EAAKQ,MAAM,kBAChBC,EAAO,iCACSF,EAAGG,0CACAd,EAAQe,UAAUf,EAAQe,UAAU,kFAErCR,kIAMxB,MAAO,CACLH,KAFYO,EAAGK,KAAK,kBAENH,EAElB,CACA,OAAO,IACT,EAEJ,CAGA,MAAMI,EAAgB,OAUhBC,EAAc,YAkCpB,SAASC,EAAgBnB,GACvB,MAAMoB,EAAkB,qBAClBC,EAA0B,KAAOD,EAEvC,MAAO,CACLnB,KAAM,oBACN,SAAAqB,CAAUjB,GACR,GAAIA,IAAOe,EACT,OAAOC,CAEX,EACA,IAAAE,CAAKlB,GACH,GAAIA,IAAOgB,EAAyB,CAClC,MAAMG,EAAYC,EAAAA,MAAM,CACtBC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,GACd,MAAO,kBAAkB8B,KAAKC,UAAUP,IAC1C,CACF,EAEJ,CAuCAQ,QAAAC,aA1BO,SAAsBjC,GAM3B,MAAM0B,GAAY1B,OAJlBA,EAAUyB,EAAAA,MAAM,CACdC,UAAW,OACV1B,GAAW,CAAA,SAEIA,EAAAA,EAAS0B,YAAa,MAExC,MAAO,CACLQ,WAAY,CACVC,QAAS,CA3EN,CACLlC,KAAM,oBACNC,QAAS,MACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,kBAAmB,CAEjC,IAAA,IAAIF,EAAKgC,QAAQlB,SACT,IAAImB,MAAM,yBAAyBnB,SAE3C,MAAMoB,EAAM9B,EAAKV,QAAQO,GACnBkC,EAAkBC,EAAAA,KAAKC,KAAK,eAAgB,CAChDH,IAAAA,IAGF,GAAqB,IAAjBC,EAAMG,OAAc,OAAO,KAE/B,MAAMC,EAAkB,GAOxB,OANAJ,EAAMK,QAAQ,CAACC,EAAMC,KACnB,MAAMC,EAAWvC,EAAKQ,KAAKsB,EAAKO,GAAMnC,QAAQ,MAAO,KACrDiC,EAAMK,KAAK,UAAU/B,IAAgB6B,WAAeC,OACpDJ,EAAMK,KAAK,iCAAiC/B,IAAgB6B,KAASA,aAAiBC,SAExFJ,EAAMK,KAAK5C,EAAKM,QAAQQ,EAjChC,SAAoBqB,GAClB,MAAMI,EAAkB,GAIxB,OAHAJ,EAAMK,QAAQ,CAACK,EAAGH,KAChBH,EAAMK,KAAK,IAAI/B,IAAgB6B,KAASA,YAAgB7B,IAAgB6B,OAEnEH,EAAM3B,KAAK,KACpB,CANA,CAiCwDuB,KACzC,CAAEnC,KAAMuC,EAAM3B,KAAK,MAC5B,CACA,OAAO,IACT,GAiD+BjB,EAAaC,GAAUmB,EAAgBnB,IACpEkD,QAAS,CACPC,MAAO,CACL,WAAkB3C,EAAK0C,QAAQrD,EAAW,WAE5CuD,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,QAAS,UAAW,WAEjEC,OAAQ,CACNC,eAAgBxB,KAAKC,UAAUN,QAAM,CACnCC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,MAGlBuD,gBAAkBC,GAAgBA,EAAIC,WAAW,GAAG/B,MAExD"}
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(options: AuiOptions): 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 '${options.coreAlias?options.coreAlias:'agile-core'}';\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 const cwd = path.dirname(id);\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 coreAlias?: 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(options), 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":["__filename","fileURLToPath","__dirname","dirname","auiVuePlugin","options","name","enforce","transform","code","id","endsWith","fileName","path","basename","replace","sp","split","last","pop","coreAlias","join","IMPORT_PREFIX","INSERT_FLAG","auiConfigPlugin","virtualModuleId","resolvedVirtualModuleId","resolveId","load","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","exports","getAuiConfig","userConfig","plugins","indexOf","Error","cwd","files","glob","sync","length","codes","forEach","file","index","filePath","push","_","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"oOAMA,MAEMA,EAAaC,EAAAA,uLACbC,EAAYC,EAAAA,QAAQH,GAG1B,SAASI,EAAaC,GACpB,MAAO,CACLC,KAAM,iBACNC,QAAS,OACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,YAAa,CAC3B,MAAMC,EAAWC,EAAKC,SAASJ,GAAIK,QAAQ,WAAY,IACjDC,EAAKP,EAAKQ,MAAM,kBAChBC,EAAO,iCACSF,EAAGG,0CACAd,EAAQe,UAAUf,EAAQe,UAAU,kFAErCR,kIAMxB,MAAO,CACLH,KAFYO,EAAGK,KAAK,kBAENH,EAElB,CACA,OAAO,IACT,EAEJ,CAGA,MAAMI,EAAgB,OAUhBC,EAAc,YAkCpB,SAASC,EAAgBnB,GACvB,MAAMoB,EAAkB,qBAClBC,EAA0B,KAAOD,EAEvC,MAAO,CACLnB,KAAM,oBACN,SAAAqB,CAAUjB,GACR,GAAIA,IAAOe,EACT,OAAOC,CAEX,EACA,IAAAE,CAAKlB,GACH,GAAIA,IAAOgB,EAAyB,CAClC,MAAMG,EAAYC,EAAAA,MAAM,CACtBC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,GACd,MAAO,kBAAkB8B,KAAKC,UAAUP,IAC1C,CACF,EAEJ,CAuCAQ,QAAAC,aA1BO,SAAsBjC,GAM3B,MAAM0B,GAAY1B,OAJlBA,EAAUyB,EAAAA,MAAM,CACdC,UAAW,OACV1B,GAAW,CAAA,SAEIA,EAAAA,EAAS0B,YAAa,MAExC,MAAO,CACLQ,WAAY,CACVC,QAAS,CA3EN,CACLlC,KAAM,oBACNC,QAAS,MACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,kBAAmB,CAEjC,IAAA,IAAIF,EAAKgC,QAAQlB,SACT,IAAImB,MAAM,yBAAyBnB,SAE3C,MAAMoB,EAAM9B,EAAKV,QAAQO,GACnBkC,EAAkBC,EAAAA,KAAKC,KAAK,eAAgB,CAChDH,IAAAA,IAGF,GAAqB,IAAjBC,EAAMG,OAAc,OAAO,KAE/B,MAAMC,EAAkB,GAOxB,OANAJ,EAAMK,QAAQ,CAACC,EAAMC,KACnB,MAAMC,EAAWvC,EAAKQ,KAAKsB,EAAKO,GAAMnC,QAAQ,MAAO,KACrDiC,EAAMK,KAAK,UAAU/B,IAAgB6B,WAAeC,OACpDJ,EAAMK,KAAK,iCAAiC/B,IAAgB6B,KAASA,aAAiBC,SAExFJ,EAAMK,KAAK5C,EAAKM,QAAQQ,EAAAA,SAjCZqB,GAClB,MAAMI,EAAkB,GAIxB,OAHAJ,EAAMK,QAAQ,CAACK,EAAGH,KAChBH,EAAMK,KAAK,IAAI/B,IAAgB6B,KAASA,YAAgB7B,IAAgB6B,OAEnEH,EAAM3B,KAAK,KACpB,CA2BgCE,CAAwBqB,KACzC,CAAEnC,KAAMuC,EAAM3B,KAAK,MAC5B,CACA,OAAO,IACT,GAiD+BjB,EAAaC,GAAUmB,EAAgBnB,IACpEkD,QAAS,CACPC,MAAO,CACL,WAAkB3C,EAAK0C,QAAQrD,EAAW,WAE5CuD,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,QAAS,UAAW,WAEjEC,OAAQ,CACNC,eAAgBxB,KAAKC,UAAUN,QAAM,CACnCC,UAAW,MACXC,WAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,MAGlBuD,gBAAkBC,GAAgBA,EAAIC,WAAW,GAAG/B,MAExD"}
package/dist/plugin.es.js CHANGED
@@ -1,64 +1 @@
1
- import { fileURLToPath as e } from "url";
2
- import n, { dirname as r } from "path";
3
- import { glob as o } from "glob";
4
- import { merge as t } from "ts-deepmerge";
5
- const i = r(e(import.meta.url));
6
- function u(e2) {
7
- return { name: "aui-vue-plugin", enforce: "post", transform(r2, o2) {
8
- if (o2.endsWith(".aui.vue")) {
9
- const t2 = n.basename(o2).replace(".aui.vue", ""), i2 = r2.split("export default"), u2 = `
10
- const __aui_comp_define__ = ${i2.pop()};
11
- import __aui_como_core__ from '${e2.coreAlias ? e2.coreAlias : "agile-core"}';
12
- if(!__aui_comp_define__.name) {
13
- __aui_comp_define__.name = '${t2}';
14
- }
15
- export const componentStructure = __aui_comp_define__;
16
- export default __aui_como_core__.define(__aui_comp_define__);
17
- `;
18
- return { code: i2.join("export default") + u2 };
19
- }
20
- return null;
21
- } };
22
- }
23
- const a = "Comp";
24
- const s = "// insert";
25
- function c() {
26
- return { name: "aui-export-plugin", enforce: "pre", transform(e2, r2) {
27
- if (r2.endsWith(".export.aui.ts")) {
28
- if (-1 === e2.indexOf(s)) throw new Error(`.export.aui.ts文件必须包含[ ${s} ]标记`);
29
- const t2 = n.dirname(r2), i2 = o.sync("**/*.aui.vue", { cwd: t2 });
30
- if (0 === i2.length) return null;
31
- const u2 = [];
32
- return i2.forEach((e3, r3) => {
33
- const o2 = n.join(t2, e3).replace(/\\/g, "/");
34
- u2.push(`import ${a}${r3} from '${o2}';`), u2.push(`import {componentStructure as ${a}${r3}_${r3} } from '${o2}';`);
35
- }), u2.push(e2.replace(s, function(e3) {
36
- const n2 = [];
37
- return e3.forEach((e4, r3) => {
38
- n2.push(`[${a}${r3}_${r3}.name]: ${a}${r3}`);
39
- }), n2.join(", ");
40
- }(i2))), { code: u2.join("\n") };
41
- }
42
- return null;
43
- } };
44
- }
45
- function _(e2) {
46
- const n2 = "virtual:aui-config", r2 = "\0" + n2;
47
- return { name: "aui-config-plugin", resolveId(e3) {
48
- if (e3 === n2) return r2;
49
- }, load(n3) {
50
- if (n3 === r2) {
51
- const n4 = t({ tagPrefix: "aui", buildTime: (/* @__PURE__ */ new Date()).toISOString() }, e2 || {});
52
- return `export default ${JSON.stringify(n4)}`;
53
- }
54
- } };
55
- }
56
- function getAuiConfig(e2) {
57
- e2 = t({ tagPrefix: "aui" }, e2 || {});
58
- const r2 = (e2 == null ? void 0 : e2.tagPrefix) || "aui";
59
- return { userConfig: { plugins: [c(), u(e2), _(e2)], resolve: { alias: { "@auicore": n.resolve(i, "./core") }, extensions: [".js", ".ts", ".jsx", ".tsx", ".json", ".cjs.js", ".es.js"] }, define: { __AUI_CONFIG__: JSON.stringify(t({ tagPrefix: "aui", buildTime: (/* @__PURE__ */ new Date()).toISOString() }, e2 || {})) } }, isCustomElement: (e3) => e3.startsWith(`${r2}-`) };
60
- }
61
- export {
62
- getAuiConfig
63
- };
64
- //# sourceMappingURL=plugin.es.js.map
1
+ import{fileURLToPath as e}from"url";import n,{dirname as r}from"path";import{glob as o}from"glob";import{merge as t}from"ts-deepmerge";const i=r(e(import.meta.url));function u(e){return{name:"aui-vue-plugin",enforce:"post",transform(r,o){if(o.endsWith(".aui.vue")){const t=n.basename(o).replace(".aui.vue",""),i=r.split("export default"),u=`\nconst __aui_comp_define__ = ${i.pop()};\nimport __aui_como_core__ from '${e.coreAlias?e.coreAlias:"agile-core"}';\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}}}const a="Comp",s="// 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({tagPrefix:"aui",buildTime:/* @__PURE__ */(new Date).toISOString()},e||{});return`export default ${JSON.stringify(n)}`}}}}function c(e){const r=(null==(e=t({tagPrefix:"aui"},e||{}))?void 0:e.tagPrefix)||"aui";return{userConfig:{plugins:[{name:"aui-export-plugin",enforce:"pre",transform(e,r){if(r.endsWith(".export.aui.ts")){if(-1===e.indexOf(s))throw new Error(`.export.aui.ts文件必须包含[ ${s} ]标记`);const t=n.dirname(r),i=o.sync("**/*.aui.vue",{cwd:t});if(0===i.length)return null;const u=[];return i.forEach((e,r)=>{const o=n.join(t,e).replace(/\\/g,"/");u.push(`import ${a}${r} from '${o}';`),u.push(`import {componentStructure as ${a}${r}_${r} } from '${o}';`)}),u.push(e.replace(s,function(e){const n=[];return e.forEach((e,r)=>{n.push(`[${a}${r}_${r}.name]: ${a}${r}`)}),n.join(", ")}(i))),{code:u.join("\n")}}return null}},u(e),_(e)],resolve:{alias:{"@auicore":n.resolve(i,"./core")},extensions:[".js",".ts",".jsx",".tsx",".json",".cjs.js",".es.js"]},define:{__AUI_CONFIG__:JSON.stringify(t({tagPrefix:"aui",buildTime:/* @__PURE__ */(new Date).toISOString()},e||{}))}},isCustomElement:e=>e.startsWith(`${r}-`)}}export{c as getAuiConfig};//# sourceMappingURL=plugin.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.es.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(options: AuiOptions): 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 '${options.coreAlias?options.coreAlias:'agile-core'}';\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 const cwd = path.dirname(id);\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 coreAlias?: 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(options), 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":["__dirname","dirname","fileURLToPath","url","auiVuePlugin","options","name","enforce","code","id","endsWith","fileName","path","basename","replace","sp","split","last","pop","coreAlias","join","IMPORT_PREFIX","INSERT_FLAG","auiExportPlugin","indexOf","Error","cwd","files","glob","sync","length","codes","forEach","file","index","filePath","push","_","auiConfigPlugin","virtualModuleId","resolvedVirtualModuleId","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","getAuiConfig","userConfig","plugins","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.es.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(options: AuiOptions): 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 '${options.coreAlias?options.coreAlias:'agile-core'}';\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 const cwd = path.dirname(id);\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 coreAlias?: 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(options), 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":["__dirname","dirname","fileURLToPath","url","auiVuePlugin","options","name","enforce","transform","code","id","endsWith","fileName","path","basename","replace","sp","split","last","pop","coreAlias","join","IMPORT_PREFIX","INSERT_FLAG","auiConfigPlugin","virtualModuleId","resolvedVirtualModuleId","resolveId","load","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","getAuiConfig","userConfig","plugins","indexOf","Error","cwd","files","glob","sync","length","codes","forEach","file","index","filePath","push","_","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"uIAMA,MAGMA,EAAYC,EADCC,cAA0BC,MAI7C,SAASC,EAAaC,GACpB,MAAO,CACLC,KAAM,iBACNC,QAAS,OACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,YAAa,CAC3B,MAAMC,EAAWC,EAAKC,SAASJ,GAAIK,QAAQ,WAAY,IACjDC,EAAKP,EAAKQ,MAAM,kBAChBC,EAAO,iCACSF,EAAGG,0CACAd,EAAQe,UAAUf,EAAQe,UAAU,kFAErCR,kIAMxB,MAAO,CACLH,KAFYO,EAAGK,KAAK,kBAENH,EAElB,CACA,OAAO,IACT,EAEJ,CAGA,MAAMI,EAAgB,OAUhBC,EAAc,YAkCpB,SAASC,EAAgBnB,GACvB,MAAMoB,EAAkB,qBAClBC,EAA0B,KAAOD,EAEvC,MAAO,CACLnB,KAAM,oBACN,SAAAqB,CAAUjB,GACR,GAAIA,IAAOe,EACT,OAAOC,CAEX,EACA,IAAAE,CAAKlB,GACH,GAAIA,IAAOgB,EAAyB,CAClC,MAAMG,EAAYC,EAAM,CACtBC,UAAW,MACXC,0BAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,GACd,MAAO,kBAAkB8B,KAAKC,UAAUP,IAC1C,CACF,EAEJ,CAaO,SAASQ,EAAahC,GAM3B,MAAM0B,GAAY1B,OAJlBA,EAAUyB,EAAM,CACdC,UAAW,OACV1B,GAAW,CAAA,SAEIA,EAAAA,EAAS0B,YAAa,MAExC,MAAO,CACLO,WAAY,CACVC,QAAS,CA3EN,CACLjC,KAAM,oBACNC,QAAS,MACT,SAAAC,CAAUC,EAAMC,GACd,GAAIA,EAAGC,SAAS,kBAAmB,CAEjC,IAAA,IAAIF,EAAK+B,QAAQjB,SACT,IAAIkB,MAAM,yBAAyBlB,SAE3C,MAAMmB,EAAM7B,EAAKZ,QAAQS,GACnBiC,EAAkBC,EAAKC,KAAK,eAAgB,CAChDH,IAAAA,IAGF,GAAqB,IAAjBC,EAAMG,OAAc,OAAO,KAE/B,MAAMC,EAAkB,GAOxB,OANAJ,EAAMK,QAAQ,CAACC,EAAMC,KACnB,MAAMC,EAAWtC,EAAKQ,KAAKqB,EAAKO,GAAMlC,QAAQ,MAAO,KACrDgC,EAAMK,KAAK,UAAU9B,IAAgB4B,WAAeC,OACpDJ,EAAMK,KAAK,iCAAiC9B,IAAgB4B,KAASA,aAAiBC,SAExFJ,EAAMK,KAAK3C,EAAKM,QAAQQ,EAAAA,SAjCZoB,GAClB,MAAMI,EAAkB,GAIxB,OAHAJ,EAAMK,QAAQ,CAACK,EAAGH,KAChBH,EAAMK,KAAK,IAAI9B,IAAgB4B,KAASA,YAAgB5B,IAAgB4B,OAEnEH,EAAM1B,KAAK,KACpB,CA2BgCE,CAAwBoB,KACzC,CAAElC,KAAMsC,EAAM1B,KAAK,MAC5B,CACA,OAAO,IACT,GAiD+BjB,EAAaC,GAAUmB,EAAgBnB,IACpEiD,QAAS,CACPC,MAAO,CACL,WAAkB1C,EAAKyC,QAAQtD,EAAW,WAE5CwD,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,QAAS,UAAW,WAEjEC,OAAQ,CACNC,eAAgBvB,KAAKC,UAAUN,EAAM,CACnCC,UAAW,MACXC,0BAAAA,IAAeC,MAAOC,eACrB7B,GAAW,CAAA,MAGlBsD,gBAAkBC,GAAgBA,EAAIC,WAAW,GAAG9B,MAExD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agile-core",
3
- "version": "3.0.9",
3
+ "version": "3.0.10",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.es.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "scripts": {
34
- "build": "vite build && npx tsc --project tsconfig.build.json",
34
+ "build": "vite build && tsc --project tsconfig.build.json",
35
35
  "dev": "vite build --watch",
36
36
  "prepublishOnly": "npm run build"
37
37
  },