agile-core 3.0.10 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.cjs.js +1 -1
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.d.ts +6 -3
- package/dist/core.d.ts.map +1 -1
- package/dist/core.es.js +1 -1
- package/dist/core.es.js.map +1 -1
- package/package.json +1 -1
package/dist/core.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("ts-deepmerge");var n,o;const r=function(){try{return __AUI_CONFIG__}catch(e){return{tagPrefix:"aui"}}}().tagPrefix||"aui",i="data-v-aui",s="auix",l=Symbol("shadow"),a=class t extends(o=HTMLElement,n=l,o){constructor(e){super(),this.__hasVue__=!1,this[n]={needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$initVue(),this.$needHook(!0))}set innerHTML(e){this.$needHook()?this.$innerHTML("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set textContent(e){this.$needHook()?this.$textContent("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get textContent(){return this.$needHook()?this.$textContent("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set innerText(e){this.$ignoreLog("innerText"),Reflect.set(HTMLElement.prototype,"innerText",e,this)}set value(e){let n=e;const o=this[t.shadowSymbol].value;let r;this.$isArrayValue()?(n=t.$anyToArray(e),r=JSON.stringify(n)):r=n.toString(),o!==r&&(this[t.shadowSymbol].value=r,this[t.shadowSymbol].el&&this.$attrChange("value"))}get value(){const e=this[t.shadowSymbol].value;return this.$isArrayValue()&&"string"==typeof e?JSON.parse(e):e}prepend(e){if(!this.$needHook())return HTMLElement.prototype.prepend.call(this,e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):HTMLElement.prototype.appendChild.call(this,e)}insertBefore(e,t){return this.$needHook()?this.$insertBefore("default",e,t):HTMLElement.prototype.insertBefore.call(this,e,t)}hasAttribute(e){const n=this[t.shadowSymbol].el;return n?n.hasAttribute(e):HTMLElement.prototype.hasAttribute.call(this,e)}setAttribute(e,n){n=n.toString();const o=this[t.shadowSymbol].el;if(o){if(o.getAttribute(e)===n)return;o.setAttribute(e,n)}this.$isShowProp(c.vueAttrName(e))&&HTMLElement.prototype.setAttribute.call(this,e,n),"value"===e&&o?this.value=o.getAttribute(e):this.$attrChange(e)}getAttribute(e){const n=this[t.shadowSymbol].el;return n?n.getAttribute(e):super.getAttribute(e)}removeAttribute(e){const n=this[t.shadowSymbol].el;n&&n.removeAttribute(e),this.$isShowProp(c.vueAttrName(e))&&HTMLElement.prototype.removeAttribute.call(this,e),this.$attrChange(e)}attributeChangedCallback(e,n,o){const r=this[t.shadowSymbol].el;r&&n!==o&&(this.$isShowProp(c.vueAttrName(e))||HTMLElement.prototype.removeAttribute.call(this,e),r.setAttribute(e,o||""),"value"!==e&&this.$attrChange(e))}static $anyToArray(e){let t=[];if("string"==typeof e){try{const t=JSON.parse(e);if(t instanceof Array)return t}catch(n){}t=e.split(",").filter(e=>!!e&&e.trim())}else e instanceof Array&&(t=e);return t}$resetShadowSymbol(){this[t.shadowSymbol]={needHook:!1,slot:{}}}$customEvent(e,t){this.dispatchEvent(new CustomEvent(e,Object.assign({bubbles:!1,composed:!1,cancelable:!0},t||{})))}$forceUpdate(){let e=null;const n=this[t.shadowSymbol].slot;for(const t in n){const o=this.$slotCollection(n[t]);e||(e={}),e[t]=o}e&&(this[t.shadowSymbol].slotCollection=e),this.$customEvent("aui-force-update")}$slotCollection(e){var t;const{start:n,end:o}=e,r=[];let i;for(;n&&(i=n.nextSibling)&&i!==o;)null==(t=n.parentNode)||t.removeChild(i),r.push(i);return r}$slotReplace(){const e=this[t.shadowSymbol].slotCollection;if(e){delete this[t.shadowSymbol].slotCollection;for(const t in e)this.querySelector(`aui-slot[name="${t}"]`).$replace(this),this.$replaceChildren(t,e[t])}}$textContent(e,...t){if(0===t.length){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)t.push(r.textContent);return t.join("")}return this.$hasSlot()?(this.$replaceChildren(e,[document.createTextNode(t[0]||"")]),""):""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)if(r.outerHTML)t.push(r.outerHTML);else{let e=r.textContent;r instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{if(!this.$hasSlot())return"";const n=document.createElement("div");n.innerHTML=t[0]||"";const o=this.$moveChildren(n);this.$replaceChildren(e,o.default)}return""}$prepend(e,t){var n;const{start:o}=this.$slot(e)||{};null==(n=null==o?void 0:o.parentNode)||n.insertBefore(t,o.nextSibling)}$appendChild(e,t){var n;const{end:o}=this.$slot(e)||{};return null==(n=null==o?void 0:o.parentNode)||n.insertBefore(t,o),t}$insertBefore(e,t,n){const{start:o}=this.$slot(e)||{},r=(null==o?void 0:o.parentNode)||this;return n?r===this?HTMLElement.prototype.insertBefore.call(this,t,n):r.insertBefore(t,n):this.appendChild(t),t}$childNodes(e){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)t.push(r);return t}$children(e){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)r instanceof HTMLElement&&t.push(r);return t}$replaceChildren(e,t){var n,o;const{start:r,end:i}=this.$slot(e)||{};let s=null;for(;r&&(s=r.nextSibling)&&s!==i;)null==(n=s.parentNode)||n.removeChild(s);if(i)for(;s=t.shift();)null==(o=i.parentNode)||o.insertBefore(s,i)}$slot(e,n){if(e=e||"default",!n)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=n}$hasSlot(){return Object.keys(this[t.shadowSymbol].slot).length>0}$needHook(e){return"boolean"==typeof e&&(this[t.shadowSymbol].needHook=e),this[t.shadowSymbol].needHook}$ignoreLog(e){}$moveChildren(e){var t;const n=(e=e||this).childNodes,o={default:[]};for(;n.length>0;){const r=n[0];if(null==(t=r.parentNode)||t.removeChild(r),h.$isForAuiSlot(r)){const t=r.getAttribute("for")||"default";o[t]=o[t]||[];const n=Array.prototype.slice.call(r.childNodes);h.prototype.$bind.call(r,e),o[t].push(...n)}else o.default.push(r)}return o}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;HTMLElement.prototype.hasAttribute.call(this,i)?this.$call("$emit","update:value",e):this.$customEvent("input",{bubbles:!0,composed:!0})}this.$customEvent("aui-attr-change",{bubbles:!0,composed:!0,detail:{attributeName:c.vueAttrName(e)}})}$initAttrs(){const e=this.attributes,n=document.createElement("div");for(let t=0;t<e.length;t++){const o=e[t];n.setAttribute(o.name,o.value),this.$isShowProp(c.vueAttrName(o.name))||HTMLElement.prototype.removeAttribute.call(this,o.name),"value"===o.name&&(this.value=o.value)}Object.defineProperty(this,"attributes",{get value(){return n.attributes},writable:!1}),this[t.shadowSymbol].el=n}$isShowProp(e){if(c.isVueAttr(e))return!0;const t=this.$getProp(e);return null==t?void 0:t.show}$getProp(e){var t;const n=c.cache.getAuiVueDefined(this.tagName);return((null==(t=null==n?void 0:n.origin)?void 0:t.props)||{})[e]}$initVue(){if(this.__hasVue__)return;this.__hasVue__=!0;const t=this.tagName.toLowerCase();c.cache.getAuiVueDefined(t)&&e.createApp(c.createVueComponent(t,this)).mount(this)}$needInit(){return!HTMLElement.prototype.hasAttribute.call(this,i)}$bindVue(e){var n,o;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this.__hasVue__=!0,this.$customEvent("aui-init",{bubbles:!1,detail:{code:0}});const r=null==(o=null==(n=c.cache.getAuiVueDefined(this.tagName))?void 0:n.origin)?void 0:o.auiInit;r&&r.call(e)}$call(e,...n){const o=this[t.shadowSymbol].ref;return c.$call(o,e,...n)}};a.shadowSymbol=l;let u=a;class h extends HTMLElement{constructor(){super()}connectedCallback(){this.style.display="none"}set textContent(e){var t;this._name_?null==(t=this._el_)||t.$textContent(this._name_,e):Reflect.set(HTMLElement.prototype,"textContent",e,this)}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):HTMLElement.prototype.prepend.call(this,e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):HTMLElement.prototype.appendChild.call(this,e)}static $isAuiSlot(e){return!(!e||e.nodeType!==Node.ELEMENT_NODE)&&"aui-slot"===e.tagName.toLowerCase()}static $isForAuiSlot(e){return!(!h.$isAuiSlot(e)||!e.hasAttribute("for"))}$bind(e){this._el_=e,this._name_=this.getAttribute("for")||"default"}$replace(e){const t=this.getAttribute("name")||"default",n=document.createComment(`aui-slot-${t}-start`),o=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:n,end:o}),this.$replaceWith(n,o)}$replaceWith(...e){var t;e.forEach(e=>{var t;null==(t=this.parentNode)||t.insertBefore(e,this)}),null==(t=this.parentNode)||t.removeChild(this)}}const c={init:()=>(c.defineSlot(),c),defineSlot(){c.defineCustomElement("aui-slot",h)},$call(e,t,...n){if(!e)return new Error("not init");if(!t)return e;if("function"==typeof e[t])return e[t].call(e,...n);const o=t.split(".");let r=e,i=null;const s=o.pop()||"";for(;i=o.shift();){if(!Object.prototype.hasOwnProperty.call(r,i))return new Error("no match name");r=r[i]}return 0===n.length?r[s]:(r[s]=n[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),r+e):"",cache:{defined:{},getAuiVueDefined:e=>(e=e.toLowerCase(),c.cache.defined[e]),getAuiPropNames(e){var t;const n=c.cache.getAuiVueDefined(e),o=(null==(t=null==n?void 0:n.origin)?void 0:t.props)||{},r=[];for(const i in o)r.push(c.auiAttrName(i));return-1===r.indexOf(s)&&r.push(s),r},addHooks(e,t){e=e.toLowerCase();const n=c.cache.getAuiVueDefined(e);n?(n.hooks=n.hooks||[],n.hooks.push(t)):c.cache.defined[e]={hooks:[t]}}},createExtendComp:t=>{var n,o;return e.defineComponent({props:{[s]:{type:String},value:{type:(null==(o=null==(n=t.props)?void 0:n.value)?void 0:o.type)||[String,Number,Array]}},methods:{$anyToArray:u.$anyToArray,$value(...e){const t=this.$aui();if(0===e.length)return null==t?void 0:t.value;t&&(t.value=e[0])},$call(e,...t){const n=this.$aui();return n?c.$call(n,e,...t):null},$aui(){var e;return null==(e=this.$el)?void 0:e.parentNode}},data:()=>({})})},patchDefaultProps(e){var t,n;const o=null==(n=null==(t=e.props)?void 0:t.value)?void 0:n.type;return e.mixins||(e.mixins=[]),e.mixins.push(c.createExtendComp(e)),o},defineAuiComponent(e,t,n){var o,r;const i=c.patchDefaultProps(n);if(null==(o=c.cache.defined[e])?void 0:o.origin)c.cache.defined[e].origin=n;else{class o extends u{constructor(){super({valueType:i})}static get observedAttributes(){return c.cache.getAuiPropNames(e)}}c.cache.defined[e]={aui:o,vue:t,origin:n,hooks:(null==(r=c.cache.defined[e])?void 0:r.hooks)||[]},c.defineCustomElement(e,o)}},defineCustomElement(e,t){try{customElements.define(e,t)}catch(n){}},sameComponent(e,t){if(!Object.prototype.hasOwnProperty.call(t,"__hmrId"))return!1;const n=c.cache.getAuiVueDefined(e),o=null==n?void 0:n.origin;return!!o&&t.__hmrId===o.__hmrId},notifyComponentUpdate(e){document.querySelectorAll(e).forEach(e=>{e.$forceUpdate()})},define(e,t=!0){const n=c.formatName(e.name);if(!n)return e;const o=c.cache.getAuiVueDefined(n);if(o&&o.vue)return(t||c.sameComponent(n,e))&&(c.defineAuiComponent(n,o.vue,e),c.notifyComponentUpdate(n)),o.vue;const r=c.createVueComponent(n);return c.defineAuiComponent(n,r,e),r},createTempSlot(t){const n={};return Object.keys(t).forEach(o=>{n[o]=()=>e.h("aui-slot",{name:o,onVnodeMounted(e){const n=e.el;n&&n.$replaceWith&&n.$replaceWith(...t[o])}})}),n},replaceTempSlot(e,t){Object.keys(t).forEach(n=>{const o=e.querySelector(`aui-slot[name="${n}"]`);o&&(h.prototype.$replace.call(o,e),e.$replaceChildren(n,t[n]))})},createVueComponent(t,n){const o=n?n.$moveChildren():{default:[]};return{setup(){const r=e.useAttrs(),s=e.shallowRef(null),l=e.shallowRef(null),a=e.ref({}),u=e.shallowRef(n?c.createTempSlot(o):e.useSlots()),h=e.shallowRef(null);return e.onMounted(()=>{s.value&&l.value&&l.value.$bindVue&&(l.value.$bindVue(s.value),l.value.addEventListener("aui-attr-change",()=>{l.value&&(a.value=c.getAuiAttrs(l.value))}),l.value.addEventListener("aui-force-update",()=>{h.value=null}),l.value.$call("$emit","update:value",l.value.value))}),()=>{if(n&&(l.value=n,a.value=c.getAuiAttrs(n)),h.value||(h.value=c.formatStructure(t)),!h.value)return null;const o=e.h(h.value,{...r,...a.value,ref:s},u.value||{});return n?o:e.h(t,{ref:l,[i]:""},[o])}}}},getAuiAttrs(e){const t={},n=e.attributes;for(let o=0;o<n.length;o++){const e=n[o];e.name===r||c.isVueAttr(e.name)||(t[e.name]=e.value)}return null!==e.value&&(t.value=e.value),t},isVueAttr:e=>0===e.indexOf("data-v-"),auiAttrName:e=>e.replace(/([A-Z])/g,e=>"-"+e.toLowerCase()),vueAttrName:e=>c.isVueAttr(e)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),hookStructure(e,t){c.cache.addHooks(e,t)},getHookStructure(e){const t=c.cache.getAuiVueDefined(e);return((null==t?void 0:t.hooks)||[]).slice(0)},formatStructure(e){const n=c.cache.getAuiVueDefined(e);if(!(null==n?void 0:n.origin))return null;let o=t.merge({},n.origin);const r=c.getHookStructure(e);let i;for(;i=r.shift();){const e=i(o);e&&(o=e)}return o}},d=c.init();exports.AuiComponent=u,exports.AuiSlot=h,exports.default=d;//# sourceMappingURL=core.cjs.js.map
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("ts-deepmerge");var o,n;const i=function(){try{return __AUI_CONFIG__}catch(e){return{tagPrefix:"aui"}}}().tagPrefix||"aui",l="data-v-aui",r="auix",s=Symbol("shadow"),a=class t extends(n=HTMLElement,o=s,n){constructor(e){super(),this[o]={hasVue:!1,needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$initVue(),this.$needHook(!0))}set innerHTML(e){this.$needHook()?this.$innerHTML("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set textContent(e){this.$needHook()?this.$textContent("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get textContent(){return this.$needHook()?this.$textContent("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set innerText(e){this.$ignoreLog("innerText"),Reflect.set(HTMLElement.prototype,"innerText",e,this)}set value(e){let o=e;const n=this[t.shadowSymbol].value;let i;this.$isArrayValue()?(o=t.$anyToArray(e),i=JSON.stringify(o)):i=o.toString(),n!==i&&(this[t.shadowSymbol].value=i,this[t.shadowSymbol].el&&this.$attrChange("value"))}get value(){const e=this[t.shadowSymbol].value;return this.$isArrayValue()&&"string"==typeof e?JSON.parse(e):e}prepend(e){if(!this.$needHook())return HTMLElement.prototype.prepend.call(this,e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):HTMLElement.prototype.appendChild.call(this,e)}insertBefore(e,t){return this.$needHook()?this.$insertBefore("default",e,t):HTMLElement.prototype.insertBefore.call(this,e,t)}hasAttribute(e){const o=this[t.shadowSymbol].el;return o?o.hasAttribute(e):HTMLElement.prototype.hasAttribute.call(this,e)}setAttribute(e,o){o=o.toString();const n=this[t.shadowSymbol].el;if(n){if(n.getAttribute(e)===o)return;n.setAttribute(e,o)}this.$isShowProp(c.vueAttrName(e))&&HTMLElement.prototype.setAttribute.call(this,e,o),"value"===e&&n?this.value=n.getAttribute(e):this.$attrChange(e)}getAttribute(e){const o=this[t.shadowSymbol].el;return o?o.getAttribute(e):super.getAttribute(e)}removeAttribute(e){const o=this[t.shadowSymbol].el;o&&o.removeAttribute(e),this.$isShowProp(c.vueAttrName(e))&&HTMLElement.prototype.removeAttribute.call(this,e),this.$attrChange(e)}attributeChangedCallback(e,o,n){const i=this[t.shadowSymbol].el;i&&o!==n&&(this.$isShowProp(c.vueAttrName(e))||HTMLElement.prototype.removeAttribute.call(this,e),i.setAttribute(e,n||""),"value"!==e&&this.$attrChange(e))}static $anyToArray(e){let t=[];if("string"==typeof e){try{const t=JSON.parse(e);if(t instanceof Array)return t}catch(o){}t=e.split(",").filter(e=>!!e&&e.trim())}else e instanceof Array&&(t=e);return t}$customEvent(e,t){this.dispatchEvent(new CustomEvent(e,Object.assign({bubbles:!1,composed:!1,cancelable:!0},t||{})))}$forceUpdate(){let e=null;const o=this[t.shadowSymbol].slot;for(const t in o){const n=this.$slotCollection(o[t]);e||(e={}),e[t]=n}e&&(this[t.shadowSymbol].slotCollection=e),this.$customEvent("aui-force-update")}$cacheSlotCollection(e,o){(this[t.shadowSymbol].slotCollection=this[t.shadowSymbol].slotCollection||{})[e]=o}$initSlotCollection(e){const t=e.getAttribute("name")||"default",o=document.createComment(`aui-slot-${t}-start`),n=document.createComment(`aui-slot-${t}-end`);this.$slot(t,{start:o,end:n}),this.$slotReplaceWithShadow(e,o,n),this.$slotReplaceWithCache(t)}$slotReplaceWith(e,t){this.$cacheSlotCollection(e,t),this.$slotReplaceWithCache(e)}$slotReplaceWithShadow(e,...t){var o;t.forEach(t=>{var o;null==(o=e.parentNode)||o.insertBefore(t,e)}),null==(o=e.parentNode)||o.removeChild(e)}$slotReplaceWithCache(e){var o;const n=(this[t.shadowSymbol].slotCollection||{})[e];if(!n)return;const i=this.$slot(e);if(i){for(;;){const e=i.start.nextSibling;if(e===i.end)break;null==(o=null==e?void 0:e.parentNode)||o.removeChild(e)}n.forEach(e=>{var t;null==(t=i.start.parentNode)||t.insertBefore(e,i.end)})}}$slotCollection(e){var t;const{start:o,end:n}=e,i=[];let l;for(;o&&(l=o.nextSibling)&&l!==n;)null==(t=o.parentNode)||t.removeChild(l),i.push(l);return i}$slotReplace(){const e=this[t.shadowSymbol].slotCollection;if(e){delete this[t.shadowSymbol].slotCollection;for(const t in e)this.querySelector(`aui-slot[name="${t}"]`).$replace(this),this.$replaceChildren(t,e[t])}}$textContent(e,...t){if(0===t.length){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)t.push(i.textContent);return t.join("")}return this.$hasSlot()?(this.$slotReplaceWith(e,[document.createTextNode(t[0])]),""):""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)if(i.outerHTML)t.push(i.outerHTML);else{let e=i.textContent;i instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{if(!this.$hasSlot())return"";const o=document.createElement("div");o.innerHTML=t[0]||"";const n=this.$moveChildren(o);this.$slotReplaceWith(e,n.default)}return""}$prepend(e,o){const n=(this[t.shadowSymbol].slotCollection||{})[e]||[];n.unshift(o),this.$slotReplaceWith(e,n)}$appendChild(e,o){const n=(this[t.shadowSymbol].slotCollection||{})[e]||[];return n.push(o),this.$slotReplaceWith(e,n),o}$insertBefore(e,o,n){const{start:i}=this.$slot(e)||{};if(n)if(((null==i?void 0:i.parentNode)||this)===this)HTMLElement.prototype.insertBefore.call(this,o,n);else{const i=(this[t.shadowSymbol].slotCollection||{})[e]||[];i.forEach((e,t)=>{e===n&&i.splice(t,0,o)}),this.$slotReplaceWith(e,i)}else this.appendChild(o);return o}$childNodes(e){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)t.push(i);return t}$children(e){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)i instanceof HTMLElement&&t.push(i);return t}$replaceChildren(e,t){var o,n;const{start:i,end:l}=this.$slot(e)||{};let r=null;for(;i&&(r=i.nextSibling)&&r!==l;)null==(o=r.parentNode)||o.removeChild(r);if(l)for(;r=t.shift();)null==(n=l.parentNode)||n.insertBefore(r,l)}$slot(e,o){if(e=e||"default",!o)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=o}$hasSlot(){return Object.keys(this[t.shadowSymbol].slotCollection||{}).length>0}$needHook(e){return"boolean"==typeof e&&(this[t.shadowSymbol].needHook=e),this[t.shadowSymbol].needHook}$ignoreLog(e){}$moveChildren(e){var t;const o=(e=e||this).childNodes,n={default:[]};for(;o.length>0;){const i=o[0];if(null==(t=i.parentNode)||t.removeChild(i),h.$isForAuiSlot(i)){const t=i.getAttribute("for")||"default";n[t]=n[t]||[];const o=Array.prototype.slice.call(i.childNodes);h.prototype.$bind.call(i,e),n[t].push(...o)}else n.default.push(i)}return n}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;HTMLElement.prototype.hasAttribute.call(this,l)?this.$call("$emit","update:value",e):this.$customEvent("input",{bubbles:!0,composed:!0})}this.$customEvent("aui-attr-change",{bubbles:!0,composed:!0,detail:{attributeName:c.vueAttrName(e)}})}$initAttrs(){const e=this.attributes,o=document.createElement("div");for(let t=0;t<e.length;t++){const n=e[t];o.setAttribute(n.name,n.value),this.$isShowProp(c.vueAttrName(n.name))||HTMLElement.prototype.removeAttribute.call(this,n.name),"value"===n.name&&(this.value=n.value)}Object.defineProperty(this,"attributes",{get value(){return o.attributes},writable:!1}),this[t.shadowSymbol].el=o}$isShowProp(e){if(c.isVueAttr(e))return!0;const t=this.$getProp(e);return null==t?void 0:t.show}$getProp(e){var t;const o=c.cache.getAuiVueDefined(this.tagName);return((null==(t=null==o?void 0:o.origin)?void 0:t.props)||{})[e]}$initVue(){if(this[t.shadowSymbol].hasVue)return;this[t.shadowSymbol].hasVue=!0;const o=this.tagName.toLowerCase();c.cache.getAuiVueDefined(o)&&e.createApp(c.createVueComponent(o,this)).mount(this)}$needInit(){return!HTMLElement.prototype.hasAttribute.call(this,l)}$bindVue(e){var o,n;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this[t.shadowSymbol].hasVue=!0,this.$customEvent("aui-init",{bubbles:!1,detail:{code:0}});const i=null==(n=null==(o=c.cache.getAuiVueDefined(this.tagName))?void 0:o.origin)?void 0:n.auiInit;i&&i.call(e)}$call(e,...o){const n=this[t.shadowSymbol].ref;return c.$call(n,e,...o)}};a.shadowSymbol=s;let u=a;class h extends HTMLElement{constructor(){super()}connectedCallback(){this.style.display="none"}set textContent(e){var t;this._name_?null==(t=this._el_)||t.$textContent(this._name_,e):Reflect.set(HTMLElement.prototype,"textContent",e,this)}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):HTMLElement.prototype.prepend.call(this,e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):HTMLElement.prototype.appendChild.call(this,e)}static $isAuiSlot(e){return!(!e||e.nodeType!==Node.ELEMENT_NODE)&&"aui-slot"===e.tagName.toLowerCase()}static $isForAuiSlot(e){return!(!h.$isAuiSlot(e)||!e.hasAttribute("for"))}$bind(e){this._el_=e,this._name_=this.getAttribute("for")||"default"}$replace(e){const t=this.getAttribute("name")||"default",o=document.createComment(`aui-slot-${t}-start`),n=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:o,end:n}),this.$replaceWith(o,n)}$replaceWith(...e){var t;e.forEach(e=>{var t;null==(t=this.parentNode)||t.insertBefore(e,this)}),null==(t=this.parentNode)||t.removeChild(this)}}const c={init:()=>(c.defineSlot(),c),defineSlot(){c.defineCustomElement("aui-slot",h)},$call(e,t,...o){if(!e)return new Error("not init");if(!t)return e;if("function"==typeof e[t])return e[t].call(e,...o);const n=t.split(".");let i=e,l=null;const r=n.pop()||"";for(;l=n.shift();){if(!Object.prototype.hasOwnProperty.call(i,l))return new Error("no match name");i=i[l]}return 0===o.length?i[r]:(i[r]=o[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),i+e):"",cache:{defined:{},getAuiVueDefined:e=>(e=e.toLowerCase(),c.cache.defined[e]),getAuiPropNames(e){var t;const o=c.cache.getAuiVueDefined(e),n=(null==(t=null==o?void 0:o.origin)?void 0:t.props)||{},i=[];for(const l in n)i.push(c.auiAttrName(l));return-1===i.indexOf(r)&&i.push(r),i},addHooks(e,t){e=e.toLowerCase();const o=c.cache.getAuiVueDefined(e);o?(o.hooks=o.hooks||[],o.hooks.push(t)):c.cache.defined[e]={hooks:[t]}}},createExtendComp:t=>{var o,n;return e.defineComponent({props:{[r]:{type:String},value:{type:(null==(n=null==(o=t.props)?void 0:o.value)?void 0:n.type)||[String,Number,Array]}},methods:{$anyToArray:u.$anyToArray,$value(...e){const t=this.$aui();if(0===e.length)return null==t?void 0:t.value;t&&(t.value=e[0])},$call(e,...t){const o=this.$aui();return o?c.$call(o,e,...t):null},$aui(){var e;return null==(e=this.$el)?void 0:e.parentNode}},data:()=>({})})},patchDefaultProps(e){var t,o;const n=null==(o=null==(t=e.props)?void 0:t.value)?void 0:o.type;return e.mixins||(e.mixins=[]),e.mixins.push(c.createExtendComp(e)),n},defineAuiComponent(e,t,o){var n,i;const l=c.patchDefaultProps(o);if(null==(n=c.cache.defined[e])?void 0:n.origin)c.cache.defined[e].origin=o;else{class n extends u{constructor(){super({valueType:l})}static get observedAttributes(){return c.cache.getAuiPropNames(e)}}c.cache.defined[e]={aui:n,vue:t,origin:o,hooks:(null==(i=c.cache.defined[e])?void 0:i.hooks)||[]},c.defineCustomElement(e,n)}},defineCustomElement(e,t){try{customElements.define(e,t)}catch(o){}},sameComponent(e,t){if(!Object.prototype.hasOwnProperty.call(t,"__hmrId"))return!1;const o=c.cache.getAuiVueDefined(e),n=null==o?void 0:o.origin;return!!n&&t.__hmrId===n.__hmrId},notifyComponentUpdate(e){document.querySelectorAll(e).forEach(e=>{e.$forceUpdate()})},define(e,t=!0){const o=c.formatName(e.name);if(!o)return e;const n=c.cache.getAuiVueDefined(o);if(n&&n.vue)return(t||c.sameComponent(o,e))&&(c.defineAuiComponent(o,n.vue,e),c.notifyComponentUpdate(o)),n.vue;const i=c.createVueComponent(o);return c.defineAuiComponent(o,i,e),i},createTempSlot(t,o){const n={};return Object.keys(t).forEach(i=>{o.$cacheSlotCollection(i,t[i]),n[i]=()=>e.h("aui-slot",{name:i,onVnodeMounted(e){const t=e.el;o.$initSlotCollection(t)},onVnodeBeforeUnmount(){o.$cacheSlotCollection(i,o.$childNodes(i))}})}),n},replaceTempSlot(e,t){Object.keys(t).forEach(o=>{const n=e.querySelector(`aui-slot[name="${o}"]`);n&&(h.prototype.$replace.call(n,e),e.$replaceChildren(o,t[o]))})},createVueComponent(t,o){const n=o?o.$moveChildren():{default:[]};return{setup(){const i=e.useAttrs(),r=e.shallowRef(null),s=e.shallowRef(null),a=e.ref({}),u=e.shallowRef(o?c.createTempSlot(n,o):e.useSlots()),h=e.shallowRef(null);return e.onMounted(()=>{r.value&&s.value&&s.value.$bindVue&&(s.value.$bindVue(r.value),s.value.addEventListener("aui-attr-change",()=>{s.value&&(a.value=c.getAuiAttrs(s.value))}),s.value.addEventListener("aui-force-update",()=>{h.value=null}),s.value.$call("$emit","update:value",s.value.value))}),()=>{if(o&&(s.value=o,a.value=c.getAuiAttrs(o)),h.value||(h.value=c.formatStructure(t)),!h.value)return null;const n=e.h(h.value,{...i,...a.value,ref:r},u.value||{});return o?n:e.h(t,{ref:s,[l]:""},[n])}}}},getAuiAttrs(e){const t={},o=e.attributes;for(let n=0;n<o.length;n++){const e=o[n];e.name===i||c.isVueAttr(e.name)||(t[e.name]=e.value)}return null!==e.value&&(t.value=e.value),t},isVueAttr:e=>0===e.indexOf("data-v-"),auiAttrName:e=>e.replace(/([A-Z])/g,e=>"-"+e.toLowerCase()),vueAttrName:e=>c.isVueAttr(e)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),hookStructure(e,t){c.cache.addHooks(e,t)},getHookStructure(e){const t=c.cache.getAuiVueDefined(e);return((null==t?void 0:t.hooks)||[]).slice(0)},formatStructure(e){const o=c.cache.getAuiVueDefined(e);if(!(null==o?void 0:o.origin))return null;let n=t.merge({},o.origin);const i=c.getHookStructure(e);let l;for(;l=i.shift();){const e=l(n);e&&(n=e)}return n}},d=c.init();exports.AuiComponent=u,exports.AuiSlot=h,exports.default=d;//# sourceMappingURL=core.cjs.js.map
|
package/dist/core.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.cjs.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","innerHTML","v","$innerHTML","Reflect","set","prototype","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","exports"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.cjs.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 hasVue: boolean,\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 private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\n private [shadowSymbol]: AUI_COMP_SHADOW = { hasVue: false, 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] = { hasVue: false, 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 $cacheSlotCollection(name: string, children: Node[]) {\n const slotCollection = this[AuiComponent.shadowSymbol].slotCollection = this[AuiComponent.shadowSymbol].slotCollection || {};\n slotCollection[name] = children;\n }\n\n $initSlotCollection(slot: AuiSlot) {\n const name = slot.getAttribute('name') || 'default';\n const start = document.createComment(`aui-slot-${name}-start`);\n const end = document.createComment(`aui-slot-${name}-end`);\n\n this.$slot(name, { start, end });\n // this.replaceWith(start, end);\n this.$slotReplaceWithShadow(slot, start, end);\n this.$slotReplaceWithCache(name);\n }\n\n $slotReplaceWith(name: string, children: Node[]) {\n this.$cacheSlotCollection(name, children);\n this.$slotReplaceWithCache(name);\n }\n\n $slotReplaceWithShadow(slot: AuiSlot, ...args: any[]) {\n args.forEach((target) => {\n slot.parentNode?.insertBefore(target, slot);\n });\n slot.parentNode?.removeChild(slot);\n }\n\n $slotReplaceWithCache(name: string) {\n const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name];\n if(!cache) return;\n const slot = this.$slot(name);\n if(!slot) return;\n while(true) {\n const old = slot.start.nextSibling;\n if(old===slot.end) break;\n old?.parentNode?.removeChild(old);\n }\n cache.forEach((child)=>{\n slot.start.parentNode?.insertBefore(child, slot.end);\n });\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 this.$slotReplaceWith(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.$slotReplaceWith(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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.unshift(node);\n this.$slotReplaceWith(name, cache);\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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.push(node);\n this.$slotReplaceWith(name, cache);\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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.forEach((child, index)=>{\n if(child===ref) {\n cache.splice(index, 0, node);\n }\n });\n this.$slotReplaceWith(name, cache);\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].slotCollection||{});\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[AuiComponent.shadowSymbol].hasVue) {\n return;\n }\n this[AuiComponent.shadowSymbol].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[AuiComponent.shadowSymbol].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, el: AuiComponent): any {\n const ret = {} as { [key: string]: any };\n Object.keys(children).forEach((name) => {\n el.$cacheSlotCollection(name, children[name]);\n ret[name] = () => h('aui-slot', {\n name,\n onVnodeMounted(vnode: any) {\n const slot = vnode.el as AuiSlot;\n el.$initSlotCollection(slot);\n },\n onVnodeBeforeUnmount() {\n el.$cacheSlotCollection(name, el.$childNodes(name) as any as Node[]);\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, el) : 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\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();\n"],"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","innerHTML","v","$innerHTML","Reflect","set","prototype","get","textContent","$textContent","$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","$customEvent","opts","dispatchEvent","CustomEvent","Object","assign","bubbles","composed","cancelable","$forceUpdate","slotCollection","children","$slotCollection","$cacheSlotCollection","$initSlotCollection","start","document","createComment","end","$slot","$slotReplaceWithShadow","$slotReplaceWithCache","$slotReplaceWith","args","forEach","target","parentNode","removeChild","cache","old","nextSibling","push","$slotReplace","querySelector","$replace","$replaceChildren","length","ret","next","join","$hasSlot","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","unshift","ref","index","splice","$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","$replaceWith","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","aui","vue","cls","customElements","define","_","sameComponent","__hmrId","notifyComponentUpdate","querySelectorAll","comp","force","wrappedComponent","createTempSlot","h","onVnodeMounted","vnode","onVnodeBeforeUnmount","replaceTempSlot","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","useSlots","onMounted","addEventListener","getAuiAttrs","formatStructure","trueComp","a","s1","toUpperCase","hookStructure","getHookStructure","merge","core","exports"],"mappings":"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"}
|
package/dist/core.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ type SlotElement = {
|
|
|
15
15
|
[key: string]: Node[];
|
|
16
16
|
};
|
|
17
17
|
export declare class AuiComponent extends HTMLElement {
|
|
18
|
-
__hasVue__: boolean;
|
|
19
18
|
private static readonly shadowSymbol;
|
|
20
19
|
private [shadowSymbol];
|
|
21
20
|
constructor(options?: AUI_COMPONENT_OPTION);
|
|
@@ -36,9 +35,13 @@ export declare class AuiComponent extends HTMLElement {
|
|
|
36
35
|
removeAttribute(qualifiedName: string): void;
|
|
37
36
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
38
37
|
static $anyToArray(s: any): any;
|
|
39
|
-
$resetShadowSymbol(): void;
|
|
40
38
|
$customEvent(name: string, opts?: any): void;
|
|
41
39
|
$forceUpdate(): void;
|
|
40
|
+
$cacheSlotCollection(name: string, children: Node[]): void;
|
|
41
|
+
$initSlotCollection(slot: AuiSlot): void;
|
|
42
|
+
$slotReplaceWith(name: string, children: Node[]): void;
|
|
43
|
+
$slotReplaceWithShadow(slot: AuiSlot, ...args: any[]): void;
|
|
44
|
+
$slotReplaceWithCache(name: string): void;
|
|
42
45
|
$slotCollection(cache: AUI_SLOT_CACHE): ChildNode[];
|
|
43
46
|
$slotReplace(): void;
|
|
44
47
|
$textContent(name: string, ...args: any): string;
|
|
@@ -104,7 +107,7 @@ declare const _default: {
|
|
|
104
107
|
sameComponent(tagName: string, v: any): boolean;
|
|
105
108
|
notifyComponentUpdate(tagName: string): void;
|
|
106
109
|
define(v: Component, force?: boolean): Component;
|
|
107
|
-
createTempSlot(children: SlotElement): any;
|
|
110
|
+
createTempSlot(children: SlotElement, el: AuiComponent): any;
|
|
108
111
|
replaceTempSlot(el: AuiComponent, children: SlotElement): void;
|
|
109
112
|
createVueComponent(tagName: string, el?: AuiComponent): Component;
|
|
110
113
|
getAuiAttrs(el: AuiComponent): Record<string, any>;
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,KAAK,CAAC;AAGtD,OAAO,EAAE,KAAK,SAAS,IAAI,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAc/D,QAAA,MAAM,YAAY,eAAmB,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;AAEjD,KAAK,oBAAoB,GAAG;IACxB,SAAS,CAAC,EAAE,GAAG,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,KAAK,cAAc,GAAG;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/core.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createApp as e,defineComponent as t,useAttrs as n,shallowRef as o,ref as r,useSlots as i,onMounted as s,h as l}from"vue";import{merge as a}from"ts-deepmerge";var u,h;const c=function(){try{return __AUI_CONFIG__}catch(e){return{tagPrefix:"aui"}}}().tagPrefix||"aui",d="data-v-aui",p="auix",m=/* @__PURE__ */Symbol("shadow"),f=class t extends(h=HTMLElement,u=m,h){constructor(e){super(),this.__hasVue__=!1,this[u]={needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$initVue(),this.$needHook(!0))}set innerHTML(e){this.$needHook()?this.$innerHTML("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set textContent(e){this.$needHook()?this.$textContent("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get textContent(){return this.$needHook()?this.$textContent("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set innerText(e){this.$ignoreLog("innerText"),Reflect.set(HTMLElement.prototype,"innerText",e,this)}set value(e){let n=e;const o=this[t.shadowSymbol].value;let r;this.$isArrayValue()?(n=t.$anyToArray(e),r=JSON.stringify(n)):r=n.toString(),o!==r&&(this[t.shadowSymbol].value=r,this[t.shadowSymbol].el&&this.$attrChange("value"))}get value(){const e=this[t.shadowSymbol].value;return this.$isArrayValue()&&"string"==typeof e?JSON.parse(e):e}prepend(e){if(!this.$needHook())return HTMLElement.prototype.prepend.call(this,e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):HTMLElement.prototype.appendChild.call(this,e)}insertBefore(e,t){return this.$needHook()?this.$insertBefore("default",e,t):HTMLElement.prototype.insertBefore.call(this,e,t)}hasAttribute(e){const n=this[t.shadowSymbol].el;return n?n.hasAttribute(e):HTMLElement.prototype.hasAttribute.call(this,e)}setAttribute(e,n){n=n.toString();const o=this[t.shadowSymbol].el;if(o){if(o.getAttribute(e)===n)return;o.setAttribute(e,n)}this.$isShowProp(b.vueAttrName(e))&&HTMLElement.prototype.setAttribute.call(this,e,n),"value"===e&&o?this.value=o.getAttribute(e):this.$attrChange(e)}getAttribute(e){const n=this[t.shadowSymbol].el;return n?n.getAttribute(e):super.getAttribute(e)}removeAttribute(e){const n=this[t.shadowSymbol].el;n&&n.removeAttribute(e),this.$isShowProp(b.vueAttrName(e))&&HTMLElement.prototype.removeAttribute.call(this,e),this.$attrChange(e)}attributeChangedCallback(e,n,o){const r=this[t.shadowSymbol].el;r&&n!==o&&(this.$isShowProp(b.vueAttrName(e))||HTMLElement.prototype.removeAttribute.call(this,e),r.setAttribute(e,o||""),"value"!==e&&this.$attrChange(e))}static $anyToArray(e){let t=[];if("string"==typeof e){try{const t=JSON.parse(e);if(t instanceof Array)return t}catch(n){}t=e.split(",").filter(e=>!!e&&e.trim())}else e instanceof Array&&(t=e);return t}$resetShadowSymbol(){this[t.shadowSymbol]={needHook:!1,slot:{}}}$customEvent(e,t){this.dispatchEvent(new CustomEvent(e,Object.assign({bubbles:!1,composed:!1,cancelable:!0},t||{})))}$forceUpdate(){let e=null;const n=this[t.shadowSymbol].slot;for(const t in n){const o=this.$slotCollection(n[t]);e||(e={}),e[t]=o}e&&(this[t.shadowSymbol].slotCollection=e),this.$customEvent("aui-force-update")}$slotCollection(e){var t;const{start:n,end:o}=e,r=[];let i;for(;n&&(i=n.nextSibling)&&i!==o;)null==(t=n.parentNode)||t.removeChild(i),r.push(i);return r}$slotReplace(){const e=this[t.shadowSymbol].slotCollection;if(e){delete this[t.shadowSymbol].slotCollection;for(const t in e)this.querySelector(`aui-slot[name="${t}"]`).$replace(this),this.$replaceChildren(t,e[t])}}$textContent(e,...t){if(0===t.length){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)t.push(r.textContent);return t.join("")}return this.$hasSlot()?(this.$replaceChildren(e,[document.createTextNode(t[0]||"")]),""):""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)if(r.outerHTML)t.push(r.outerHTML);else{let e=r.textContent;r instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{if(!this.$hasSlot())return"";const n=document.createElement("div");n.innerHTML=t[0]||"";const o=this.$moveChildren(n);this.$replaceChildren(e,o.default)}return""}$prepend(e,t){var n;const{start:o}=this.$slot(e)||{};null==(n=null==o?void 0:o.parentNode)||n.insertBefore(t,o.nextSibling)}$appendChild(e,t){var n;const{end:o}=this.$slot(e)||{};return null==(n=null==o?void 0:o.parentNode)||n.insertBefore(t,o),t}$insertBefore(e,t,n){const{start:o}=this.$slot(e)||{},r=(null==o?void 0:o.parentNode)||this;return n?r===this?HTMLElement.prototype.insertBefore.call(this,t,n):r.insertBefore(t,n):this.appendChild(t),t}$childNodes(e){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)t.push(r);return t}$children(e){const t=[],{start:n,end:o}=this.$slot(e)||{};let r=n;for(;r&&(r=r.nextSibling)&&r!==o;)r instanceof HTMLElement&&t.push(r);return t}$replaceChildren(e,t){var n,o;const{start:r,end:i}=this.$slot(e)||{};let s=null;for(;r&&(s=r.nextSibling)&&s!==i;)null==(n=s.parentNode)||n.removeChild(s);if(i)for(;s=t.shift();)null==(o=i.parentNode)||o.insertBefore(s,i)}$slot(e,n){if(e=e||"default",!n)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=n}$hasSlot(){return Object.keys(this[t.shadowSymbol].slot).length>0}$needHook(e){return"boolean"==typeof e&&(this[t.shadowSymbol].needHook=e),this[t.shadowSymbol].needHook}$ignoreLog(e){}$moveChildren(e){var t;const n=(e=e||this).childNodes,o={default:[]};for(;n.length>0;){const r=n[0];if(null==(t=r.parentNode)||t.removeChild(r),$.$isForAuiSlot(r)){const t=r.getAttribute("for")||"default";o[t]=o[t]||[];const n=Array.prototype.slice.call(r.childNodes);$.prototype.$bind.call(r,e),o[t].push(...n)}else o.default.push(r)}return o}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;HTMLElement.prototype.hasAttribute.call(this,d)?this.$call("$emit","update:value",e):this.$customEvent("input",{bubbles:!0,composed:!0})}this.$customEvent("aui-attr-change",{bubbles:!0,composed:!0,detail:{attributeName:b.vueAttrName(e)}})}$initAttrs(){const e=this.attributes,n=document.createElement("div");for(let t=0;t<e.length;t++){const o=e[t];n.setAttribute(o.name,o.value),this.$isShowProp(b.vueAttrName(o.name))||HTMLElement.prototype.removeAttribute.call(this,o.name),"value"===o.name&&(this.value=o.value)}Object.defineProperty(this,"attributes",{get value(){return n.attributes},writable:!1}),this[t.shadowSymbol].el=n}$isShowProp(e){if(b.isVueAttr(e))return!0;const t=this.$getProp(e);return null==t?void 0:t.show}$getProp(e){var t;const n=b.cache.getAuiVueDefined(this.tagName);return((null==(t=null==n?void 0:n.origin)?void 0:t.props)||{})[e]}$initVue(){if(this.__hasVue__)return;this.__hasVue__=!0;const t=this.tagName.toLowerCase();b.cache.getAuiVueDefined(t)&&e(b.createVueComponent(t,this)).mount(this)}$needInit(){return!HTMLElement.prototype.hasAttribute.call(this,d)}$bindVue(e){var n,o;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this.__hasVue__=!0,this.$customEvent("aui-init",{bubbles:!1,detail:{code:0}});const r=null==(o=null==(n=b.cache.getAuiVueDefined(this.tagName))?void 0:n.origin)?void 0:o.auiInit;r&&r.call(e)}$call(e,...n){const o=this[t.shadowSymbol].ref;return b.$call(o,e,...n)}};f.shadowSymbol=m;let v=f;class $ extends HTMLElement{constructor(){super()}connectedCallback(){this.style.display="none"}set textContent(e){var t;this._name_?null==(t=this._el_)||t.$textContent(this._name_,e):Reflect.set(HTMLElement.prototype,"textContent",e,this)}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):HTMLElement.prototype.prepend.call(this,e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):HTMLElement.prototype.appendChild.call(this,e)}static $isAuiSlot(e){return!(!e||e.nodeType!==Node.ELEMENT_NODE)&&"aui-slot"===e.tagName.toLowerCase()}static $isForAuiSlot(e){return!(!$.$isAuiSlot(e)||!e.hasAttribute("for"))}$bind(e){this._el_=e,this._name_=this.getAttribute("for")||"default"}$replace(e){const t=this.getAttribute("name")||"default",n=document.createComment(`aui-slot-${t}-start`),o=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:n,end:o}),this.$replaceWith(n,o)}$replaceWith(...e){var t;e.forEach(e=>{var t;null==(t=this.parentNode)||t.insertBefore(e,this)}),null==(t=this.parentNode)||t.removeChild(this)}}const b={init:()=>(b.defineSlot(),b),defineSlot(){b.defineCustomElement("aui-slot",$)},$call(e,t,...n){if(!e)return new Error("not init");if(!t)return e;if("function"==typeof e[t])return e[t].call(e,...n);const o=t.split(".");let r=e,i=null;const s=o.pop()||"";for(;i=o.shift();){if(!Object.prototype.hasOwnProperty.call(r,i))return new Error("no match name");r=r[i]}return 0===n.length?r[s]:(r[s]=n[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),c+e):"",cache:{defined:{},getAuiVueDefined:e=>(e=e.toLowerCase(),b.cache.defined[e]),getAuiPropNames(e){var t;const n=b.cache.getAuiVueDefined(e),o=(null==(t=null==n?void 0:n.origin)?void 0:t.props)||{},r=[];for(const i in o)r.push(b.auiAttrName(i));return-1===r.indexOf(p)&&r.push(p),r},addHooks(e,t){e=e.toLowerCase();const n=b.cache.getAuiVueDefined(e);n?(n.hooks=n.hooks||[],n.hooks.push(t)):b.cache.defined[e]={hooks:[t]}}},createExtendComp:e=>{var n,o;return t({props:{[p]:{type:String},value:{type:(null==(o=null==(n=e.props)?void 0:n.value)?void 0:o.type)||[String,Number,Array]}},methods:{$anyToArray:v.$anyToArray,$value(...e){const t=this.$aui();if(0===e.length)return null==t?void 0:t.value;t&&(t.value=e[0])},$call(e,...t){const n=this.$aui();return n?b.$call(n,e,...t):null},$aui(){var e;return null==(e=this.$el)?void 0:e.parentNode}},data:()=>({})})},patchDefaultProps(e){var t,n;const o=null==(n=null==(t=e.props)?void 0:t.value)?void 0:n.type;return e.mixins||(e.mixins=[]),e.mixins.push(b.createExtendComp(e)),o},defineAuiComponent(e,t,n){var o,r;const i=b.patchDefaultProps(n);if(null==(o=b.cache.defined[e])?void 0:o.origin)b.cache.defined[e].origin=n;else{class o extends v{constructor(){super({valueType:i})}static get observedAttributes(){return b.cache.getAuiPropNames(e)}}b.cache.defined[e]={aui:o,vue:t,origin:n,hooks:(null==(r=b.cache.defined[e])?void 0:r.hooks)||[]},b.defineCustomElement(e,o)}},defineCustomElement(e,t){try{customElements.define(e,t)}catch(n){}},sameComponent(e,t){if(!Object.prototype.hasOwnProperty.call(t,"__hmrId"))return!1;const n=b.cache.getAuiVueDefined(e),o=null==n?void 0:n.origin;return!!o&&t.__hmrId===o.__hmrId},notifyComponentUpdate(e){document.querySelectorAll(e).forEach(e=>{e.$forceUpdate()})},define(e,t=!0){const n=b.formatName(e.name);if(!n)return e;const o=b.cache.getAuiVueDefined(n);if(o&&o.vue)return(t||b.sameComponent(n,e))&&(b.defineAuiComponent(n,o.vue,e),b.notifyComponentUpdate(n)),o.vue;const r=b.createVueComponent(n);return b.defineAuiComponent(n,r,e),r},createTempSlot(e){const t={};return Object.keys(e).forEach(n=>{t[n]=()=>l("aui-slot",{name:n,onVnodeMounted(t){const o=t.el;o&&o.$replaceWith&&o.$replaceWith(...e[n])}})}),t},replaceTempSlot(e,t){Object.keys(t).forEach(n=>{const o=e.querySelector(`aui-slot[name="${n}"]`);o&&($.prototype.$replace.call(o,e),e.$replaceChildren(n,t[n]))})},createVueComponent(e,t){const a=t?t.$moveChildren():{default:[]};return{setup(){const u=n(),h=o(null),c=o(null),p=r({}),m=o(t?b.createTempSlot(a):i()),f=o(null);return s(()=>{h.value&&c.value&&c.value.$bindVue&&(c.value.$bindVue(h.value),c.value.addEventListener("aui-attr-change",()=>{c.value&&(p.value=b.getAuiAttrs(c.value))}),c.value.addEventListener("aui-force-update",()=>{f.value=null}),c.value.$call("$emit","update:value",c.value.value))}),()=>{if(t&&(c.value=t,p.value=b.getAuiAttrs(t)),f.value||(f.value=b.formatStructure(e)),!f.value)return null;const n=l(f.value,{...u,...p.value,ref:h},m.value||{});return t?n:l(e,{ref:c,[d]:""},[n])}}}},getAuiAttrs(e){const t={},n=e.attributes;for(let o=0;o<n.length;o++){const e=n[o];e.name===c||b.isVueAttr(e.name)||(t[e.name]=e.value)}return null!==e.value&&(t.value=e.value),t},isVueAttr:e=>0===e.indexOf("data-v-"),auiAttrName:e=>e.replace(/([A-Z])/g,e=>"-"+e.toLowerCase()),vueAttrName:e=>b.isVueAttr(e)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),hookStructure(e,t){b.cache.addHooks(e,t)},getHookStructure(e){const t=b.cache.getAuiVueDefined(e);return((null==t?void 0:t.hooks)||[]).slice(0)},formatStructure(e){const t=b.cache.getAuiVueDefined(e);if(!(null==t?void 0:t.origin))return null;let n=a({},t.origin);const o=b.getHookStructure(e);let r;for(;r=o.shift();){const e=r(n);e&&(n=e)}return n}},y=b.init();export{v as AuiComponent,$ as AuiSlot,y as default};//# sourceMappingURL=core.es.js.map
|
|
1
|
+
import{createApp as e,defineComponent as t,useAttrs as o,shallowRef as n,ref as i,useSlots as l,onMounted as s,h as r}from"vue";import{merge as a}from"ts-deepmerge";var u,h;const c=function(){try{return __AUI_CONFIG__}catch(e){return{tagPrefix:"aui"}}}().tagPrefix||"aui",d="data-v-aui",p="auix",m=/* @__PURE__ */Symbol("shadow"),f=class t extends(h=HTMLElement,u=m,h){constructor(e){super(),this[u]={hasVue:!1,needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$initVue(),this.$needHook(!0))}set innerHTML(e){this.$needHook()?this.$innerHTML("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set textContent(e){this.$needHook()?this.$textContent("default",e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}get textContent(){return this.$needHook()?this.$textContent("default"):Reflect.get(HTMLElement.prototype,"innerHTML",this)||""}set innerText(e){this.$ignoreLog("innerText"),Reflect.set(HTMLElement.prototype,"innerText",e,this)}set value(e){let o=e;const n=this[t.shadowSymbol].value;let i;this.$isArrayValue()?(o=t.$anyToArray(e),i=JSON.stringify(o)):i=o.toString(),n!==i&&(this[t.shadowSymbol].value=i,this[t.shadowSymbol].el&&this.$attrChange("value"))}get value(){const e=this[t.shadowSymbol].value;return this.$isArrayValue()&&"string"==typeof e?JSON.parse(e):e}prepend(e){if(!this.$needHook())return HTMLElement.prototype.prepend.call(this,e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):HTMLElement.prototype.appendChild.call(this,e)}insertBefore(e,t){return this.$needHook()?this.$insertBefore("default",e,t):HTMLElement.prototype.insertBefore.call(this,e,t)}hasAttribute(e){const o=this[t.shadowSymbol].el;return o?o.hasAttribute(e):HTMLElement.prototype.hasAttribute.call(this,e)}setAttribute(e,o){o=o.toString();const n=this[t.shadowSymbol].el;if(n){if(n.getAttribute(e)===o)return;n.setAttribute(e,o)}this.$isShowProp(b.vueAttrName(e))&&HTMLElement.prototype.setAttribute.call(this,e,o),"value"===e&&n?this.value=n.getAttribute(e):this.$attrChange(e)}getAttribute(e){const o=this[t.shadowSymbol].el;return o?o.getAttribute(e):super.getAttribute(e)}removeAttribute(e){const o=this[t.shadowSymbol].el;o&&o.removeAttribute(e),this.$isShowProp(b.vueAttrName(e))&&HTMLElement.prototype.removeAttribute.call(this,e),this.$attrChange(e)}attributeChangedCallback(e,o,n){const i=this[t.shadowSymbol].el;i&&o!==n&&(this.$isShowProp(b.vueAttrName(e))||HTMLElement.prototype.removeAttribute.call(this,e),i.setAttribute(e,n||""),"value"!==e&&this.$attrChange(e))}static $anyToArray(e){let t=[];if("string"==typeof e){try{const t=JSON.parse(e);if(t instanceof Array)return t}catch(o){}t=e.split(",").filter(e=>!!e&&e.trim())}else e instanceof Array&&(t=e);return t}$customEvent(e,t){this.dispatchEvent(new CustomEvent(e,Object.assign({bubbles:!1,composed:!1,cancelable:!0},t||{})))}$forceUpdate(){let e=null;const o=this[t.shadowSymbol].slot;for(const t in o){const n=this.$slotCollection(o[t]);e||(e={}),e[t]=n}e&&(this[t.shadowSymbol].slotCollection=e),this.$customEvent("aui-force-update")}$cacheSlotCollection(e,o){(this[t.shadowSymbol].slotCollection=this[t.shadowSymbol].slotCollection||{})[e]=o}$initSlotCollection(e){const t=e.getAttribute("name")||"default",o=document.createComment(`aui-slot-${t}-start`),n=document.createComment(`aui-slot-${t}-end`);this.$slot(t,{start:o,end:n}),this.$slotReplaceWithShadow(e,o,n),this.$slotReplaceWithCache(t)}$slotReplaceWith(e,t){this.$cacheSlotCollection(e,t),this.$slotReplaceWithCache(e)}$slotReplaceWithShadow(e,...t){var o;t.forEach(t=>{var o;null==(o=e.parentNode)||o.insertBefore(t,e)}),null==(o=e.parentNode)||o.removeChild(e)}$slotReplaceWithCache(e){var o;const n=(this[t.shadowSymbol].slotCollection||{})[e];if(!n)return;const i=this.$slot(e);if(i){for(;;){const e=i.start.nextSibling;if(e===i.end)break;null==(o=null==e?void 0:e.parentNode)||o.removeChild(e)}n.forEach(e=>{var t;null==(t=i.start.parentNode)||t.insertBefore(e,i.end)})}}$slotCollection(e){var t;const{start:o,end:n}=e,i=[];let l;for(;o&&(l=o.nextSibling)&&l!==n;)null==(t=o.parentNode)||t.removeChild(l),i.push(l);return i}$slotReplace(){const e=this[t.shadowSymbol].slotCollection;if(e){delete this[t.shadowSymbol].slotCollection;for(const t in e)this.querySelector(`aui-slot[name="${t}"]`).$replace(this),this.$replaceChildren(t,e[t])}}$textContent(e,...t){if(0===t.length){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)t.push(i.textContent);return t.join("")}return this.$hasSlot()?(this.$slotReplaceWith(e,[document.createTextNode(t[0])]),""):""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)if(i.outerHTML)t.push(i.outerHTML);else{let e=i.textContent;i instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{if(!this.$hasSlot())return"";const o=document.createElement("div");o.innerHTML=t[0]||"";const n=this.$moveChildren(o);this.$slotReplaceWith(e,n.default)}return""}$prepend(e,o){const n=(this[t.shadowSymbol].slotCollection||{})[e]||[];n.unshift(o),this.$slotReplaceWith(e,n)}$appendChild(e,o){const n=(this[t.shadowSymbol].slotCollection||{})[e]||[];return n.push(o),this.$slotReplaceWith(e,n),o}$insertBefore(e,o,n){const{start:i}=this.$slot(e)||{};if(n)if(((null==i?void 0:i.parentNode)||this)===this)HTMLElement.prototype.insertBefore.call(this,o,n);else{const i=(this[t.shadowSymbol].slotCollection||{})[e]||[];i.forEach((e,t)=>{e===n&&i.splice(t,0,o)}),this.$slotReplaceWith(e,i)}else this.appendChild(o);return o}$childNodes(e){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)t.push(i);return t}$children(e){const t=[],{start:o,end:n}=this.$slot(e)||{};let i=o;for(;i&&(i=i.nextSibling)&&i!==n;)i instanceof HTMLElement&&t.push(i);return t}$replaceChildren(e,t){var o,n;const{start:i,end:l}=this.$slot(e)||{};let s=null;for(;i&&(s=i.nextSibling)&&s!==l;)null==(o=s.parentNode)||o.removeChild(s);if(l)for(;s=t.shift();)null==(n=l.parentNode)||n.insertBefore(s,l)}$slot(e,o){if(e=e||"default",!o)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=o}$hasSlot(){return Object.keys(this[t.shadowSymbol].slotCollection||{}).length>0}$needHook(e){return"boolean"==typeof e&&(this[t.shadowSymbol].needHook=e),this[t.shadowSymbol].needHook}$ignoreLog(e){}$moveChildren(e){var t;const o=(e=e||this).childNodes,n={default:[]};for(;o.length>0;){const i=o[0];if(null==(t=i.parentNode)||t.removeChild(i),v.$isForAuiSlot(i)){const t=i.getAttribute("for")||"default";n[t]=n[t]||[];const o=Array.prototype.slice.call(i.childNodes);v.prototype.$bind.call(i,e),n[t].push(...o)}else n.default.push(i)}return n}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;HTMLElement.prototype.hasAttribute.call(this,d)?this.$call("$emit","update:value",e):this.$customEvent("input",{bubbles:!0,composed:!0})}this.$customEvent("aui-attr-change",{bubbles:!0,composed:!0,detail:{attributeName:b.vueAttrName(e)}})}$initAttrs(){const e=this.attributes,o=document.createElement("div");for(let t=0;t<e.length;t++){const n=e[t];o.setAttribute(n.name,n.value),this.$isShowProp(b.vueAttrName(n.name))||HTMLElement.prototype.removeAttribute.call(this,n.name),"value"===n.name&&(this.value=n.value)}Object.defineProperty(this,"attributes",{get value(){return o.attributes},writable:!1}),this[t.shadowSymbol].el=o}$isShowProp(e){if(b.isVueAttr(e))return!0;const t=this.$getProp(e);return null==t?void 0:t.show}$getProp(e){var t;const o=b.cache.getAuiVueDefined(this.tagName);return((null==(t=null==o?void 0:o.origin)?void 0:t.props)||{})[e]}$initVue(){if(this[t.shadowSymbol].hasVue)return;this[t.shadowSymbol].hasVue=!0;const o=this.tagName.toLowerCase();b.cache.getAuiVueDefined(o)&&e(b.createVueComponent(o,this)).mount(this)}$needInit(){return!HTMLElement.prototype.hasAttribute.call(this,d)}$bindVue(e){var o,n;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this[t.shadowSymbol].hasVue=!0,this.$customEvent("aui-init",{bubbles:!1,detail:{code:0}});const i=null==(n=null==(o=b.cache.getAuiVueDefined(this.tagName))?void 0:o.origin)?void 0:n.auiInit;i&&i.call(e)}$call(e,...o){const n=this[t.shadowSymbol].ref;return b.$call(n,e,...o)}};f.shadowSymbol=m;let $=f;class v extends HTMLElement{constructor(){super()}connectedCallback(){this.style.display="none"}set textContent(e){var t;this._name_?null==(t=this._el_)||t.$textContent(this._name_,e):Reflect.set(HTMLElement.prototype,"textContent",e,this)}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):Reflect.set(HTMLElement.prototype,"innerHTML",e,this)}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):HTMLElement.prototype.prepend.call(this,e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):HTMLElement.prototype.appendChild.call(this,e)}static $isAuiSlot(e){return!(!e||e.nodeType!==Node.ELEMENT_NODE)&&"aui-slot"===e.tagName.toLowerCase()}static $isForAuiSlot(e){return!(!v.$isAuiSlot(e)||!e.hasAttribute("for"))}$bind(e){this._el_=e,this._name_=this.getAttribute("for")||"default"}$replace(e){const t=this.getAttribute("name")||"default",o=document.createComment(`aui-slot-${t}-start`),n=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:o,end:n}),this.$replaceWith(o,n)}$replaceWith(...e){var t;e.forEach(e=>{var t;null==(t=this.parentNode)||t.insertBefore(e,this)}),null==(t=this.parentNode)||t.removeChild(this)}}const b={init:()=>(b.defineSlot(),b),defineSlot(){b.defineCustomElement("aui-slot",v)},$call(e,t,...o){if(!e)return new Error("not init");if(!t)return e;if("function"==typeof e[t])return e[t].call(e,...o);const n=t.split(".");let i=e,l=null;const s=n.pop()||"";for(;l=n.shift();){if(!Object.prototype.hasOwnProperty.call(i,l))return new Error("no match name");i=i[l]}return 0===o.length?i[s]:(i[s]=o[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),c+e):"",cache:{defined:{},getAuiVueDefined:e=>(e=e.toLowerCase(),b.cache.defined[e]),getAuiPropNames(e){var t;const o=b.cache.getAuiVueDefined(e),n=(null==(t=null==o?void 0:o.origin)?void 0:t.props)||{},i=[];for(const l in n)i.push(b.auiAttrName(l));return-1===i.indexOf(p)&&i.push(p),i},addHooks(e,t){e=e.toLowerCase();const o=b.cache.getAuiVueDefined(e);o?(o.hooks=o.hooks||[],o.hooks.push(t)):b.cache.defined[e]={hooks:[t]}}},createExtendComp:e=>{var o,n;return t({props:{[p]:{type:String},value:{type:(null==(n=null==(o=e.props)?void 0:o.value)?void 0:n.type)||[String,Number,Array]}},methods:{$anyToArray:$.$anyToArray,$value(...e){const t=this.$aui();if(0===e.length)return null==t?void 0:t.value;t&&(t.value=e[0])},$call(e,...t){const o=this.$aui();return o?b.$call(o,e,...t):null},$aui(){var e;return null==(e=this.$el)?void 0:e.parentNode}},data:()=>({})})},patchDefaultProps(e){var t,o;const n=null==(o=null==(t=e.props)?void 0:t.value)?void 0:o.type;return e.mixins||(e.mixins=[]),e.mixins.push(b.createExtendComp(e)),n},defineAuiComponent(e,t,o){var n,i;const l=b.patchDefaultProps(o);if(null==(n=b.cache.defined[e])?void 0:n.origin)b.cache.defined[e].origin=o;else{class n extends ${constructor(){super({valueType:l})}static get observedAttributes(){return b.cache.getAuiPropNames(e)}}b.cache.defined[e]={aui:n,vue:t,origin:o,hooks:(null==(i=b.cache.defined[e])?void 0:i.hooks)||[]},b.defineCustomElement(e,n)}},defineCustomElement(e,t){try{customElements.define(e,t)}catch(o){}},sameComponent(e,t){if(!Object.prototype.hasOwnProperty.call(t,"__hmrId"))return!1;const o=b.cache.getAuiVueDefined(e),n=null==o?void 0:o.origin;return!!n&&t.__hmrId===n.__hmrId},notifyComponentUpdate(e){document.querySelectorAll(e).forEach(e=>{e.$forceUpdate()})},define(e,t=!0){const o=b.formatName(e.name);if(!o)return e;const n=b.cache.getAuiVueDefined(o);if(n&&n.vue)return(t||b.sameComponent(o,e))&&(b.defineAuiComponent(o,n.vue,e),b.notifyComponentUpdate(o)),n.vue;const i=b.createVueComponent(o);return b.defineAuiComponent(o,i,e),i},createTempSlot(e,t){const o={};return Object.keys(e).forEach(n=>{t.$cacheSlotCollection(n,e[n]),o[n]=()=>r("aui-slot",{name:n,onVnodeMounted(e){const o=e.el;t.$initSlotCollection(o)},onVnodeBeforeUnmount(){t.$cacheSlotCollection(n,t.$childNodes(n))}})}),o},replaceTempSlot(e,t){Object.keys(t).forEach(o=>{const n=e.querySelector(`aui-slot[name="${o}"]`);n&&(v.prototype.$replace.call(n,e),e.$replaceChildren(o,t[o]))})},createVueComponent(e,t){const a=t?t.$moveChildren():{default:[]};return{setup(){const u=o(),h=n(null),c=n(null),p=i({}),m=n(t?b.createTempSlot(a,t):l()),f=n(null);return s(()=>{h.value&&c.value&&c.value.$bindVue&&(c.value.$bindVue(h.value),c.value.addEventListener("aui-attr-change",()=>{c.value&&(p.value=b.getAuiAttrs(c.value))}),c.value.addEventListener("aui-force-update",()=>{f.value=null}),c.value.$call("$emit","update:value",c.value.value))}),()=>{if(t&&(c.value=t,p.value=b.getAuiAttrs(t)),f.value||(f.value=b.formatStructure(e)),!f.value)return null;const o=r(f.value,{...u,...p.value,ref:h},m.value||{});return t?o:r(e,{ref:c,[d]:""},[o])}}}},getAuiAttrs(e){const t={},o=e.attributes;for(let n=0;n<o.length;n++){const e=o[n];e.name===c||b.isVueAttr(e.name)||(t[e.name]=e.value)}return null!==e.value&&(t.value=e.value),t},isVueAttr:e=>0===e.indexOf("data-v-"),auiAttrName:e=>e.replace(/([A-Z])/g,e=>"-"+e.toLowerCase()),vueAttrName:e=>b.isVueAttr(e)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),hookStructure(e,t){b.cache.addHooks(e,t)},getHookStructure(e){const t=b.cache.getAuiVueDefined(e);return((null==t?void 0:t.hooks)||[]).slice(0)},formatStructure(e){const t=b.cache.getAuiVueDefined(e);if(!(null==t?void 0:t.origin))return null;let o=a({},t.origin);const n=b.getHookStructure(e);let i;for(;i=n.shift();){const e=i(o);e&&(o=e)}return o}},y=b.init();export{$ as AuiComponent,v as AuiSlot,y as default};//# sourceMappingURL=core.es.js.map
|
package/dist/core.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.es.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\nimport { h, useSlots, useAttrs, onMounted, 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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"}
|
|
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 hasVue: boolean,\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 private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\n private [shadowSymbol]: AUI_COMP_SHADOW = { hasVue: false, 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] = { hasVue: false, 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 $cacheSlotCollection(name: string, children: Node[]) {\n const slotCollection = this[AuiComponent.shadowSymbol].slotCollection = this[AuiComponent.shadowSymbol].slotCollection || {};\n slotCollection[name] = children;\n }\n\n $initSlotCollection(slot: AuiSlot) {\n const name = slot.getAttribute('name') || 'default';\n const start = document.createComment(`aui-slot-${name}-start`);\n const end = document.createComment(`aui-slot-${name}-end`);\n\n this.$slot(name, { start, end });\n // this.replaceWith(start, end);\n this.$slotReplaceWithShadow(slot, start, end);\n this.$slotReplaceWithCache(name);\n }\n\n $slotReplaceWith(name: string, children: Node[]) {\n this.$cacheSlotCollection(name, children);\n this.$slotReplaceWithCache(name);\n }\n\n $slotReplaceWithShadow(slot: AuiSlot, ...args: any[]) {\n args.forEach((target) => {\n slot.parentNode?.insertBefore(target, slot);\n });\n slot.parentNode?.removeChild(slot);\n }\n\n $slotReplaceWithCache(name: string) {\n const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name];\n if(!cache) return;\n const slot = this.$slot(name);\n if(!slot) return;\n while(true) {\n const old = slot.start.nextSibling;\n if(old===slot.end) break;\n old?.parentNode?.removeChild(old);\n }\n cache.forEach((child)=>{\n slot.start.parentNode?.insertBefore(child, slot.end);\n });\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 this.$slotReplaceWith(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.$slotReplaceWith(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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.unshift(node);\n this.$slotReplaceWith(name, cache);\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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.push(node);\n this.$slotReplaceWith(name, cache);\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 const cache = (this[AuiComponent.shadowSymbol].slotCollection || {})[name] || [];\n cache.forEach((child, index)=>{\n if(child===ref) {\n cache.splice(index, 0, node);\n }\n });\n this.$slotReplaceWith(name, cache);\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].slotCollection||{});\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[AuiComponent.shadowSymbol].hasVue) {\n return;\n }\n this[AuiComponent.shadowSymbol].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[AuiComponent.shadowSymbol].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, el: AuiComponent): any {\n const ret = {} as { [key: string]: any };\n Object.keys(children).forEach((name) => {\n el.$cacheSlotCollection(name, children[name]);\n ret[name] = () => h('aui-slot', {\n name,\n onVnodeMounted(vnode: any) {\n const slot = vnode.el as AuiSlot;\n el.$initSlotCollection(slot);\n },\n onVnodeBeforeUnmount() {\n el.$cacheSlotCollection(name, el.$childNodes(name) as any as Node[]);\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, el) : 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\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();\n"],"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","innerHTML","v","$innerHTML","Reflect","set","prototype","get","textContent","$textContent","$ignoreLog","val","oldValue","value","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","$customEvent","opts","dispatchEvent","CustomEvent","Object","assign","bubbles","composed","cancelable","$forceUpdate","slotCollection","children","$slotCollection","$cacheSlotCollection","$initSlotCollection","start","document","createComment","end","$slot","$slotReplaceWithShadow","$slotReplaceWithCache","$slotReplaceWith","args","forEach","target","parentNode","removeChild","cache","old","nextSibling","push","$slotReplace","querySelector","$replace","$replaceChildren","length","ret","next","join","$hasSlot","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","unshift","ref","index","splice","$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","$replaceWith","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","onVnodeBeforeUnmount","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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"}
|