agile-core 3.0.2 → 3.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/dist/core.cjs.js +1 -1
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.d.ts +7 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.es.js +132 -93
- package/dist/core.es.js.map +1 -1
- package/dist/plugin.cjs.js +1 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.es.js +19 -19
- package/dist/plugin.es.js.map +1 -1
- package/package.json +22 -3
package/dist/core.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.es.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\nimport { h, useSlots, useAttrs, onMounted, ref, createApp, defineComponent } from 'vue';\nimport { merge } from 'ts-deepmerge';\nexport { type Component as TraditionComponent } from './types';\n\nconst TAG_PREFIX = __AUI_CONFIG__.tagPrefix || 'aui';\nconst AUI_ATTR_FLAG = 'data-v-aui';\n\nconst shadowSymbol = Symbol('shadow');\n\nexport type HookHandler = (c: any) => void | any;\n\ntype AUI_COMPONENT_OPTION = {\n valueType?: any\n}\n\nexport type Component = ComponentType;\n\ntype AUI_SLOT_CACHE = {\n start: Comment,\n end: Comment,\n};\n\ntype AUI_COMP_SHADOW = {\n el?: HTMLElement | null,\n ref?: Component | null,\n value?: string | null,\n options?: AUI_COMPONENT_OPTION,\n needHook: boolean,\n slot: Record<string, AUI_SLOT_CACHE>,\n};\n\ntype GlobalAuiCore = {\n defined: Record<string, AUI_VUE_DEFINE_CACHE>\n}\n\ntype SlotElement = {\n default: Node[],\n [key: string]: Node[],\n}\n\nfunction getGlobalAuiCore(): GlobalAuiCore {\n if (!Object.prototype.hasOwnProperty.call(window, '__GLOBAL_AUI_CORE__')) {\n Object.defineProperty(window, '__GLOBAL_AUI_CORE__', {\n value: {\n defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>\n },\n writable: false,\n enumerable: false,\n });\n }\n return (window as any)['__GLOBAL_AUI_CORE__'];\n}\n\n\nexport class AuiComponent extends HTMLElement {\n __hasVue__: boolean = false;\n private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\n private [shadowSymbol]: AUI_COMP_SHADOW = { needHook: false, slot: {} };\n\n constructor(options?: AUI_COMPONENT_OPTION) {\n super();\n this[AuiComponent.shadowSymbol].options = options || {};\n this.$initAttrs();\n }\n\n connectedCallback() {\n // console.log('aui component connected:', this.tagName);\n\n if (this.$needInit()) {\n this.$needHook(true);\n this.$initVue();\n }\n\n }\n\n set textContent(v: string) {\n if (!this.$needHook()) {\n super.textContent = v;\n return;\n }\n\n this.$textContent(v);\n }\n\n get textContent() {\n if (!this.$needHook()) {\n return super.textContent || '';\n }\n\n return this.$textContent('default');\n }\n\n set innerHTML(v: string) {\n if (!this.$needHook()) {\n super.innerHTML = v;\n return;\n }\n\n this.$innerHTML(v);\n }\n\n get innerHTML() {\n if (!this.$needHook()) {\n return super.innerHTML || '';\n }\n\n return this.$innerHTML('default');\n }\n\n set innerText(v: string) {\n this.$ignoreLog('innerText');\n super.innerText = v;\n }\n\n prepend<T extends Node>(node: T) {\n if (!this.$needHook()) {\n return super.prepend(node);\n }\n this.$prepend('default', node);\n }\n\n appendChild<T extends Node>(node: T): T {\n if (!this.$needHook()) {\n return super.appendChild(node);\n }\n return this.$appendChild('default', node);\n }\n\n set value(v: string | null) {\n let val: any = v;\n\n const oldValue = this[AuiComponent.shadowSymbol].value;\n let newValue;\n\n if (this.$isArrayValue()) {\n val = AuiComponent.$anyToArray(v);\n newValue = JSON.stringify(val);\n } else {\n newValue = val.toString();\n }\n\n if (oldValue === newValue) return;\n\n this[AuiComponent.shadowSymbol].value = newValue;\n\n if (this[AuiComponent.shadowSymbol].el) {\n this.$attrChange('value');\n }\n }\n\n get value(): any {\n const v = this[AuiComponent.shadowSymbol].value;\n if (this.$isArrayValue()) {\n return typeof v === 'string' ? JSON.parse(v) : v;\n } else {\n return v;\n }\n }\n\n hasAttribute(qualifiedName: string): boolean {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n return shadowElement.hasAttribute(qualifiedName);\n }\n return super.hasAttribute(qualifiedName);\n }\n\n setAttribute(qualifiedName: string, value: string): void {\n value = value.toString();\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n if (shadowElement.getAttribute(qualifiedName) === value) return;\n shadowElement.setAttribute(qualifiedName, value);\n }\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\n if (isShow) {\n super.setAttribute(qualifiedName, value);\n }\n\n if (qualifiedName === 'value' && shadowElement) {\n this.value = shadowElement.getAttribute(qualifiedName);\n } else {\n this.$attrChange(qualifiedName);\n }\n }\n\n getAttribute(qualifiedName: string): string | null {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n return shadowElement ? shadowElement.getAttribute(qualifiedName) : super.getAttribute(qualifiedName);\n }\n\n removeAttribute(qualifiedName: string): void {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (shadowElement) {\n shadowElement.removeAttribute(qualifiedName);\n }\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\n if (isShow) {\n super.removeAttribute(qualifiedName);\n }\n this.$attrChange(qualifiedName);\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n const shadowElement = this[AuiComponent.shadowSymbol].el;\n if (!shadowElement) return;\n if (oldValue === newValue) return;\n\n if (!this.$isShowProp(_M.vueAttrName(name))) {\n super.removeAttribute(name);\n }\n\n shadowElement.setAttribute(name, newValue || '');\n if (name !== 'value') {\n this.$attrChange(name);\n }\n\n }\n\n // ---------------------------\n\n static $anyToArray(s: any): any {\n let arr = [];\n if (typeof s === 'string') {\n try {\n const json = JSON.parse(s);\n if (json instanceof Array) {\n return json;\n }\n } catch (_) { }\n const sp = s.split(',');\n arr = sp.filter((item) => item ? item.trim() : false);\n } else if (s instanceof Array) {\n arr = s;\n }\n\n return arr;\n }\n\n // ---------------------------\n\n $textContent(name: string, ...args: any): string {\n if (args.length === 0) {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n ret.push(next.textContent);\n }\n return ret.join('');\n\n } else {\n this.$replaceChildren(name, [document.createTextNode(args[0] || '')]);\n }\n return '';\n }\n\n $innerHTML(name: string, ...args: any): string {\n if (args.length === 0) {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n if ((next as any).outerHTML) {\n ret.push((next as any).outerHTML);\n } else {\n let text = next.textContent;\n if (next instanceof Comment) {\n text = `<!--${text}-->`;\n }\n ret.push(text);\n }\n\n }\n return ret.join('');\n\n } else {\n const tpl = document.createElement('div');\n tpl.innerHTML = args[0] || '';\n const children = this.$moveChildren(tpl as any);\n this.$replaceChildren(name, children.default);\n }\n return '';\n }\n\n $prepend<T extends Node>(name: string, node: T) {\n const { start } = this.$slot(name) || {};\n start?.parentNode?.insertBefore(node, start.nextSibling);\n }\n\n $appendChild<T extends Node>(name: string, node: T): T {\n const { end } = this.$slot(name) || {};\n end?.parentNode?.insertBefore(node, end);\n return node;\n }\n\n $childNodes(name?: string): NodeListOf<ChildNode> {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n ret.push(next);\n }\n return ret as any;\n }\n\n $children(name?: string): HTMLCollection {\n const ret = [];\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = start;\n while (next && (next = next.nextSibling) && next !== end) {\n if (next instanceof HTMLElement) {\n ret.push(next);\n }\n }\n return ret as any;\n }\n\n $replaceChildren(name: string, children: any[]) {\n const { start, end } = this.$slot(name) || {};\n let next: Comment | Node | ChildNode | null | undefined = null;\n while (start && (next = start.nextSibling) && next !== end) {\n next.parentNode?.removeChild(next);\n }\n if (end) {\n while (next = children.shift()) {\n end.parentNode?.insertBefore(next, end);\n }\n }\n }\n\n $slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined {\n name = name || 'default';\n if (slot) {\n this[AuiComponent.shadowSymbol].slot[name] = slot;\n } else {\n return this[AuiComponent.shadowSymbol].slot[name];\n }\n }\n\n $needHook(need?: boolean): boolean {\n if (typeof need === 'boolean') {\n this[AuiComponent.shadowSymbol].needHook = need;\n }\n return this[AuiComponent.shadowSymbol].needHook;\n }\n\n $ignoreLog(name: string) {\n console.warn(`aui component ignore : ${name}`);\n }\n\n $moveChildren(el?: AuiComponent): SlotElement {\n el = el || this;\n const list = el.childNodes;\n const ret: SlotElement = {\n default: []\n };\n while (list.length > 0) {\n const child = list[0] as AuiSlot;\n child.parentNode?.removeChild(child);\n if (AuiSlot.$isForAuiSlot(child)) {\n const name = child.getAttribute('for') || 'default';\n ret[name] = ret[name] || [];\n const children = Array.prototype.slice.call(child.childNodes);\n AuiSlot.prototype.$bind.call(child, el);\n ret[name].push(...children);\n } else {\n ret['default'].push(child);\n }\n }\n return ret;\n }\n\n $isArrayValue() {\n return this[AuiComponent.shadowSymbol].options?.valueType === Array;\n }\n\n $attrChange(name: string) {\n if (name === 'value') {\n const val = this.value;\n if (super.hasAttribute(AUI_ATTR_FLAG)) {\n this.$call('$emit', `update:value`, val);\n } else {\n super.dispatchEvent(new CustomEvent('input', {\n bubbles: true,\n composed: true,\n }));\n // super.dispatchEvent(new CustomEvent('change', {\n // bubbles: true,\n // composed: true,\n // }));\n }\n }\n this.dispatchEvent(new CustomEvent('aui-attr-change', {\n bubbles: true,\n composed: true,\n detail: { attributeName: _M.vueAttrName(name) }\n }));\n }\n\n $initAttrs() {\n const attributes = this.attributes;\n const shadow = document.createElement('div');\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n shadow.setAttribute(attr.name, attr.value);\n if (!this.$isShowProp(_M.vueAttrName(attr.name))) {\n super.removeAttribute(attr.name);\n }\n if (attr.name === 'value') {\n this.value = attr.value;\n }\n }\n Object.defineProperty(this, 'attributes', {\n get value() {\n return shadow.attributes;\n },\n writable: false,\n });\n\n this[AuiComponent.shadowSymbol].el = shadow;\n }\n\n $isShowProp(name: string): boolean {\n if (_M.isVueAttr(name)) return true;\n const prop = this.$getProp(name);\n // console.log('name:', name)\n const isShow = prop?.show;\n return isShow;\n }\n\n $getProp(name: string): any {\n const auiVueDefined = _M.cache.getAuiVueDefined(this.tagName);\n const props = (auiVueDefined?.origin as any)?.props || {};\n return props[name];\n }\n\n $initVue() {\n if (this.__hasVue__) {\n return;\n }\n this.__hasVue__ = true;\n\n const tagName = this.tagName.toLowerCase();\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n if (!auiVueDefined) {\n console.warn(`AUI组件 [${this.tagName}] 未定义`);\n return;\n }\n createApp(_M.createVueComponent(tagName, this)).mount(this);\n }\n\n $needInit() {\n const flag = super.hasAttribute(AUI_ATTR_FLAG);\n if (flag) {\n return false;\n }\n\n return true;\n }\n\n $bindVue(v: Component) {\n if (this[AuiComponent.shadowSymbol].ref) {\n return;\n }\n // Object.assign(v, { $aui: this });\n this[AuiComponent.shadowSymbol].ref = v;\n this.__hasVue__ = true;\n // 触发init事件\n const event = new CustomEvent('aui-init', {\n bubbles: false,\n detail: { code: 0 }\n });\n this.dispatchEvent(event);\n const auiInit = (_M.cache.getAuiVueDefined(this.tagName)?.origin as any)?.auiInit;\n if (auiInit) {\n auiInit.call(v);\n }\n }\n\n $call(name?: string, ...args: any[]): any {\n const ref = this[AuiComponent.shadowSymbol].ref as Record<string, any>;\n return _M.$call(ref, name, ...args);\n }\n\n}\n\ntype TypeAuiComponent = typeof AuiComponent;\n\ntype AUI_VUE_DEFINE_CACHE = {\n aui?: TypeAuiComponent,\n vue?: Component,\n origin?: Component,\n hooks?: HookHandler[],\n}\n\n\nclass AuiSlot extends HTMLElement {\n\n _el_?: AuiComponent;\n _name_?: string;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.style.display = 'none';\n }\n\n set textContent(v: string) {\n if (this._name_) {\n this._el_?.$textContent(this._name_, v);\n } else {\n super.textContent = v;\n }\n }\n\n set innerHTML(v: string) {\n if (this._name_) {\n this._el_?.$innerHTML(this._name_, v);\n } else {\n super.innerHTML = v;\n }\n }\n\n prepend<T extends Node>(node: T): void {\n if (this._name_) {\n this._el_?.$prepend(this._name_, node);\n } else {\n super.prepend(node);\n }\n }\n\n appendChild<T extends Node>(node: T): T {\n if (this._name_) {\n this._el_?.$appendChild(this._name_, node);\n return node;\n } else {\n return super.appendChild(node);\n }\n }\n\n // ---------------------\n\n static $isAuiSlot(el: HTMLElement) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n\n if (el.tagName.toLowerCase() === 'aui-slot') return true;\n\n return false;\n }\n\n static $isForAuiSlot(el: HTMLElement) {\n if (AuiSlot.$isAuiSlot(el) && el.hasAttribute('for')) return true;\n return false;\n }\n\n $bind(el: AuiComponent) {\n this._el_ = el;\n this._name_ = this.getAttribute('for') || 'default';\n }\n\n $replace(el: AuiComponent) {\n const name = this.getAttribute('name') || 'default';\n const start = document.createComment(`aui-slot-${name}-start`);\n const end = document.createComment(`aui-slot-${name}-end`);\n\n el.$slot(name, { start, end });\n this.replaceWith(start, end);\n }\n}\n\nconst _M = {\n init() {\n _M.defineSlot();\n return _M;\n },\n defineSlot() {\n try {\n customElements.define('aui-slot', AuiSlot);\n } catch (error) { }\n },\n $call(ref: Record<string, any>, name?: string, ...args: any[]): any {\n\n if (!ref) {\n return new Error('not init');\n }\n\n if (!name) return ref;\n\n if (typeof ref[name] === 'function') {\n return ref[name].call(ref, ...args);\n }\n\n const sp = name.split('.');\n let target = ref, last = sp.pop() || '', cur = null;\n\n while (cur = sp.shift()) {\n if (Object.prototype.hasOwnProperty.call(target, cur)) {\n target = target[cur];\n } else {\n return new Error('no match name');\n }\n }\n\n if (args.length === 0) {\n return target[last];\n } else {\n target[last] = args[0];\n return null;\n }\n\n },\n formatName(name: string | undefined): string {\n if (!name) {\n return '';\n }\n name = name.replace(/[A-Z]/g, function (s) {\n return '-' + s.toLowerCase();\n });\n return TAG_PREFIX + name;\n },\n cache: {\n defined: getGlobalAuiCore().defined,\n getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined {\n tagName = tagName.toLowerCase();\n return _M.cache.defined[tagName];\n },\n getAuiPropNames(tagName: string): string[] {\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n const props = (auiVueDefined?.origin as any)?.props || {};\n const names = [];\n for (const key in props) {\n names.push(_M.auiAttrName(key));\n }\n return names;\n },\n addHooks(name: string, handle: HookHandler) {\n name = name.toLowerCase();\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\n if (auiVueDefined) {\n auiVueDefined.hooks = auiVueDefined.hooks || [];\n auiVueDefined.hooks.push(handle);\n } else {\n _M.cache.defined[name] = {\n hooks: [handle],\n }\n }\n }\n },\n createExtendComp(v: Component): Component {\n return defineComponent({\n props: {\n auiExtend: {\n type: String,\n },\n value: {\n type: (v as any).props?.value?.type || [String, Number, Array],\n }\n },\n methods: {\n $anyToArray: AuiComponent.$anyToArray,\n $value(...args: any[]) {\n const $aui = this.$aui();\n if (args.length === 0) {\n return $aui?.value;\n } else {\n if ($aui) {\n $aui.value = args[0];\n }\n }\n },\n $call(name?: string, ...args: any[]): any {\n const $aui = this.$aui();\n if (!$aui) return null;\n return _M.$call($aui, name, ...args);\n },\n $aui(): AuiComponent | null {\n return this.$el?.parentNode;\n },\n },\n data() {\n return {\n\n }\n }\n })\n },\n patchDefaultProps(origin: Component): any {\n\n const valueType = (origin as any).props?.value?.type;\n\n if (!(origin as any).mixins) {\n (origin as any).mixins = [];\n }\n\n (origin as any).mixins.push(_M.createExtendComp(origin));\n\n return valueType;\n\n },\n defineAuiComponent(tagName: string, component: Component, origin: Component) {\n\n const valueType = _M.patchDefaultProps(origin);\n\n if (!_M.cache.defined[tagName]?.origin) {\n class AuiChild extends AuiComponent {\n constructor() {\n super({ valueType });\n }\n\n static get observedAttributes() {\n return _M.cache.getAuiPropNames(tagName);\n }\n\n }\n\n _M.cache.defined[tagName] = {\n aui: AuiChild,\n vue: component,\n origin,\n hooks: _M.cache.defined[tagName]?.hooks || [],\n };\n\n customElements.define(tagName, AuiChild);\n\n } else {\n _M.cache.defined[tagName].origin = origin;\n }\n },\n\n define(v: Component, force: boolean = false): Component {\n const tagName = _M.formatName(v.name);\n\n // console.log('define aui comp, name is', tagName);\n\n if (!tagName) {\n console.warn('当前组件不符合AUI定义');\n return v;\n }\n\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n\n if (auiVueDefined && auiVueDefined.vue) {\n if (!force) {\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\n } else {\n console.log('aui组件更新origin定义');\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\n }\n\n return auiVueDefined.vue;\n }\n\n const wrappedComponent = _M.createVueComponent(tagName);\n\n _M.defineAuiComponent(tagName, wrappedComponent, v);\n\n return wrappedComponent;\n },\n createTempSlot(children: SlotElement): any {\n const ret = {} as { [key: string]: any };\n Object.keys(children).forEach((name) => {\n ret[name] = () => h('aui-slot', { name });\n });\n return ret;\n },\n replaceTempSlot(el: AuiComponent, children: SlotElement) {\n const names = Object.keys(children);\n names.forEach((name) => {\n const slot = el.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot | null;\n if (slot) {\n AuiSlot.prototype.$replace.call(slot, el);\n el.$replaceChildren(name, children[name]);\n }\n });\n\n },\n createVueComponent(tagName: string, el?: AuiComponent): Component {\n\n const children = el ? el.$moveChildren() : { default: [] };\n\n const wrappedComponent = {\n setup() {\n const attrs = useAttrs()\n const vueComponentRef = ref<any>(null)\n const elementRef = ref<AuiComponent | null>(null)\n const selfAttrs = ref<Record<string, any>>({})\n const slotsRef = ref<any>(el ? _M.createTempSlot(children) : useSlots())\n let target: Component | null;\n\n onMounted(() => {\n if (vueComponentRef.value && elementRef.value && elementRef.value.$bindVue) {\n elementRef.value.$bindVue(vueComponentRef.value);\n\n el && _M.replaceTempSlot(el, children);\n\n // 监听属性变化事件\n elementRef.value.addEventListener('aui-attr-change', () => {\n if (elementRef.value) {\n selfAttrs.value = _M.getAuiAttrs(elementRef.value);\n }\n });\n\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\n } else {\n console.warn('AUI组件绑定失败');\n }\n })\n\n return () => {\n\n if (el) {\n elementRef.value = el;\n selfAttrs.value = _M.getAuiAttrs(el);\n }\n\n if (!target) {\n target = _M.formatStructure(tagName);\n }\n\n if (!target) {\n console.warn('AUI组件未定义,加载失败,name:', tagName);\n return null;\n }\n\n const trueComp = h(target, { ...attrs, ...selfAttrs.value, ref: vueComponentRef }, slotsRef.value || {});\n\n const ret = el ? trueComp : h(tagName, { ref: elementRef, [AUI_ATTR_FLAG]: '' }, [\n trueComp\n ]);\n\n return ret;\n }\n }\n };\n\n return wrappedComponent;\n },\n getAuiAttrs(el: AuiComponent): Record<string, any> {\n\n const attrs = {} as Record<string, any>;\n\n const attributes = el.attributes;\n\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n // 跳过 aui 和 vue 标记属性\n if (attr.name === TAG_PREFIX || _M.isVueAttr(attr.name)) continue;\n attrs[attr.name] = attr.value;\n }\n\n if (el.value !== null) {\n attrs.value = el.value;\n }\n\n return attrs;\n },\n isVueAttr(name: string): boolean {\n return name.indexOf('data-v-') === 0;\n },\n auiAttrName(name: string): string {\n return name.replace(/([A-Z])/g, (a) => '-' + a.toLowerCase());\n },\n vueAttrName(name: string): string {\n if (_M.isVueAttr(name)) return name;\n return name.replace(/-([a-z])/g, (_, s1) => s1.toUpperCase());\n },\n hookStructure(name: string, handle: HookHandler) {\n _M.cache.addHooks(name, handle);\n },\n getHookStructure(name: string): HookHandler[] {\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\n const hooks = auiVueDefined?.hooks || [];\n return hooks.slice(0);\n },\n formatStructure(tagName: string): Component | null {\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\n if (!auiVueDefined?.origin) {\n return null;\n }\n let origin = merge({}, auiVueDefined.origin) as Component;\n const hooks = _M.getHookStructure(tagName);\n let handle;\n while (handle = hooks.shift()) {\n const cur = handle(origin);\n if (cur) {\n origin = cur;\n }\n }\n\n return origin;\n }\n};\n\nexport default _M.init();"],"names":["_a","_b","TAG_PREFIX","__AUI_CONFIG__","tagPrefix","AUI_ATTR_FLAG","shadowSymbol","Symbol","AuiComponent","HTMLElement","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$needHook","$initVue","v","$textContent","textContent","$innerHTML","innerHTML","$ignoreLog","innerText","node","prepend","$prepend","$appendChild","appendChild","val","oldValue","value","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","qualifiedName","shadowElement","hasAttribute","getAttribute","setAttribute","$isShowProp","_M","vueAttrName","removeAttribute","name","s","arr","json","Array","_","split","filter","item","trim","args","length","ret","start","end","$slot","next","nextSibling","push","join","$replaceChildren","document","createTextNode","outerHTML","text","Comment","tpl","createElement","children","$moveChildren","default","parentNode","insertBefore","removeChild","shift","need","list","childNodes","child","AuiSlot","$isForAuiSlot","prototype","slice","call","$bind","valueType","$call","dispatchEvent","CustomEvent","bubbles","composed","detail","attributeName","attributes","shadow","i","attr","Object","defineProperty","writable","isVueAttr","prop","$getProp","isShow","show","auiVueDefined","cache","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","ref","event","code","auiInit","constructor","style","display","_name_","_el_","nodeType","Node","ELEMENT_NODE","$isAuiSlot","createComment","replaceWith","init","defineSlot","customElements","define","error","Error","sp","target","last","pop","cur","hasOwnProperty","formatName","replace","defined","window","enumerable","names","key","auiAttrName","handle","hooks","createExtendComp","defineComponent","auiExtend","type","String","Number","methods","$aui","$el","data","mixins","component","patchDefaultProps","AuiChild","observedAttributes","getAuiPropNames","aui","vue","force","defineAuiComponent","wrappedComponent","keys","forEach","h","querySelector","$replace","setup","attrs","useAttrs","vueComponentRef","elementRef","selfAttrs","slotsRef","createTempSlot","useSlots","onMounted","$bindVue","replaceTempSlot","addEventListener","getAuiAttrs","formatStructure","trueComp","indexOf","a","s1","toUpperCase","addHooks","merge","getHookStructure","core"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.es.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\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 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 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\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 $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 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 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 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 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\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 _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, 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 auix: {\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: boolean = 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;\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","$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","opts","dispatchEvent","CustomEvent","Object","assign","bubbles","composed","cancelable","$forceUpdate","slotCollection","children","$slotCollection","$customEvent","cache","start","end","child","nextSibling","parentNode","removeChild","push","$slotReplace","querySelector","$replace","$replaceChildren","args","length","ret","$slot","next","join","document","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","insertBefore","shift","need","list","childNodes","AuiSlot","$isForAuiSlot","prototype","slice","call","$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","ref","code","auiInit","constructor","connectedCallback","style","display","_name_","_el_","nodeType","Node","ELEMENT_NODE","$isAuiSlot","createComment","replaceWith","init","defineSlot","defineCustomElement","Error","sp","target","last","pop","cur","hasOwnProperty","formatName","replace","defined","window","enumerable","names","key","auiAttrName","handle","hooks","createExtendComp","defineComponent","auix","type","String","Number","methods","$aui","$el","data","mixins","component","patchDefaultProps","AuiChild","observedAttributes","getAuiPropNames","aui","vue","cls","customElements","define","__hmrId","querySelectorAll","forEach","comp","force","sameComponent","defineAuiComponent","notifyComponentUpdate","wrappedComponent","keys","h","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","createTempSlot","useSlots","onMounted","$bindVue","replaceTempSlot","addEventListener","getAuiAttrs","onUpdated","formatStructure","trueComp","indexOf","a","s1","toUpperCase","addHooks","merge","getHookStructure","core"],"mappings":"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"}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -1 +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
|
|
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 i=n.dirname(t),o=r.glob.sync("**/*.aui.vue",{cwd:i});if(0===o.length)return null;const u=[];return o.forEach((e,r)=>{const t=n.join(i,e).replace(/\\/g,"/");u.push(`import ${s}${r} from '${t}';`),u.push(`import {componentStructure as ${s}${r}_${r} } from '${t}';`)}),u.push(e.replace(c,function(e){const n=[];return e.forEach((e,r)=>{n.push(`[${s}${r}_${r}.name]: ${s}${r}`)}),n.join(", ")}(o))),{code:u.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
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -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(): 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
|
|
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 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};\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","files","glob","sync","length","codes","forEach","file","index","filePath","join","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,YAkCpB,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,CA1EN,CACLf,KAAM,oBACNgB,QAAS,MACT,SAAAC,CAAUC,EAAMhB,GACd,GAAIA,EAAGiB,SAAS,kBAAmB,CAEjC,QAAID,EAAKE,QAAQzB,SACT,IAAI0B,MAAM,yBAAyB1B,SAE3C,MAAM2B,EAAMC,EAAK9B,QAAQS,GACnBsB,EAAkBC,EAAAA,KAAKC,KAAK,eAAgB,CAChDJ,QAGF,GAAqB,IAAjBE,EAAMG,OAAc,OAAO,KAE/B,MAAMC,EAAkB,GAOxB,OANAJ,EAAMK,QAAQ,CAACC,EAAMC,KACnB,MAAMC,EAAWT,EAAKU,KAAKX,EAAKQ,GAAMI,QAAQ,MAAO,KACrDN,EAAMO,KAAK,UAAUzC,IAAgBqC,WAAeC,OACpDJ,EAAMO,KAAK,iCAAiCzC,IAAgBqC,KAASA,aAAiBC,SAExFJ,EAAMO,KAAKjB,EAAKgB,QAAQvC,EAjChC,SAAoB6B,GAClB,MAAMI,EAAkB,GAIxB,OAHAJ,EAAMK,QAAQ,CAACO,EAAGL,KAChBH,EAAMO,KAAK,IAAIzC,IAAgBqC,KAASA,YAAgBrC,IAAgBqC,OAEnEH,EAAMK,KAAK,KACpB,CANA,CAiCwDT,KACzC,CAAEN,KAAMU,EAAMK,KAAK,MAC5B,CACA,OAAO,IACT,GAlEK,CACLjC,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,EAAGN,KAAK,kBAENQ,EAElB,CACA,OAAO,IACT,GA4F+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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAA;AA2G9C,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C,CAAC;AAGF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CA0B/D"}
|
package/dist/plugin.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fileURLToPath as e } from "url";
|
|
2
2
|
import n, { dirname as t } from "path";
|
|
3
|
-
import { glob as
|
|
4
|
-
import { merge as
|
|
3
|
+
import { glob as r } from "glob";
|
|
4
|
+
import { merge as o } from "ts-deepmerge";
|
|
5
5
|
const i = "auicore", u = t(e(import.meta.url));
|
|
6
6
|
const a = "Comp";
|
|
7
7
|
const s = "// insert";
|
|
@@ -9,18 +9,18 @@ function _() {
|
|
|
9
9
|
return { name: "aui-export-plugin", enforce: "pre", transform(e2, t2) {
|
|
10
10
|
if (t2.endsWith(".export.aui.ts")) {
|
|
11
11
|
if (-1 === e2.indexOf(s)) throw new Error(`.export.aui.ts文件必须包含[ ${s} ]标记`);
|
|
12
|
-
const
|
|
13
|
-
if (0 ===
|
|
14
|
-
const
|
|
15
|
-
return
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
}),
|
|
12
|
+
const o2 = n.dirname(t2), i2 = r.sync("**/*.aui.vue", { cwd: o2 });
|
|
13
|
+
if (0 === i2.length) return null;
|
|
14
|
+
const u2 = [];
|
|
15
|
+
return i2.forEach((e3, t3) => {
|
|
16
|
+
const r2 = n.join(o2, e3).replace(/\\/g, "/");
|
|
17
|
+
u2.push(`import ${a}${t3} from '${r2}';`), u2.push(`import {componentStructure as ${a}${t3}_${t3} } from '${r2}';`);
|
|
18
|
+
}), u2.push(e2.replace(s, function(e3) {
|
|
19
19
|
const n2 = [];
|
|
20
|
-
return e3.forEach((e4,
|
|
21
|
-
n2.push(`[${a}${
|
|
20
|
+
return e3.forEach((e4, t3) => {
|
|
21
|
+
n2.push(`[${a}${t3}_${t3}.name]: ${a}${t3}`);
|
|
22
22
|
}), n2.join(", ");
|
|
23
|
-
}(
|
|
23
|
+
}(i2))), { code: u2.join("\n") };
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
} };
|
|
@@ -31,29 +31,29 @@ function c(e2) {
|
|
|
31
31
|
if (e3 === n2) return t2;
|
|
32
32
|
}, load(n3) {
|
|
33
33
|
if (n3 === t2) {
|
|
34
|
-
const n4 =
|
|
34
|
+
const n4 = o({ tagPrefix: "aui", buildTime: (/* @__PURE__ */ new Date()).toISOString() }, e2 || {});
|
|
35
35
|
return `export default ${JSON.stringify(n4)}`;
|
|
36
36
|
}
|
|
37
37
|
} };
|
|
38
38
|
}
|
|
39
39
|
function getAuiConfig(e2) {
|
|
40
|
-
e2 =
|
|
40
|
+
e2 = o({ tagPrefix: "aui" }, e2 || {});
|
|
41
41
|
const t2 = (e2 == null ? void 0 : e2.tagPrefix) || "aui";
|
|
42
42
|
return { userConfig: { plugins: [_(), { name: "aui-vue-plugin", enforce: "post", transform(e3, t3) {
|
|
43
43
|
if (t3.endsWith(".aui.vue")) {
|
|
44
|
-
const
|
|
45
|
-
const __aui_comp_define__ = ${
|
|
44
|
+
const r2 = n.basename(t3).replace(".aui.vue", ""), o2 = e3.split("export default"), u2 = `
|
|
45
|
+
const __aui_comp_define__ = ${o2.pop()};
|
|
46
46
|
import __aui_como_core__ from '@${i}';
|
|
47
47
|
if(!__aui_comp_define__.name) {
|
|
48
|
-
__aui_comp_define__.name = '${
|
|
48
|
+
__aui_comp_define__.name = '${r2}';
|
|
49
49
|
}
|
|
50
50
|
export const componentStructure = __aui_comp_define__;
|
|
51
51
|
export default __aui_como_core__.define(__aui_comp_define__);
|
|
52
52
|
`;
|
|
53
|
-
return { code:
|
|
53
|
+
return { code: o2.join("export default") + u2 };
|
|
54
54
|
}
|
|
55
55
|
return null;
|
|
56
|
-
} }, c(e2)], resolve: { alias: { [`@${i}`]: n.resolve(u, "./core") }, extensions: [".js", ".ts", ".jsx", ".tsx", ".json", ".cjs.js", ".es.js"] }, define: { __AUI_CONFIG__: JSON.stringify(
|
|
56
|
+
} }, c(e2)], resolve: { alias: { [`@${i}`]: n.resolve(u, "./core") }, extensions: [".js", ".ts", ".jsx", ".tsx", ".json", ".cjs.js", ".es.js"] }, define: { __AUI_CONFIG__: JSON.stringify(o({ tagPrefix: "aui", buildTime: (/* @__PURE__ */ new Date()).toISOString() }, e2 || {})) } }, isCustomElement: (e3) => e3.startsWith(`${t2}-`) };
|
|
57
57
|
}
|
|
58
58
|
export {
|
|
59
59
|
getAuiConfig
|
package/dist/plugin.es.js.map
CHANGED
|
@@ -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(): 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
|
|
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(): 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 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};\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","__dirname","dirname","fileURLToPath","url","IMPORT_PREFIX","INSERT_FLAG","auiExportPlugin","name","enforce","code","id","endsWith","indexOf","Error","cwd","path","files","glob","sync","length","codes","forEach","file","index","filePath","join","replace","push","_","auiConfigPlugin","options","virtualModuleId","resolvedVirtualModuleId","auiConfig","merge","tagPrefix","buildTime","Date","toISOString","JSON","stringify","getAuiConfig","userConfig","plugins","fileName","basename","sp","split","last","pop","resolve","alias","extensions","define","__AUI_CONFIG__","isCustomElement","tag","startsWith"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agile-core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.7",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"module": "dist/index.es.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,9 +35,28 @@
|
|
|
35
35
|
"dev": "vite build --watch",
|
|
36
36
|
"prepublishOnly": "npm run build"
|
|
37
37
|
},
|
|
38
|
-
"author":
|
|
38
|
+
"author": {
|
|
39
|
+
"name": "nandy007",
|
|
40
|
+
"url": "https://gitee.com/nandy007"
|
|
41
|
+
},
|
|
39
42
|
"license": "MIT",
|
|
40
|
-
"description": "",
|
|
43
|
+
"description": "Agile Core - A powerful component based micro front-end framework",
|
|
44
|
+
"homepage": "https://gitee.com/nandy007/agile-core#readme",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://gitee.com/nandy007/agile-core.git"
|
|
48
|
+
},
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://gitee.com/nandy007/agile-core/issues"
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"vue",
|
|
54
|
+
"vite",
|
|
55
|
+
"aui",
|
|
56
|
+
"agile",
|
|
57
|
+
"framework",
|
|
58
|
+
"development"
|
|
59
|
+
],
|
|
41
60
|
"peerDependencies": {
|
|
42
61
|
"vite": ">=7.0.0",
|
|
43
62
|
"vue": ">=3.0.0"
|