agile-core 3.0.3 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,14 +1,12 @@
1
1
  # Agile框架使用指南
2
2
 
3
3
  <div align="center">
4
- <a href="https://gitee.com/nandy007/agile-core" target="_blank">
5
- <img src="https://gitee.com/nandy007/agile-core/raw/main/assets/aui.svg" alt="Agile框架" style="width: 120px;border-radius:26px;background-color: #fff;box-shadow: 2px 2px 4px rgba(0,0,0,0.2);"/>
6
- </a>
4
+ <img src="https://gitee.com/nandy007/agile-core/raw/main/assets/aui.svg" alt="Agile框架" style="width: 120px;border-radius:26px;background-color: #fff;box-shadow: 2px 2px 4px rgba(0,0,0,0.2);"/>
7
5
  </div>
8
6
 
9
7
  ## 概述
10
8
 
11
- `Agile`框架结合`Vite`和`VUE`的技术栈+自定义组件模块(基于`Web Component`),形成一个组件式的`微前端`框架。该框架旨在实现跨框架调用的`微前端组件`定义框架。
9
+ `Agile`框架结合`Vite`和`VUE`的技术栈+自定义组件模块(基于`Web Component`),形成一个组件式的`微前端`框架。该框架旨在实现跨框架调用的`微前端组件`定义和使用。
12
10
 
13
11
  使用`Agile`框架创建的组件称为`AUI`组件,该组件可以在框架内使用,也可以打包后在任意框架中通过引入js的方式使用,包括任何标准的DOM操作方式调用和样式设置。
14
12
 
@@ -37,7 +35,7 @@
37
35
  ## 规范
38
36
 
39
37
  1. AUI组件必须以`.aui.vue`作为文件后缀
40
- 2. 组件名是唯一的,同一个组件名对应的实现只有一个,组件可以重复定义,但是后面定义的会覆盖前面的,最终使用的是最后覆盖的组件定义,但是需要注意的是组件的props定义不能被覆盖,如有需要,请使用`auiExtend`的属性作为扩展
38
+ 2. 组件名是唯一的,同一个组件名对应的实现只有一个,组件可以重复定义,但是后面定义的会覆盖前面的,其中有个名为`auix`的prop属性用于扩展属性
41
39
  3. 组件名称必须是帕斯卡命名法(Pascal Case),即每个单词的首字母都是大写,单词之间没有分隔符
42
40
  4. 组件名一般显式的在组件中通过name来定义,否则将取当前文件名的名称作为组件名
43
41
 
@@ -203,10 +201,12 @@ Agile3.0框架目前只支持在`Vite`项目中开发,但是编译后可以在
203
201
  2. vite7+
204
202
  3. vue3+
205
203
 
204
+ [->直达示例](https://gitee.com/nandy007/agile-vite-vue)
205
+
206
206
  ### 第一步:安装模块
207
207
 
208
208
  ```bash
209
- npm install agile-core -D
209
+ npm install agile-core
210
210
  ```
211
211
  安装完成会在当前工程的`types`目录生成必要的代码模块定义,如果没有生成,可以到已安装的模块的`types`目录下把所有`d.ts`文件拷贝到项目的types目录,并且设置项目自身的tsconfig.json文件,添加`types`目录到`include`节点下
212
212
 
@@ -300,8 +300,8 @@ AUI组件可通过插件机制对原组件的定义进行修改,或者对组
300
300
 
301
301
  ```js
302
302
 
303
- // 引入AUI核心,TraditionComponent是旧VUE组件写法,Component是新VUE组件写法
304
- import { default as auiCore, type TraditionComponent, type Component } from 'agile-core';
303
+ // 引入AUI核心
304
+ import { default as auiCore, type Component } from 'agile-core';
305
305
 
306
306
  ```
307
307
 
@@ -315,7 +315,7 @@ import { default as auiCore, type TraditionComponent, type Component } from 'agi
315
315
 
316
316
  比如:
317
317
  ```js
318
- auiCore.hookStructure('aui-example-comp', function (structure: TraditionComponent) {
318
+ auiCore.hookStructure('aui-example-comp', function (structure: Component) {
319
319
  const originMounted = structure.mounted;
320
320
 
321
321
  structure.mounted = function () {
@@ -1,56 +1,56 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="173.000000pt" height="173.000000pt" viewBox="0 0 173.000000 173.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
-
8
- <!-- 定义渐变色 -->
9
- <defs>
10
- <linearGradient id="blueGradient" x1="0%" y1="0%" x2="100%" y2="100%">
11
- <stop offset="0%" style="stop-color:#3498db;stop-opacity:1" />
12
- <stop offset="100%" style="stop-color:#2980b9;stop-opacity:1" />
13
- </linearGradient>
14
- <linearGradient id="orangeGradient" x1="0%" y1="0%" x2="100%" y2="100%">
15
- <stop offset="0%" style="stop-color:#f39c12;stop-opacity:1" />
16
- <stop offset="100%" style="stop-color:#e67e22;stop-opacity:1" />
17
- </linearGradient>
18
- <linearGradient id="greenGradient" x1="0%" y1="0%" x2="100%" y2="100%">
19
- <stop offset="0%" style="stop-color:#2ecc71;stop-opacity:1" />
20
- <stop offset="100%" style="stop-color:#27ae60;stop-opacity:1" />
21
- </linearGradient>
22
- <linearGradient id="purpleGradient" x1="0%" y1="0%" x2="100%" y2="100%">
23
- <stop offset="0%" style="stop-color:#9b59b6;stop-opacity:1" />
24
- <stop offset="100%" style="stop-color:#8e44ad;stop-opacity:1" />
25
- </linearGradient>
26
- </defs>
27
-
28
- <g transform="translate(0.000000,173.000000) scale(0.100000,-0.100000)"
29
- fill="none" stroke="none">
30
-
31
-
32
- <!-- 主要图形元素 - 橙色渐变 -->
33
- <path d="M785 1495 c-27 -14 -144 -83 -260 -153 -175 -106 -213 -133 -227
34
- -162 -15 -31 -16 -64 -10 -316 l7 -281 129 73 c70 39 134 78 141 86 7 7 47
35
- 101 89 208 43 107 89 209 102 227 35 46 92 60 150 38 47 -18 69 -46 104 -135
36
- 12 -30 25 -59 30 -64 5 -5 84 34 184 90 166 94 174 99 159 117 -24 25 -486
37
- 286 -520 293 -19 3 -44 -3 -78 -21z" fill="url(#orangeGradient)"/>
38
-
39
- <!-- 右侧元素 - 绿色渐变 -->
40
- <path d="M1240 1065 c-91 -52 -169 -96 -174 -98 -8 -2 187 -491 203 -509 4 -5
41
- 36 11 71 35 49 32 68 50 76 77 12 37 7 590 -5 590 -3 -1 -80 -43 -171 -95z" fill="url(#greenGradient)"/>
42
-
43
- <!-- 中心元素 - 紫色渐变 -->
44
- <path d="M792 850 c-35 -95 -61 -175 -59 -177 3 -2 61 -2 129 -1 l126 3 -59
45
- 155 c-33 85 -63 164 -67 174 -6 15 -23 -22 -70 -154z" fill="url(#purpleGradient)"/>
46
-
47
- <!-- 底部元素 - 蓝绿色 -->
48
- <path d="M431 610 c-57 -32 -108 -63 -113 -68 -11 -11 23 -41 84 -77 l48 -27
49
- 9 24 c5 12 25 63 45 112 20 49 35 91 33 92 -1 1 -49 -24 -106 -56z" fill="#1abc9c"/>
50
-
51
- <!-- 底部中心元素 - 红色渐变 -->
52
- <path d="M643 444 c-18 -47 -31 -90 -28 -94 3 -4 51 -34 107 -66 135 -76 144
53
- -76 281 5 59 35 107 64 107 65 0 0 -16 39 -35 86 l-34 85 -183 3 -183 2 -32
54
- -86z" fill="#e74c3c"/>
55
- </g>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="173.000000pt" height="173.000000pt" viewBox="0 0 173.000000 173.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <!-- 定义渐变色 -->
9
+ <defs>
10
+ <linearGradient id="blueGradient" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" style="stop-color:#3498db;stop-opacity:1" />
12
+ <stop offset="100%" style="stop-color:#2980b9;stop-opacity:1" />
13
+ </linearGradient>
14
+ <linearGradient id="orangeGradient" x1="0%" y1="0%" x2="100%" y2="100%">
15
+ <stop offset="0%" style="stop-color:#f39c12;stop-opacity:1" />
16
+ <stop offset="100%" style="stop-color:#e67e22;stop-opacity:1" />
17
+ </linearGradient>
18
+ <linearGradient id="greenGradient" x1="0%" y1="0%" x2="100%" y2="100%">
19
+ <stop offset="0%" style="stop-color:#2ecc71;stop-opacity:1" />
20
+ <stop offset="100%" style="stop-color:#27ae60;stop-opacity:1" />
21
+ </linearGradient>
22
+ <linearGradient id="purpleGradient" x1="0%" y1="0%" x2="100%" y2="100%">
23
+ <stop offset="0%" style="stop-color:#9b59b6;stop-opacity:1" />
24
+ <stop offset="100%" style="stop-color:#8e44ad;stop-opacity:1" />
25
+ </linearGradient>
26
+ </defs>
27
+
28
+ <g transform="translate(0.000000,173.000000) scale(0.100000,-0.100000)"
29
+ fill="none" stroke="none">
30
+
31
+
32
+ <!-- 主要图形元素 - 橙色渐变 -->
33
+ <path d="M785 1495 c-27 -14 -144 -83 -260 -153 -175 -106 -213 -133 -227
34
+ -162 -15 -31 -16 -64 -10 -316 l7 -281 129 73 c70 39 134 78 141 86 7 7 47
35
+ 101 89 208 43 107 89 209 102 227 35 46 92 60 150 38 47 -18 69 -46 104 -135
36
+ 12 -30 25 -59 30 -64 5 -5 84 34 184 90 166 94 174 99 159 117 -24 25 -486
37
+ 286 -520 293 -19 3 -44 -3 -78 -21z" fill="url(#orangeGradient)"/>
38
+
39
+ <!-- 右侧元素 - 绿色渐变 -->
40
+ <path d="M1240 1065 c-91 -52 -169 -96 -174 -98 -8 -2 187 -491 203 -509 4 -5
41
+ 36 11 71 35 49 32 68 50 76 77 12 37 7 590 -5 590 -3 -1 -80 -43 -171 -95z" fill="url(#greenGradient)"/>
42
+
43
+ <!-- 中心元素 - 紫色渐变 -->
44
+ <path d="M792 850 c-35 -95 -61 -175 -59 -177 3 -2 61 -2 129 -1 l126 3 -59
45
+ 155 c-33 85 -63 164 -67 174 -6 15 -23 -22 -70 -154z" fill="url(#purpleGradient)"/>
46
+
47
+ <!-- 底部元素 - 蓝绿色 -->
48
+ <path d="M431 610 c-57 -32 -108 -63 -113 -68 -11 -11 23 -41 84 -77 l48 -27
49
+ 9 24 c5 12 25 63 45 112 20 49 35 91 33 92 -1 1 -49 -24 -106 -56z" fill="#1abc9c"/>
50
+
51
+ <!-- 底部中心元素 - 红色渐变 -->
52
+ <path d="M643 444 c-18 -47 -31 -90 -28 -94 3 -4 51 -34 107 -66 135 -76 144
53
+ -76 281 5 59 35 107 64 107 65 0 0 -16 39 -35 86 l-34 85 -183 3 -183 2 -32
54
+ -86z" fill="#e74c3c"/>
55
+ </g>
56
56
  </svg>
package/assets/aui.svg CHANGED
@@ -1,35 +1,35 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="173.000000pt" height="173.000000pt" viewBox="0 0 173.000000 173.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
-
8
- <!-- 定义渐变色 -->
9
- <defs>
10
- <linearGradient id="mainGradient" x1="0%" y1="0%" x2="100%" y2="100%">
11
- <stop offset="0%" style="stop-color:#3498db;stop-opacity:1" />
12
- <stop offset="100%" style="stop-color:#2980b9;stop-opacity:1" />
13
- </linearGradient>
14
- </defs>
15
-
16
- <g transform="translate(0.000000,173.000000) scale(0.100000,-0.100000)"
17
- fill="url(#mainGradient)" stroke="none">
18
-
19
- <path d="M785 1495 c-27 -14 -144 -83 -260 -153 -175 -106 -213 -133 -227
20
- -162 -15 -31 -16 -64 -10 -316 l7 -281 129 73 c70 39 134 78 141 86 7 7 47
21
- 101 89 208 43 107 89 209 102 227 35 46 92 60 150 38 47 -18 69 -46 104 -135
22
- 12 -30 25 -59 30 -64 5 -5 84 34 184 90 166 94 174 99 159 117 -24 25 -486
23
- 286 -520 293 -19 3 -44 -3 -78 -21z"/>
24
- <path d="M1240 1065 c-91 -52 -169 -96 -174 -98 -8 -2 187 -491 203 -509 4 -5
25
- 36 11 71 35 49 32 68 50 76 77 12 37 7 590 -5 590 -3 -1 -80 -43 -171 -95z"/>
26
- <path d="M792 850 c-35 -95 -61 -175 -59 -177 3 -2 61 -2 129 -1 l126 3 -59
27
- 155 c-33 85 -63 164 -67 174 -6 15 -23 -22 -70 -154z"/>
28
- <path d="M431 610 c-57 -32 -108 -63 -113 -68 -11 -11 23 -41 84 -77 l48 -27
29
- 9 24 c5 12 25 63 45 112 20 49 35 91 33 92 -1 1 -49 -24 -106 -56z"/>
30
- <path d="M643 444 c-18 -47 -31 -90 -28 -94 3 -4 51 -34 107 -66 135 -76 144
31
- -76 281 5 59 35 107 64 107 65 0 0 -16 39 -35 86 l-34 85 -183 3 -183 2 -32
32
- -86z"/>
33
-
34
- </g>
35
- </svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="173.000000pt" height="173.000000pt" viewBox="0 0 173.000000 173.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <!-- 定义渐变色 -->
9
+ <defs>
10
+ <linearGradient id="mainGradient" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" style="stop-color:#3498db;stop-opacity:1" />
12
+ <stop offset="100%" style="stop-color:#2980b9;stop-opacity:1" />
13
+ </linearGradient>
14
+ </defs>
15
+
16
+ <g transform="translate(0.000000,173.000000) scale(0.100000,-0.100000)"
17
+ fill="url(#mainGradient)" stroke="none">
18
+
19
+ <path d="M785 1495 c-27 -14 -144 -83 -260 -153 -175 -106 -213 -133 -227
20
+ -162 -15 -31 -16 -64 -10 -316 l7 -281 129 73 c70 39 134 78 141 86 7 7 47
21
+ 101 89 208 43 107 89 209 102 227 35 46 92 60 150 38 47 -18 69 -46 104 -135
22
+ 12 -30 25 -59 30 -64 5 -5 84 34 184 90 166 94 174 99 159 117 -24 25 -486
23
+ 286 -520 293 -19 3 -44 -3 -78 -21z"/>
24
+ <path d="M1240 1065 c-91 -52 -169 -96 -174 -98 -8 -2 187 -491 203 -509 4 -5
25
+ 36 11 71 35 49 32 68 50 76 77 12 37 7 590 -5 590 -3 -1 -80 -43 -171 -95z"/>
26
+ <path d="M792 850 c-35 -95 -61 -175 -59 -177 3 -2 61 -2 129 -1 l126 3 -59
27
+ 155 c-33 85 -63 164 -67 174 -6 15 -23 -22 -70 -154z"/>
28
+ <path d="M431 610 c-57 -32 -108 -63 -113 -68 -11 -11 23 -41 84 -77 l48 -27
29
+ 9 24 c5 12 25 63 45 112 20 49 35 91 33 92 -1 1 -49 -24 -106 -56z"/>
30
+ <path d="M643 444 c-18 -47 -31 -90 -28 -94 3 -4 51 -34 107 -66 135 -76 144
31
+ -76 281 5 59 35 107 64 107 65 0 0 -16 39 -35 86 l-34 85 -183 3 -183 2 -32
32
+ -86z"/>
33
+
34
+ </g>
35
+ </svg>
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,r;const o=__AUI_CONFIG__.tagPrefix||"aui",i="data-v-aui",s=Symbol("shadow"),a=class t extends(r=HTMLElement,n=s,r){constructor(e){super(),this.__hasVue__=!1,this[n]={needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$needHook(!0),this.$initVue())}set textContent(e){this.$needHook()?this.$textContent(e):super.textContent=e}get textContent(){return this.$needHook()?this.$textContent("default"):super.textContent||""}set innerHTML(e){this.$needHook()?this.$innerHTML(e):super.innerHTML=e}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):super.innerHTML||""}set innerText(e){this.$ignoreLog("innerText"),super.innerText=e}prepend(e){if(!this.$needHook())return super.prepend(e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):super.appendChild(e)}set value(e){let n=e;const r=this[t.shadowSymbol].value;let o;this.$isArrayValue()?(n=t.$anyToArray(e),o=JSON.stringify(n)):o=n.toString(),r!==o&&(this[t.shadowSymbol].value=o,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}hasAttribute(e){const n=this[t.shadowSymbol].el;return n?n.hasAttribute(e):super.hasAttribute(e)}setAttribute(e,n){n=n.toString();const r=this[t.shadowSymbol].el;if(r){if(r.getAttribute(e)===n)return;r.setAttribute(e,n)}this.$isShowProp(h.vueAttrName(e))&&super.setAttribute(e,n),"value"===e&&r?this.value=r.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(h.vueAttrName(e))&&super.removeAttribute(e),this.$attrChange(e)}attributeChangedCallback(e,n,r){const o=this[t.shadowSymbol].el;o&&n!==r&&(this.$isShowProp(h.vueAttrName(e))||super.removeAttribute(e),o.setAttribute(e,r||""),"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}$textContent(e,...t){if(0===t.length){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)t.push(o.textContent);return t.join("")}return this.$replaceChildren(e,[document.createTextNode(t[0]||"")]),""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)if(o.outerHTML)t.push(o.outerHTML);else{let e=o.textContent;o instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{const n=document.createElement("div");n.innerHTML=t[0]||"";const r=this.$moveChildren(n);this.$replaceChildren(e,r.default)}return""}$prepend(e,t){var n;const{start:r}=this.$slot(e)||{};null==(n=null==r?void 0:r.parentNode)||n.insertBefore(t,r.nextSibling)}$appendChild(e,t){var n;const{end:r}=this.$slot(e)||{};return null==(n=null==r?void 0:r.parentNode)||n.insertBefore(t,r),t}$childNodes(e){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)t.push(o);return t}$children(e){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)o instanceof HTMLElement&&t.push(o);return t}$replaceChildren(e,t){var n,r;const{start:o,end:i}=this.$slot(e)||{};let s=null;for(;o&&(s=o.nextSibling)&&s!==i;)null==(n=s.parentNode)||n.removeChild(s);if(i)for(;s=t.shift();)null==(r=i.parentNode)||r.insertBefore(s,i)}$slot(e,n){if(e=e||"default",!n)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=n}$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,r={default:[]};for(;n.length>0;){const o=n[0];if(null==(t=o.parentNode)||t.removeChild(o),l.$isForAuiSlot(o)){const t=o.getAttribute("for")||"default";r[t]=r[t]||[];const n=Array.prototype.slice.call(o.childNodes);l.prototype.$bind.call(o,e),r[t].push(...n)}else r.default.push(o)}return r}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;super.hasAttribute(i)?this.$call("$emit","update:value",e):super.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0}))}this.dispatchEvent(new CustomEvent("aui-attr-change",{bubbles:!0,composed:!0,detail:{attributeName:h.vueAttrName(e)}}))}$initAttrs(){const e=this.attributes,n=document.createElement("div");for(let t=0;t<e.length;t++){const r=e[t];n.setAttribute(r.name,r.value),this.$isShowProp(h.vueAttrName(r.name))||super.removeAttribute(r.name),"value"===r.name&&(this.value=r.value)}Object.defineProperty(this,"attributes",{get value(){return n.attributes},writable:!1}),this[t.shadowSymbol].el=n}$isShowProp(e){if(h.isVueAttr(e))return!0;const t=this.$getProp(e);return null==t?void 0:t.show}$getProp(e){var t;const n=h.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();h.cache.getAuiVueDefined(t)&&e.createApp(h.createVueComponent(t,this)).mount(this)}$needInit(){return!super.hasAttribute(i)}$bindVue(e){var n,r;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this.__hasVue__=!0;const o=new CustomEvent("aui-init",{bubbles:!1,detail:{code:0}});this.dispatchEvent(o);const i=null==(r=null==(n=h.cache.getAuiVueDefined(this.tagName))?void 0:n.origin)?void 0:r.auiInit;i&&i.call(e)}$call(e,...n){const r=this[t.shadowSymbol].ref;return h.$call(r,e,...n)}};a.shadowSymbol=s;let u=a;class l 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):super.textContent=e}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):super.innerHTML=e}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):super.prepend(e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):super.appendChild(e)}static $isAuiSlot(e){return!(!e||e.nodeType!==Node.ELEMENT_NODE)&&"aui-slot"===e.tagName.toLowerCase()}static $isForAuiSlot(e){return!(!l.$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`),r=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:n,end:r}),this.replaceWith(n,r)}}const h={init:()=>(h.defineSlot(),h),defineSlot(){h.defineCustomElement("aui-slot",l)},$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 r=t.split(".");let o=e,i=r.pop()||"",s=null;for(;s=r.shift();){if(!Object.prototype.hasOwnProperty.call(o,s))return new Error("no match name");o=o[s]}return 0===n.length?o[i]:(o[i]=n[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),o+e):"",cache:{defined:(Object.prototype.hasOwnProperty.call(window,"__GLOBAL_AUI_CORE__")||Object.defineProperty(window,"__GLOBAL_AUI_CORE__",{value:{defined:{}},writable:!1,enumerable:!1}),window.__GLOBAL_AUI_CORE__).defined,getAuiVueDefined:e=>(e=e.toLowerCase(),h.cache.defined[e]),getAuiPropNames(e){var t;const n=h.cache.getAuiVueDefined(e),r=(null==(t=null==n?void 0:n.origin)?void 0:t.props)||{},o=[];for(const i in r)o.push(h.auiAttrName(i));return o},addHooks(e,t){e=e.toLowerCase();const n=h.cache.getAuiVueDefined(e);n?(n.hooks=n.hooks||[],n.hooks.push(t)):h.cache.defined[e]={hooks:[t]}}},createExtendComp:t=>{var n,r;return e.defineComponent({props:{auiExtend:{type:String},value:{type:(null==(r=null==(n=t.props)?void 0:n.value)?void 0:r.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?h.$call(n,e,...t):null},$aui(){var e;return null==(e=this.$el)?void 0:e.parentNode}},data:()=>({})})},patchDefaultProps(e){var t,n;const r=null==(n=null==(t=e.props)?void 0:t.value)?void 0:n.type;return e.mixins||(e.mixins=[]),e.mixins.push(h.createExtendComp(e)),r},defineAuiComponent(e,t,n){var r,o;const i=h.patchDefaultProps(n);if(null==(r=h.cache.defined[e])?void 0:r.origin)h.cache.defined[e].origin=n;else{class r extends u{constructor(){super({valueType:i})}static get observedAttributes(){return h.cache.getAuiPropNames(e)}}h.cache.defined[e]={aui:r,vue:t,origin:n,hooks:(null==(o=h.cache.defined[e])?void 0:o.hooks)||[]},h.defineCustomElement(e,r)}},defineCustomElement(e,t){try{customElements.define(e,t)}catch(n){}},sameComponent(e,t){if(!Object.prototype.hasOwnProperty.call(t,"__hmrId"))return!1;const n=h.cache.getAuiVueDefined(e),r=null==n?void 0:n.origin;return!!r&&t.__hmrId===r.__hmrId},notifyComponentUpdate(e){document.querySelectorAll(e).forEach(e=>{e.dispatchEvent(new CustomEvent("aui-force-update"))})},define(e,t=!0){const n=h.formatName(e.name);if(!n)return e;const r=h.cache.getAuiVueDefined(n);if(r&&r.vue)return(t||h.sameComponent(n,e))&&(h.defineAuiComponent(n,r.vue,e),h.notifyComponentUpdate(n)),r.vue;const o=h.createVueComponent(n);return h.defineAuiComponent(n,o,e),o},createTempSlot(t){const n={};return Object.keys(t).forEach(t=>{n[t]=()=>e.h("aui-slot",{name:t})}),n},replaceTempSlot(e,t){Object.keys(t).forEach(n=>{const r=e.querySelector(`aui-slot[name="${n}"]`);r&&(l.prototype.$replace.call(r,e),e.$replaceChildren(n,t[n]))})},createVueComponent(t,n){const r=n?n.$moveChildren():{default:[]};return{setup(){const o=e.useAttrs(),s=e.shallowRef(null),a=e.shallowRef(null),u=e.ref({}),l=e.shallowRef(n?h.createTempSlot(r):e.useSlots()),d=e.shallowRef(null);return e.onMounted(()=>{s.value&&a.value&&a.value.$bindVue&&(a.value.$bindVue(s.value),n&&h.replaceTempSlot(n,r),a.value.addEventListener("aui-attr-change",()=>{a.value&&(u.value=h.getAuiAttrs(a.value))}),a.value.addEventListener("aui-force-update",()=>{d.value=null}),a.value.$call("$emit","update:value",a.value.value))}),()=>{if(n&&(a.value=n,u.value=h.getAuiAttrs(n)),d.value||(d.value=h.formatStructure(t)),!d.value)return null;const r=e.h(d.value,{...o,...u.value,ref:s},l.value||{});return n?r:e.h(t,{ref:a,[i]:""},[r])}}}},getAuiAttrs(e){const t={},n=e.attributes;for(let r=0;r<n.length;r++){const e=n[r];e.name===o||h.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=>h.isVueAttr(e)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),hookStructure(e,t){h.cache.addHooks(e,t)},getHookStructure(e){const t=h.cache.getAuiVueDefined(e);return((null==t?void 0:t.hooks)||[]).slice(0)},formatStructure(e){const n=h.cache.getAuiVueDefined(e);if(!(null==n?void 0:n.origin))return null;let r=t.merge({},n.origin);const o=h.getHookStructure(e);let i;for(;i=o.shift();){const e=i(r);e&&(r=e)}return r}},d=h.init();exports.AuiComponent=u,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 n,r;const o=__AUI_CONFIG__.tagPrefix||"aui",i="data-v-aui",s="auix",l=Symbol("shadow"),a=class t extends(r=HTMLElement,n=l,r){constructor(e){super(),this.__hasVue__=!1,this[n]={needHook:!1,slot:{}},this[t.shadowSymbol].options=e||{},this.$initAttrs()}connectedCallback(){this.$needInit()&&(this.$needHook(!0),this.$initVue())}set textContent(e){this.$needHook()?this.$textContent(e):super.textContent=e}get textContent(){return this.$needHook()?this.$textContent("default"):super.textContent||""}set innerHTML(e){this.$needHook()?this.$innerHTML(e):super.innerHTML=e}get innerHTML(){return this.$needHook()?this.$innerHTML("default"):super.innerHTML||""}set innerText(e){this.$ignoreLog("innerText"),super.innerText=e}prepend(e){if(!this.$needHook())return super.prepend(e);this.$prepend("default",e)}appendChild(e){return this.$needHook()?this.$appendChild("default",e):super.appendChild(e)}set value(e){let n=e;const r=this[t.shadowSymbol].value;let o;this.$isArrayValue()?(n=t.$anyToArray(e),o=JSON.stringify(n)):o=n.toString(),r!==o&&(this[t.shadowSymbol].value=o,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}hasAttribute(e){const n=this[t.shadowSymbol].el;return n?n.hasAttribute(e):super.hasAttribute(e)}setAttribute(e,n){n=n.toString();const r=this[t.shadowSymbol].el;if(r){if(r.getAttribute(e)===n)return;r.setAttribute(e,n)}this.$isShowProp(c.vueAttrName(e))&&super.setAttribute(e,n),"value"===e&&r?this.value=r.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))&&super.removeAttribute(e),this.$attrChange(e)}attributeChangedCallback(e,n,r){const o=this[t.shadowSymbol].el;o&&n!==r&&(this.$isShowProp(c.vueAttrName(e))||super.removeAttribute(e),o.setAttribute(e,r||""),"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}$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 r=this.$slotCollection(n[t]);e||(e={}),e[t]=r}e&&(this[t.shadowSymbol].slotCollection=e),this.$customEvent("aui-force-update")}$slotCollection(e){var t;const{start:n,end:r}=e,o=[];let i;for(;n&&(i=n.nextSibling)&&i!==r;)null==(t=n.parentNode)||t.removeChild(i),o.push(i);return o}$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:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)t.push(o.textContent);return t.join("")}return this.$replaceChildren(e,[document.createTextNode(t[0]||"")]),""}$innerHTML(e,...t){if(0===t.length){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)if(o.outerHTML)t.push(o.outerHTML);else{let e=o.textContent;o instanceof Comment&&(e=`\x3c!--${e}--\x3e`),t.push(e)}return t.join("")}{const n=document.createElement("div");n.innerHTML=t[0]||"";const r=this.$moveChildren(n);this.$replaceChildren(e,r.default)}return""}$prepend(e,t){var n;const{start:r}=this.$slot(e)||{};null==(n=null==r?void 0:r.parentNode)||n.insertBefore(t,r.nextSibling)}$appendChild(e,t){var n;const{end:r}=this.$slot(e)||{};return null==(n=null==r?void 0:r.parentNode)||n.insertBefore(t,r),t}$childNodes(e){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)t.push(o);return t}$children(e){const t=[],{start:n,end:r}=this.$slot(e)||{};let o=n;for(;o&&(o=o.nextSibling)&&o!==r;)o instanceof HTMLElement&&t.push(o);return t}$replaceChildren(e,t){var n,r;const{start:o,end:i}=this.$slot(e)||{};let s=null;for(;o&&(s=o.nextSibling)&&s!==i;)null==(n=s.parentNode)||n.removeChild(s);if(i)for(;s=t.shift();)null==(r=i.parentNode)||r.insertBefore(s,i)}$slot(e,n){if(e=e||"default",!n)return this[t.shadowSymbol].slot[e];this[t.shadowSymbol].slot[e]=n}$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,r={default:[]};for(;n.length>0;){const o=n[0];if(null==(t=o.parentNode)||t.removeChild(o),h.$isForAuiSlot(o)){const t=o.getAttribute("for")||"default";r[t]=r[t]||[];const n=Array.prototype.slice.call(o.childNodes);h.prototype.$bind.call(o,e),r[t].push(...n)}else r.default.push(o)}return r}$isArrayValue(){var e;return(null==(e=this[t.shadowSymbol].options)?void 0:e.valueType)===Array}$attrChange(e){if("value"===e){const e=this.value;super.hasAttribute(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 r=e[t];n.setAttribute(r.name,r.value),this.$isShowProp(c.vueAttrName(r.name))||super.removeAttribute(r.name),"value"===r.name&&(this.value=r.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!super.hasAttribute(i)}$bindVue(e){var n,r;if(this[t.shadowSymbol].ref)return;this[t.shadowSymbol].ref=e,this.__hasVue__=!0,this.$customEvent("aui-init",{bubbles:!1,detail:{code:0}});const o=null==(r=null==(n=c.cache.getAuiVueDefined(this.tagName))?void 0:n.origin)?void 0:r.auiInit;o&&o.call(e)}$call(e,...n){const r=this[t.shadowSymbol].ref;return c.$call(r,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):super.textContent=e}set innerHTML(e){var t;this._name_?null==(t=this._el_)||t.$innerHTML(this._name_,e):super.innerHTML=e}prepend(e){var t;this._name_?null==(t=this._el_)||t.$prepend(this._name_,e):super.prepend(e)}appendChild(e){var t;return this._name_?(null==(t=this._el_)||t.$appendChild(this._name_,e),e):super.appendChild(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`),r=document.createComment(`aui-slot-${t}-end`);e.$slot(t,{start:n,end:r}),this.replaceWith(n,r)}}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 r=t.split(".");let o=e,i=r.pop()||"",s=null;for(;s=r.shift();){if(!Object.prototype.hasOwnProperty.call(o,s))return new Error("no match name");o=o[s]}return 0===n.length?o[i]:(o[i]=n[0],null)},formatName:e=>e?(e=e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),o+e):"",cache:{defined:{},getAuiVueDefined:e=>(e=e.toLowerCase(),c.cache.defined[e]),getAuiPropNames(e){var t;const n=c.cache.getAuiVueDefined(e),r=(null==(t=null==n?void 0:n.origin)?void 0:t.props)||{},o=[];for(const i in r)o.push(c.auiAttrName(i));return-1===o.indexOf(s)&&o.push(s),o},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,r;return e.defineComponent({props:{[s]:{type:String},value:{type:(null==(r=null==(n=t.props)?void 0:n.value)?void 0:r.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 r=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)),r},defineAuiComponent(e,t,n){var r,o;const i=c.patchDefaultProps(n);if(null==(r=c.cache.defined[e])?void 0:r.origin)c.cache.defined[e].origin=n;else{class r extends u{constructor(){super({valueType:i})}static get observedAttributes(){return c.cache.getAuiPropNames(e)}}c.cache.defined[e]={aui:r,vue:t,origin:n,hooks:(null==(o=c.cache.defined[e])?void 0:o.hooks)||[]},c.defineCustomElement(e,r)}},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),r=null==n?void 0:n.origin;return!!r&&t.__hmrId===r.__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 r=c.cache.getAuiVueDefined(n);if(r&&r.vue)return(t||c.sameComponent(n,e))&&(c.defineAuiComponent(n,r.vue,e),c.notifyComponentUpdate(n)),r.vue;const o=c.createVueComponent(n);return c.defineAuiComponent(n,o,e),o},createTempSlot(t){const n={};return Object.keys(t).forEach(t=>{n[t]=()=>e.h("aui-slot",{name:t})}),n},replaceTempSlot(e,t){Object.keys(t).forEach(n=>{const r=e.querySelector(`aui-slot[name="${n}"]`);r&&(h.prototype.$replace.call(r,e),e.$replaceChildren(n,t[n]))})},createVueComponent(t,n){const r=n?n.$moveChildren():{default:[]};return{setup(){const o=e.useAttrs(),s=e.shallowRef(null),l=e.shallowRef(null),a=e.ref({}),u=e.shallowRef(n?c.createTempSlot(r):e.useSlots()),h=e.shallowRef(null);return e.onMounted(()=>{s.value&&l.value&&l.value.$bindVue&&(l.value.$bindVue(s.value),n&&c.replaceTempSlot(n,r),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))}),e.onUpdated(()=>{l.value&&l.value.$slotReplace()}),()=>{if(n&&(l.value=n,a.value=c.getAuiAttrs(n)),h.value||(h.value=c.formatStructure(t)),!h.value)return null;const r=e.h(h.value,{...o,...a.value,ref:s},u.value||{});return n?r:e.h(t,{ref:l,[i]:""},[r])}}}},getAuiAttrs(e){const t={},n=e.attributes;for(let r=0;r<n.length;r++){const e=n[r];e.name===o||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 r=t.merge({},n.origin);const o=c.getHookStructure(e);let i;for(;i=o.shift();){const e=i(r);e&&(r=e)}return r}},d=c.init();exports.AuiComponent=u,exports.default=d;//# sourceMappingURL=core.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs.js","sources":["../src/core.ts"],"sourcesContent":["import type { Component as ComponentType } from 'vue';\r\nimport { h, useSlots, useAttrs, onMounted, ref, createApp, defineComponent, shallowRef } from 'vue';\r\nimport { merge } from 'ts-deepmerge';\r\nexport { type Component as TraditionComponent } from './types';\r\n\r\nconst TAG_PREFIX = __AUI_CONFIG__.tagPrefix || 'aui';\r\nconst AUI_ATTR_FLAG = 'data-v-aui';\r\n\r\nconst shadowSymbol = Symbol('shadow');\r\n\r\nexport type HookHandler = (c: any) => void | any;\r\n\r\ntype AUI_COMPONENT_OPTION = {\r\n valueType?: any\r\n}\r\n\r\nexport type Component = ComponentType;\r\n\r\ntype AUI_SLOT_CACHE = {\r\n start: Comment,\r\n end: Comment,\r\n};\r\n\r\ntype AUI_COMP_SHADOW = {\r\n el?: HTMLElement | null,\r\n ref?: Component | null,\r\n value?: string | null,\r\n options?: AUI_COMPONENT_OPTION,\r\n needHook: boolean,\r\n slot: Record<string, AUI_SLOT_CACHE>,\r\n};\r\n\r\ntype GlobalAuiCore = {\r\n defined: Record<string, AUI_VUE_DEFINE_CACHE>\r\n}\r\n\r\ntype SlotElement = {\r\n default: Node[],\r\n [key: string]: Node[],\r\n}\r\n\r\nfunction getGlobalAuiCore(): GlobalAuiCore {\r\n if (!Object.prototype.hasOwnProperty.call(window, '__GLOBAL_AUI_CORE__')) {\r\n Object.defineProperty(window, '__GLOBAL_AUI_CORE__', {\r\n value: {\r\n defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>\r\n },\r\n writable: false,\r\n enumerable: false,\r\n });\r\n }\r\n return (window as any)['__GLOBAL_AUI_CORE__'];\r\n}\r\n\r\n\r\nexport class AuiComponent extends HTMLElement {\r\n __hasVue__: boolean = false;\r\n private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\r\n private [shadowSymbol]: AUI_COMP_SHADOW = { needHook: false, slot: {} };\r\n\r\n constructor(options?: AUI_COMPONENT_OPTION) {\r\n super();\r\n this[AuiComponent.shadowSymbol].options = options || {};\r\n this.$initAttrs();\r\n }\r\n\r\n connectedCallback() {\r\n // console.log('aui component connected:', this.tagName);\r\n\r\n if (this.$needInit()) {\r\n this.$needHook(true);\r\n this.$initVue();\r\n }\r\n\r\n }\r\n\r\n set textContent(v: string) {\r\n if (!this.$needHook()) {\r\n super.textContent = v;\r\n return;\r\n }\r\n\r\n this.$textContent(v);\r\n }\r\n\r\n get textContent() {\r\n if (!this.$needHook()) {\r\n return super.textContent || '';\r\n }\r\n\r\n return this.$textContent('default');\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (!this.$needHook()) {\r\n super.innerHTML = v;\r\n return;\r\n }\r\n\r\n this.$innerHTML(v);\r\n }\r\n\r\n get innerHTML() {\r\n if (!this.$needHook()) {\r\n return super.innerHTML || '';\r\n }\r\n\r\n return this.$innerHTML('default');\r\n }\r\n\r\n set innerText(v: string) {\r\n this.$ignoreLog('innerText');\r\n super.innerText = v;\r\n }\r\n\r\n prepend<T extends Node>(node: T) {\r\n if (!this.$needHook()) {\r\n return super.prepend(node);\r\n }\r\n this.$prepend('default', node);\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (!this.$needHook()) {\r\n return super.appendChild(node);\r\n }\r\n return this.$appendChild('default', node);\r\n }\r\n\r\n set value(v: string | null) {\r\n let val: any = v;\r\n\r\n const oldValue = this[AuiComponent.shadowSymbol].value;\r\n let newValue;\r\n\r\n if (this.$isArrayValue()) {\r\n val = AuiComponent.$anyToArray(v);\r\n newValue = JSON.stringify(val);\r\n } else {\r\n newValue = val.toString();\r\n }\r\n\r\n if (oldValue === newValue) return;\r\n\r\n this[AuiComponent.shadowSymbol].value = newValue;\r\n\r\n if (this[AuiComponent.shadowSymbol].el) {\r\n this.$attrChange('value');\r\n }\r\n }\r\n\r\n get value(): any {\r\n const v = this[AuiComponent.shadowSymbol].value;\r\n if (this.$isArrayValue()) {\r\n return typeof v === 'string' ? JSON.parse(v) : v;\r\n } else {\r\n return v;\r\n }\r\n }\r\n\r\n hasAttribute(qualifiedName: string): boolean {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n return shadowElement.hasAttribute(qualifiedName);\r\n }\r\n return super.hasAttribute(qualifiedName);\r\n }\r\n\r\n setAttribute(qualifiedName: string, value: string): void {\r\n value = value.toString();\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n if (shadowElement.getAttribute(qualifiedName) === value) return;\r\n shadowElement.setAttribute(qualifiedName, value);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.setAttribute(qualifiedName, value);\r\n }\r\n\r\n if (qualifiedName === 'value' && shadowElement) {\r\n this.value = shadowElement.getAttribute(qualifiedName);\r\n } else {\r\n this.$attrChange(qualifiedName);\r\n }\r\n }\r\n\r\n getAttribute(qualifiedName: string): string | null {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n return shadowElement ? shadowElement.getAttribute(qualifiedName) : super.getAttribute(qualifiedName);\r\n }\r\n\r\n removeAttribute(qualifiedName: string): void {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n shadowElement.removeAttribute(qualifiedName);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.removeAttribute(qualifiedName);\r\n }\r\n this.$attrChange(qualifiedName);\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (!shadowElement) return;\r\n if (oldValue === newValue) return;\r\n\r\n if (!this.$isShowProp(_M.vueAttrName(name))) {\r\n super.removeAttribute(name);\r\n }\r\n\r\n shadowElement.setAttribute(name, newValue || '');\r\n if (name !== 'value') {\r\n this.$attrChange(name);\r\n }\r\n\r\n }\r\n\r\n // ---------------------------\r\n\r\n static $anyToArray(s: any): any {\r\n let arr = [];\r\n if (typeof s === 'string') {\r\n try {\r\n const json = JSON.parse(s);\r\n if (json instanceof Array) {\r\n return json;\r\n }\r\n } catch (_) { }\r\n const sp = s.split(',');\r\n arr = sp.filter((item) => item ? item.trim() : false);\r\n } else if (s instanceof Array) {\r\n arr = s;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n // ---------------------------\r\n\r\n $textContent(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next.textContent);\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n this.$replaceChildren(name, [document.createTextNode(args[0] || '')]);\r\n }\r\n return '';\r\n }\r\n\r\n $innerHTML(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if ((next as any).outerHTML) {\r\n ret.push((next as any).outerHTML);\r\n } else {\r\n let text = next.textContent;\r\n if (next instanceof Comment) {\r\n text = `<!--${text}-->`;\r\n }\r\n ret.push(text);\r\n }\r\n\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n const tpl = document.createElement('div');\r\n tpl.innerHTML = args[0] || '';\r\n const children = this.$moveChildren(tpl as any);\r\n this.$replaceChildren(name, children.default);\r\n }\r\n return '';\r\n }\r\n\r\n $prepend<T extends Node>(name: string, node: T) {\r\n const { start } = this.$slot(name) || {};\r\n start?.parentNode?.insertBefore(node, start.nextSibling);\r\n }\r\n\r\n $appendChild<T extends Node>(name: string, node: T): T {\r\n const { end } = this.$slot(name) || {};\r\n end?.parentNode?.insertBefore(node, end);\r\n return node;\r\n }\r\n\r\n $childNodes(name?: string): NodeListOf<ChildNode> {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next);\r\n }\r\n return ret as any;\r\n }\r\n\r\n $children(name?: string): HTMLCollection {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if (next instanceof HTMLElement) {\r\n ret.push(next);\r\n }\r\n }\r\n return ret as any;\r\n }\r\n\r\n $replaceChildren(name: string, children: any[]) {\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = null;\r\n while (start && (next = start.nextSibling) && next !== end) {\r\n next.parentNode?.removeChild(next);\r\n }\r\n if (end) {\r\n while (next = children.shift()) {\r\n end.parentNode?.insertBefore(next, end);\r\n }\r\n }\r\n }\r\n\r\n $slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined {\r\n name = name || 'default';\r\n if (slot) {\r\n this[AuiComponent.shadowSymbol].slot[name] = slot;\r\n } else {\r\n return this[AuiComponent.shadowSymbol].slot[name];\r\n }\r\n }\r\n\r\n $needHook(need?: boolean): boolean {\r\n if (typeof need === 'boolean') {\r\n this[AuiComponent.shadowSymbol].needHook = need;\r\n }\r\n return this[AuiComponent.shadowSymbol].needHook;\r\n }\r\n\r\n $ignoreLog(name: string) {\r\n console.warn(`aui component ignore : ${name}`);\r\n }\r\n\r\n $moveChildren(el?: AuiComponent): SlotElement {\r\n el = el || this;\r\n const list = el.childNodes;\r\n const ret: SlotElement = {\r\n default: []\r\n };\r\n while (list.length > 0) {\r\n const child = list[0] as AuiSlot;\r\n child.parentNode?.removeChild(child);\r\n if (AuiSlot.$isForAuiSlot(child)) {\r\n const name = child.getAttribute('for') || 'default';\r\n ret[name] = ret[name] || [];\r\n const children = Array.prototype.slice.call(child.childNodes);\r\n AuiSlot.prototype.$bind.call(child, el);\r\n ret[name].push(...children);\r\n } else {\r\n ret['default'].push(child);\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n $isArrayValue() {\r\n return this[AuiComponent.shadowSymbol].options?.valueType === Array;\r\n }\r\n\r\n $attrChange(name: string) {\r\n if (name === 'value') {\r\n const val = this.value;\r\n if (super.hasAttribute(AUI_ATTR_FLAG)) {\r\n this.$call('$emit', `update:value`, val);\r\n } else {\r\n super.dispatchEvent(new CustomEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n }));\r\n // super.dispatchEvent(new CustomEvent('change', {\r\n // bubbles: true,\r\n // composed: true,\r\n // }));\r\n }\r\n }\r\n this.dispatchEvent(new CustomEvent('aui-attr-change', {\r\n bubbles: true,\r\n composed: true,\r\n detail: { attributeName: _M.vueAttrName(name) }\r\n }));\r\n }\r\n\r\n $initAttrs() {\r\n const attributes = this.attributes;\r\n const shadow = document.createElement('div');\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n shadow.setAttribute(attr.name, attr.value);\r\n if (!this.$isShowProp(_M.vueAttrName(attr.name))) {\r\n super.removeAttribute(attr.name);\r\n }\r\n if (attr.name === 'value') {\r\n this.value = attr.value;\r\n }\r\n }\r\n Object.defineProperty(this, 'attributes', {\r\n get value() {\r\n return shadow.attributes;\r\n },\r\n writable: false,\r\n });\r\n\r\n this[AuiComponent.shadowSymbol].el = shadow;\r\n }\r\n\r\n $isShowProp(name: string): boolean {\r\n if (_M.isVueAttr(name)) return true;\r\n const prop = this.$getProp(name);\r\n // console.log('name:', name)\r\n const isShow = prop?.show;\r\n return isShow;\r\n }\r\n\r\n $getProp(name: string): any {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(this.tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n return props[name];\r\n }\r\n\r\n $initVue() {\r\n if (this.__hasVue__) {\r\n return;\r\n }\r\n this.__hasVue__ = true;\r\n\r\n const tagName = this.tagName.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined) {\r\n console.warn(`AUI组件 [${this.tagName}] 未定义`);\r\n return;\r\n }\r\n createApp(_M.createVueComponent(tagName, this)).mount(this);\r\n }\r\n\r\n $needInit() {\r\n const flag = super.hasAttribute(AUI_ATTR_FLAG);\r\n if (flag) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n $bindVue(v: Component) {\r\n if (this[AuiComponent.shadowSymbol].ref) {\r\n return;\r\n }\r\n // Object.assign(v, { $aui: this });\r\n this[AuiComponent.shadowSymbol].ref = v;\r\n this.__hasVue__ = true;\r\n // 触发init事件\r\n const event = new CustomEvent('aui-init', {\r\n bubbles: false,\r\n detail: { code: 0 }\r\n });\r\n this.dispatchEvent(event);\r\n const auiInit = (_M.cache.getAuiVueDefined(this.tagName)?.origin as any)?.auiInit;\r\n if (auiInit) {\r\n auiInit.call(v);\r\n }\r\n }\r\n\r\n $call(name?: string, ...args: any[]): any {\r\n const ref = this[AuiComponent.shadowSymbol].ref as Record<string, any>;\r\n return _M.$call(ref, name, ...args);\r\n }\r\n\r\n}\r\n\r\ntype TypeAuiComponent = typeof AuiComponent;\r\n\r\ntype AUI_VUE_DEFINE_CACHE = {\r\n aui?: TypeAuiComponent,\r\n vue?: Component,\r\n origin?: Component,\r\n hooks?: HookHandler[],\r\n}\r\n\r\n\r\nclass AuiSlot extends HTMLElement {\r\n\r\n _el_?: AuiComponent;\r\n _name_?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n connectedCallback() {\r\n this.style.display = 'none';\r\n }\r\n\r\n set textContent(v: string) {\r\n if (this._name_) {\r\n this._el_?.$textContent(this._name_, v);\r\n } else {\r\n super.textContent = v;\r\n }\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (this._name_) {\r\n this._el_?.$innerHTML(this._name_, v);\r\n } else {\r\n super.innerHTML = v;\r\n }\r\n }\r\n\r\n prepend<T extends Node>(node: T): void {\r\n if (this._name_) {\r\n this._el_?.$prepend(this._name_, node);\r\n } else {\r\n super.prepend(node);\r\n }\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (this._name_) {\r\n this._el_?.$appendChild(this._name_, node);\r\n return node;\r\n } else {\r\n return super.appendChild(node);\r\n }\r\n }\r\n\r\n // ---------------------\r\n\r\n static $isAuiSlot(el: HTMLElement) {\r\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\r\n\r\n if (el.tagName.toLowerCase() === 'aui-slot') return true;\r\n\r\n return false;\r\n }\r\n\r\n static $isForAuiSlot(el: HTMLElement) {\r\n if (AuiSlot.$isAuiSlot(el) && el.hasAttribute('for')) return true;\r\n return false;\r\n }\r\n\r\n $bind(el: AuiComponent) {\r\n this._el_ = el;\r\n this._name_ = this.getAttribute('for') || 'default';\r\n }\r\n\r\n $replace(el: AuiComponent) {\r\n const name = this.getAttribute('name') || 'default';\r\n const start = document.createComment(`aui-slot-${name}-start`);\r\n const end = document.createComment(`aui-slot-${name}-end`);\r\n\r\n el.$slot(name, { start, end });\r\n this.replaceWith(start, end);\r\n }\r\n}\r\n\r\nconst _M = {\r\n init() {\r\n _M.defineSlot();\r\n return _M;\r\n },\r\n defineSlot() {\r\n _M.defineCustomElement('aui-slot', AuiSlot);\r\n },\r\n $call(ref: Record<string, any>, name?: string, ...args: any[]): any {\r\n\r\n if (!ref) {\r\n return new Error('not init');\r\n }\r\n\r\n if (!name) return ref;\r\n\r\n if (typeof ref[name] === 'function') {\r\n return ref[name].call(ref, ...args);\r\n }\r\n\r\n const sp = name.split('.');\r\n let target = ref, last = sp.pop() || '', cur = null;\r\n\r\n while (cur = sp.shift()) {\r\n if (Object.prototype.hasOwnProperty.call(target, cur)) {\r\n target = target[cur];\r\n } else {\r\n return new Error('no match name');\r\n }\r\n }\r\n\r\n if (args.length === 0) {\r\n return target[last];\r\n } else {\r\n target[last] = args[0];\r\n return null;\r\n }\r\n\r\n },\r\n formatName(name: string | undefined): string {\r\n if (!name) {\r\n return '';\r\n }\r\n name = name.replace(/[A-Z]/g, function (s) {\r\n return '-' + s.toLowerCase();\r\n });\r\n return TAG_PREFIX + name;\r\n },\r\n cache: {\r\n defined: getGlobalAuiCore().defined,\r\n getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined {\r\n tagName = tagName.toLowerCase();\r\n return _M.cache.defined[tagName];\r\n },\r\n getAuiPropNames(tagName: string): string[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n const names = [];\r\n for (const key in props) {\r\n names.push(_M.auiAttrName(key));\r\n }\r\n return names;\r\n },\r\n addHooks(name: string, handle: HookHandler) {\r\n name = name.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n if (auiVueDefined) {\r\n auiVueDefined.hooks = auiVueDefined.hooks || [];\r\n auiVueDefined.hooks.push(handle);\r\n } else {\r\n _M.cache.defined[name] = {\r\n hooks: [handle],\r\n }\r\n }\r\n }\r\n },\r\n createExtendComp(v: Component): Component {\r\n return defineComponent({\r\n props: {\r\n auiExtend: {\r\n type: String,\r\n },\r\n value: {\r\n type: (v as any).props?.value?.type || [String, Number, Array],\r\n }\r\n },\r\n methods: {\r\n $anyToArray: AuiComponent.$anyToArray,\r\n $value(...args: any[]) {\r\n const $aui = this.$aui();\r\n if (args.length === 0) {\r\n return $aui?.value;\r\n } else {\r\n if ($aui) {\r\n $aui.value = args[0];\r\n }\r\n }\r\n },\r\n $call(name?: string, ...args: any[]): any {\r\n const $aui = this.$aui();\r\n if (!$aui) return null;\r\n return _M.$call($aui, name, ...args);\r\n },\r\n $aui(): AuiComponent | null {\r\n return this.$el?.parentNode;\r\n },\r\n },\r\n data() {\r\n return {\r\n\r\n }\r\n }\r\n })\r\n },\r\n patchDefaultProps(origin: Component): any {\r\n\r\n const valueType = (origin as any).props?.value?.type;\r\n\r\n if (!(origin as any).mixins) {\r\n (origin as any).mixins = [];\r\n }\r\n\r\n (origin as any).mixins.push(_M.createExtendComp(origin));\r\n\r\n return valueType;\r\n\r\n },\r\n defineAuiComponent(tagName: string, component: Component, origin: Component) {\r\n\r\n const valueType = _M.patchDefaultProps(origin);\r\n\r\n if (!_M.cache.defined[tagName]?.origin) {\r\n class AuiChild extends AuiComponent {\r\n constructor() {\r\n super({ valueType });\r\n }\r\n\r\n static get observedAttributes() {\r\n return _M.cache.getAuiPropNames(tagName);\r\n }\r\n\r\n }\r\n\r\n _M.cache.defined[tagName] = {\r\n aui: AuiChild,\r\n vue: component,\r\n origin,\r\n hooks: _M.cache.defined[tagName]?.hooks || [],\r\n };\r\n\r\n _M.defineCustomElement(tagName, AuiChild);\r\n\r\n } else {\r\n _M.cache.defined[tagName].origin = origin;\r\n }\r\n },\r\n\r\n defineCustomElement(tagName: string, cls: any) {\r\n try {\r\n customElements.define(tagName, cls);\r\n } catch (_) {\r\n // console.warn('defineCustomElement error', error);\r\n }\r\n },\r\n\r\n sameComponent(tagName: string, v: any): boolean {\r\n if (!Object.prototype.hasOwnProperty.call(v, '__hmrId')) return false;\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const origin = auiVueDefined?.origin as any;\r\n if (!origin) return false;\r\n return v.__hmrId === origin.__hmrId;\r\n },\r\n\r\n notifyComponentUpdate(tagName: string) {\r\n const comps = document.querySelectorAll(tagName);\r\n comps.forEach((comp) => {\r\n comp.dispatchEvent(new CustomEvent('aui-force-update'));\r\n });\r\n },\r\n\r\n define(v: Component, force: boolean = true): Component {\r\n const tagName = _M.formatName(v.name);\r\n\r\n // console.log('define aui comp, name is', tagName);\r\n\r\n if (!tagName) {\r\n console.warn('当前组件不符合AUI定义');\r\n return v;\r\n }\r\n\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n\r\n if (auiVueDefined && auiVueDefined.vue) {\r\n if (force || _M.sameComponent(tagName, v)) {\r\n console.log('aui组件更新origin定义');\r\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\r\n _M.notifyComponentUpdate(tagName);\r\n } else {\r\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\r\n }\r\n\r\n return auiVueDefined.vue;\r\n }\r\n\r\n const wrappedComponent = _M.createVueComponent(tagName);\r\n\r\n _M.defineAuiComponent(tagName, wrappedComponent, v);\r\n\r\n return wrappedComponent;\r\n },\r\n createTempSlot(children: SlotElement): any {\r\n const ret = {} as { [key: string]: any };\r\n Object.keys(children).forEach((name) => {\r\n ret[name] = () => h('aui-slot', { name });\r\n });\r\n return ret;\r\n },\r\n replaceTempSlot(el: AuiComponent, children: SlotElement) {\r\n const names = Object.keys(children);\r\n names.forEach((name) => {\r\n const slot = el.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot | null;\r\n if (slot) {\r\n AuiSlot.prototype.$replace.call(slot, el);\r\n el.$replaceChildren(name, children[name]);\r\n }\r\n });\r\n\r\n },\r\n createVueComponent(tagName: string, el?: AuiComponent): Component {\r\n\r\n const children = el ? el.$moveChildren() : { default: [] };\r\n\r\n const wrappedComponent = {\r\n setup() {\r\n const attrs = useAttrs()\r\n const vueComponentRef = shallowRef<any>(null)\r\n const elementRef = shallowRef<AuiComponent | null>(null)\r\n const selfAttrs = ref<Record<string, any>>({})\r\n const slotsRef = shallowRef<any>(el ? _M.createTempSlot(children) : useSlots())\r\n const target = shallowRef<Component | null>(null);\r\n\r\n onMounted(() => {\r\n if (vueComponentRef.value && elementRef.value && elementRef.value.$bindVue) {\r\n elementRef.value.$bindVue(vueComponentRef.value);\r\n\r\n el && _M.replaceTempSlot(el, children);\r\n\r\n // 监听属性变化事件\r\n elementRef.value.addEventListener('aui-attr-change', () => {\r\n if (elementRef.value) {\r\n selfAttrs.value = _M.getAuiAttrs(elementRef.value);\r\n }\r\n });\r\n\r\n // 监听自定义强制更新事件\r\n elementRef.value.addEventListener('aui-force-update', () => {\r\n target.value = null;\r\n });\r\n\r\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\r\n } else {\r\n console.warn('AUI组件绑定失败');\r\n }\r\n })\r\n\r\n return () => {\r\n\r\n if (el) {\r\n elementRef.value = el;\r\n selfAttrs.value = _M.getAuiAttrs(el);\r\n }\r\n\r\n if (!target.value) {\r\n (target as any).value = _M.formatStructure(tagName);\r\n }\r\n\r\n if (!target.value) {\r\n console.warn('AUI组件未定义,加载失败,name:', tagName);\r\n return null;\r\n }\r\n\r\n const trueComp = h(target.value, { ...attrs, ...selfAttrs.value, ref: vueComponentRef }, slotsRef.value || {});\r\n\r\n const ret = el ? trueComp : h(tagName, { ref: elementRef, [AUI_ATTR_FLAG]: '' }, [\r\n trueComp\r\n ]);\r\n\r\n return ret;\r\n }\r\n }\r\n };\r\n\r\n return wrappedComponent;\r\n },\r\n getAuiAttrs(el: AuiComponent): Record<string, any> {\r\n\r\n const attrs = {} as Record<string, any>;\r\n\r\n const attributes = el.attributes;\r\n\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n // 跳过 aui 和 vue 标记属性\r\n if (attr.name === TAG_PREFIX || _M.isVueAttr(attr.name)) continue;\r\n attrs[attr.name] = attr.value;\r\n }\r\n\r\n if (el.value !== null) {\r\n attrs.value = el.value;\r\n }\r\n\r\n return attrs;\r\n },\r\n isVueAttr(name: string): boolean {\r\n return name.indexOf('data-v-') === 0;\r\n },\r\n auiAttrName(name: string): string {\r\n return name.replace(/([A-Z])/g, (a) => '-' + a.toLowerCase());\r\n },\r\n vueAttrName(name: string): string {\r\n if (_M.isVueAttr(name)) return name;\r\n return name.replace(/-([a-z])/g, (_, s1) => s1.toUpperCase());\r\n },\r\n hookStructure(name: string, handle: HookHandler) {\r\n _M.cache.addHooks(name, handle);\r\n },\r\n getHookStructure(name: string): HookHandler[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n const hooks = auiVueDefined?.hooks || [];\r\n return hooks.slice(0);\r\n },\r\n formatStructure(tagName: string): Component | null {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined?.origin) {\r\n return null;\r\n }\r\n let origin = merge({}, auiVueDefined.origin) as Component;\r\n const hooks = _M.getHookStructure(tagName);\r\n let handle;\r\n while (handle = hooks.shift()) {\r\n const cur = handle(origin);\r\n if (cur) {\r\n origin = cur;\r\n }\r\n }\r\n\r\n return origin;\r\n }\r\n};\r\n\r\nexport default _M.init();"],"names":["_a","_b","TAG_PREFIX","__AUI_CONFIG__","tagPrefix","AUI_ATTR_FLAG","shadowSymbol","Symbol","AuiComponent","HTMLElement","constructor","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$needHook","$initVue","textContent","v","$textContent","innerHTML","$innerHTML","innerText","$ignoreLog","prepend","node","$prepend","appendChild","$appendChild","value","val","oldValue","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","hasAttribute","qualifiedName","shadowElement","setAttribute","getAttribute","$isShowProp","_M","vueAttrName","removeAttribute","attributeChangedCallback","name","s","arr","json","Array","_","split","filter","item","trim","args","length","ret","start","end","$slot","next","nextSibling","push","join","$replaceChildren","document","createTextNode","outerHTML","text","Comment","tpl","createElement","children","$moveChildren","default","parentNode","insertBefore","$childNodes","$children","removeChild","shift","need","list","childNodes","child","AuiSlot","$isForAuiSlot","prototype","slice","call","$bind","valueType","$call","dispatchEvent","CustomEvent","bubbles","composed","detail","attributeName","attributes","shadow","i","attr","Object","defineProperty","writable","isVueAttr","prop","$getProp","show","auiVueDefined","cache","getAuiVueDefined","tagName","origin","props","toLowerCase","createApp","createVueComponent","mount","$bindVue","ref","event","code","auiInit","_AuiComponent","style","display","_name_","_el_","$isAuiSlot","nodeType","Node","ELEMENT_NODE","$replace","createComment","replaceWith","init","defineSlot","defineCustomElement","Error","sp","target","last","pop","cur","hasOwnProperty","formatName","replace","defined","window","enumerable","__GLOBAL_AUI_CORE__","getAuiPropNames","names","key","auiAttrName","addHooks","handle","hooks","createExtendComp","defineComponent","auiExtend","type","String","Number","methods","$value","$aui","$el","data","patchDefaultProps","mixins","defineAuiComponent","component","AuiChild","observedAttributes","aui","vue","cls","customElements","define","sameComponent","__hmrId","notifyComponentUpdate","querySelectorAll","forEach","comp","force","wrappedComponent","createTempSlot","keys","h","replaceTempSlot","querySelector","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","useSlots","onMounted","addEventListener","getAuiAttrs","formatStructure","trueComp","indexOf","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';\r\nimport { h, useSlots, useAttrs, onMounted, onUpdated, ref, createApp, defineComponent, shallowRef } from 'vue';\r\nimport { merge } from 'ts-deepmerge';\r\nexport { type Component as TraditionComponent } from './types';\r\n\r\nconst TAG_PREFIX = __AUI_CONFIG__.tagPrefix || 'aui';\r\nconst AUI_ATTR_FLAG = 'data-v-aui';\r\nconst AUI_EXTEND_ATTR = 'auix';\r\n\r\nconst shadowSymbol = Symbol('shadow');\r\n\r\nexport type HookHandler = (c: any) => void | any;\r\n\r\ntype AUI_COMPONENT_OPTION = {\r\n valueType?: any\r\n}\r\n\r\nexport type Component = ComponentType;\r\n\r\ntype AUI_SLOT_CACHE = {\r\n start: Comment,\r\n end: Comment,\r\n};\r\n\r\ntype AUI_COMP_SHADOW = {\r\n el?: HTMLElement | null,\r\n ref?: Component | null,\r\n value?: string | null,\r\n options?: AUI_COMPONENT_OPTION,\r\n needHook: boolean,\r\n slot: Record<string, AUI_SLOT_CACHE>,\r\n slotCollection?: Record<string, any[]>,\r\n};\r\n\r\ntype GlobalAuiCore = {\r\n defined: Record<string, AUI_VUE_DEFINE_CACHE>\r\n}\r\n\r\ntype SlotElement = {\r\n default: Node[],\r\n [key: string]: Node[],\r\n}\r\n\r\n// function getGlobalAuiCore(): GlobalAuiCore {\r\n// if (!Object.prototype.hasOwnProperty.call(window, '__GLOBAL_AUI_CORE__')) {\r\n// Object.defineProperty(window, '__GLOBAL_AUI_CORE__', {\r\n// value: {\r\n// defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>\r\n// },\r\n// writable: false,\r\n// enumerable: false,\r\n// });\r\n// }\r\n// return (window as any)['__GLOBAL_AUI_CORE__'];\r\n// }\r\n\r\n\r\nexport class AuiComponent extends HTMLElement {\r\n __hasVue__: boolean = false;\r\n private static readonly shadowSymbol: typeof shadowSymbol = shadowSymbol;\r\n private [shadowSymbol]: AUI_COMP_SHADOW = { needHook: false, slot: {} };\r\n\r\n constructor(options?: AUI_COMPONENT_OPTION) {\r\n super();\r\n this[AuiComponent.shadowSymbol].options = options || {};\r\n this.$initAttrs();\r\n }\r\n\r\n connectedCallback() {\r\n // console.log('aui component connected:', this.tagName);\r\n\r\n if (this.$needInit()) {\r\n this.$needHook(true);\r\n this.$initVue();\r\n }\r\n\r\n }\r\n\r\n set textContent(v: string) {\r\n if (!this.$needHook()) {\r\n super.textContent = v;\r\n return;\r\n }\r\n\r\n this.$textContent(v);\r\n }\r\n\r\n get textContent() {\r\n if (!this.$needHook()) {\r\n return super.textContent || '';\r\n }\r\n\r\n return this.$textContent('default');\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (!this.$needHook()) {\r\n super.innerHTML = v;\r\n return;\r\n }\r\n\r\n this.$innerHTML(v);\r\n }\r\n\r\n get innerHTML() {\r\n if (!this.$needHook()) {\r\n return super.innerHTML || '';\r\n }\r\n\r\n return this.$innerHTML('default');\r\n }\r\n\r\n set innerText(v: string) {\r\n this.$ignoreLog('innerText');\r\n super.innerText = v;\r\n }\r\n\r\n prepend<T extends Node>(node: T) {\r\n if (!this.$needHook()) {\r\n return super.prepend(node);\r\n }\r\n this.$prepend('default', node);\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (!this.$needHook()) {\r\n return super.appendChild(node);\r\n }\r\n return this.$appendChild('default', node);\r\n }\r\n\r\n set value(v: string | null) {\r\n let val: any = v;\r\n\r\n const oldValue = this[AuiComponent.shadowSymbol].value;\r\n let newValue;\r\n\r\n if (this.$isArrayValue()) {\r\n val = AuiComponent.$anyToArray(v);\r\n newValue = JSON.stringify(val);\r\n } else {\r\n newValue = val.toString();\r\n }\r\n\r\n if (oldValue === newValue) return;\r\n\r\n this[AuiComponent.shadowSymbol].value = newValue;\r\n\r\n if (this[AuiComponent.shadowSymbol].el) {\r\n this.$attrChange('value');\r\n }\r\n }\r\n\r\n get value(): any {\r\n const v = this[AuiComponent.shadowSymbol].value;\r\n if (this.$isArrayValue()) {\r\n return typeof v === 'string' ? JSON.parse(v) : v;\r\n } else {\r\n return v;\r\n }\r\n }\r\n\r\n hasAttribute(qualifiedName: string): boolean {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n return shadowElement.hasAttribute(qualifiedName);\r\n }\r\n return super.hasAttribute(qualifiedName);\r\n }\r\n\r\n setAttribute(qualifiedName: string, value: string): void {\r\n value = value.toString();\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n if (shadowElement.getAttribute(qualifiedName) === value) return;\r\n shadowElement.setAttribute(qualifiedName, value);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.setAttribute(qualifiedName, value);\r\n }\r\n\r\n if (qualifiedName === 'value' && shadowElement) {\r\n this.value = shadowElement.getAttribute(qualifiedName);\r\n } else {\r\n this.$attrChange(qualifiedName);\r\n }\r\n }\r\n\r\n getAttribute(qualifiedName: string): string | null {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n return shadowElement ? shadowElement.getAttribute(qualifiedName) : super.getAttribute(qualifiedName);\r\n }\r\n\r\n removeAttribute(qualifiedName: string): void {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (shadowElement) {\r\n shadowElement.removeAttribute(qualifiedName);\r\n }\r\n const isShow = this.$isShowProp(_M.vueAttrName(qualifiedName));\r\n if (isShow) {\r\n super.removeAttribute(qualifiedName);\r\n }\r\n this.$attrChange(qualifiedName);\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\r\n const shadowElement = this[AuiComponent.shadowSymbol].el;\r\n if (!shadowElement) return;\r\n if (oldValue === newValue) return;\r\n\r\n if (!this.$isShowProp(_M.vueAttrName(name))) {\r\n super.removeAttribute(name);\r\n }\r\n\r\n shadowElement.setAttribute(name, newValue || '');\r\n if (name !== 'value') {\r\n this.$attrChange(name);\r\n }\r\n\r\n }\r\n\r\n // ---------------------------\r\n\r\n static $anyToArray(s: any): any {\r\n let arr = [];\r\n if (typeof s === 'string') {\r\n try {\r\n const json = JSON.parse(s);\r\n if (json instanceof Array) {\r\n return json;\r\n }\r\n } catch (_) { }\r\n const sp = s.split(',');\r\n arr = sp.filter((item) => item ? item.trim() : false);\r\n } else if (s instanceof Array) {\r\n arr = s;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n // ---------------------------\r\n\r\n $customEvent(name: string, opts?: any) {\r\n this.dispatchEvent(new CustomEvent(name, Object.assign({\r\n bubbles: false,\r\n composed: false,\r\n cancelable: true,\r\n }, opts || {})));\r\n }\r\n\r\n $forceUpdate() {\r\n let slotCollection: Record<string, any> | null = null;\r\n const slot = this[AuiComponent.shadowSymbol].slot;\r\n for (const name in slot) {\r\n const children = this.$slotCollection(slot[name]);\r\n if (!slotCollection) slotCollection = {};\r\n slotCollection[name] = children;\r\n }\r\n\r\n if (slotCollection) {\r\n this[AuiComponent.shadowSymbol].slotCollection = slotCollection;\r\n }\r\n\r\n this.$customEvent('aui-force-update');\r\n }\r\n\r\n $slotCollection(cache: AUI_SLOT_CACHE) {\r\n const { start, end } = cache;\r\n const children = [];\r\n let child;\r\n while (start && (child = start.nextSibling) && child !== end) {\r\n start.parentNode?.removeChild(child);\r\n children.push(child);\r\n }\r\n return children;\r\n }\r\n\r\n $slotReplace() {\r\n const slotCollection = this[AuiComponent.shadowSymbol].slotCollection;\r\n if (!slotCollection) return;\r\n delete this[AuiComponent.shadowSymbol].slotCollection;\r\n for (const name in slotCollection) {\r\n const slot = this.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot;\r\n slot.$replace(this);\r\n this.$replaceChildren(name, slotCollection[name]);\r\n }\r\n }\r\n\r\n $textContent(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next.textContent);\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n this.$replaceChildren(name, [document.createTextNode(args[0] || '')]);\r\n }\r\n return '';\r\n }\r\n\r\n $innerHTML(name: string, ...args: any): string {\r\n if (args.length === 0) {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if ((next as any).outerHTML) {\r\n ret.push((next as any).outerHTML);\r\n } else {\r\n let text = next.textContent;\r\n if (next instanceof Comment) {\r\n text = `<!--${text}-->`;\r\n }\r\n ret.push(text);\r\n }\r\n\r\n }\r\n return ret.join('');\r\n\r\n } else {\r\n const tpl = document.createElement('div');\r\n tpl.innerHTML = args[0] || '';\r\n const children = this.$moveChildren(tpl as any);\r\n this.$replaceChildren(name, children.default);\r\n }\r\n return '';\r\n }\r\n\r\n $prepend<T extends Node>(name: string, node: T) {\r\n const { start } = this.$slot(name) || {};\r\n start?.parentNode?.insertBefore(node, start.nextSibling);\r\n }\r\n\r\n $appendChild<T extends Node>(name: string, node: T): T {\r\n const { end } = this.$slot(name) || {};\r\n end?.parentNode?.insertBefore(node, end);\r\n return node;\r\n }\r\n\r\n $childNodes(name?: string): NodeListOf<ChildNode> {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n ret.push(next);\r\n }\r\n return ret as any;\r\n }\r\n\r\n $children(name?: string): HTMLCollection {\r\n const ret = [];\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = start;\r\n while (next && (next = next.nextSibling) && next !== end) {\r\n if (next instanceof HTMLElement) {\r\n ret.push(next);\r\n }\r\n }\r\n return ret as any;\r\n }\r\n\r\n $replaceChildren(name: string, children: any[]) {\r\n const { start, end } = this.$slot(name) || {};\r\n let next: Comment | Node | ChildNode | null | undefined = null;\r\n while (start && (next = start.nextSibling) && next !== end) {\r\n next.parentNode?.removeChild(next);\r\n }\r\n if (end) {\r\n while (next = children.shift()) {\r\n end.parentNode?.insertBefore(next, end);\r\n }\r\n }\r\n }\r\n\r\n $slot(name?: string, slot?: AUI_SLOT_CACHE): AUI_SLOT_CACHE | undefined {\r\n name = name || 'default';\r\n if (slot) {\r\n this[AuiComponent.shadowSymbol].slot[name] = slot;\r\n } else {\r\n return this[AuiComponent.shadowSymbol].slot[name];\r\n }\r\n }\r\n\r\n $needHook(need?: boolean): boolean {\r\n if (typeof need === 'boolean') {\r\n this[AuiComponent.shadowSymbol].needHook = need;\r\n }\r\n return this[AuiComponent.shadowSymbol].needHook;\r\n }\r\n\r\n $ignoreLog(name: string) {\r\n console.warn(`aui component ignore : ${name}`);\r\n }\r\n\r\n $moveChildren(el?: AuiComponent): SlotElement {\r\n el = el || this;\r\n const list = el.childNodes;\r\n const ret: SlotElement = {\r\n default: []\r\n };\r\n while (list.length > 0) {\r\n const child = list[0] as AuiSlot;\r\n child.parentNode?.removeChild(child);\r\n if (AuiSlot.$isForAuiSlot(child)) {\r\n const name = child.getAttribute('for') || 'default';\r\n ret[name] = ret[name] || [];\r\n const children = Array.prototype.slice.call(child.childNodes);\r\n AuiSlot.prototype.$bind.call(child, el);\r\n ret[name].push(...children);\r\n } else {\r\n ret['default'].push(child);\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n $isArrayValue() {\r\n return this[AuiComponent.shadowSymbol].options?.valueType === Array;\r\n }\r\n\r\n $attrChange(name: string) {\r\n if (name === 'value') {\r\n const val = this.value;\r\n if (super.hasAttribute(AUI_ATTR_FLAG)) {\r\n this.$call('$emit', `update:value`, val);\r\n } else {\r\n this.$customEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n });\r\n }\r\n }\r\n this.$customEvent('aui-attr-change', {\r\n bubbles: true,\r\n composed: true,\r\n detail: { attributeName: _M.vueAttrName(name) }\r\n });\r\n }\r\n\r\n $initAttrs() {\r\n const attributes = this.attributes;\r\n const shadow = document.createElement('div');\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n shadow.setAttribute(attr.name, attr.value);\r\n if (!this.$isShowProp(_M.vueAttrName(attr.name))) {\r\n super.removeAttribute(attr.name);\r\n }\r\n if (attr.name === 'value') {\r\n this.value = attr.value;\r\n }\r\n }\r\n Object.defineProperty(this, 'attributes', {\r\n get value() {\r\n return shadow.attributes;\r\n },\r\n writable: false,\r\n });\r\n\r\n this[AuiComponent.shadowSymbol].el = shadow;\r\n }\r\n\r\n $isShowProp(name: string): boolean {\r\n if (_M.isVueAttr(name)) return true;\r\n const prop = this.$getProp(name);\r\n // console.log('name:', name)\r\n const isShow = prop?.show;\r\n return isShow;\r\n }\r\n\r\n $getProp(name: string): any {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(this.tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n return props[name];\r\n }\r\n\r\n $initVue() {\r\n if (this.__hasVue__) {\r\n return;\r\n }\r\n this.__hasVue__ = true;\r\n\r\n const tagName = this.tagName.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined) {\r\n console.warn(`AUI组件 [${this.tagName}] 未定义`);\r\n return;\r\n }\r\n createApp(_M.createVueComponent(tagName, this)).mount(this);\r\n }\r\n\r\n $needInit() {\r\n const flag = super.hasAttribute(AUI_ATTR_FLAG);\r\n if (flag) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n $bindVue(v: Component) {\r\n if (this[AuiComponent.shadowSymbol].ref) {\r\n return;\r\n }\r\n // Object.assign(v, { $aui: this });\r\n this[AuiComponent.shadowSymbol].ref = v;\r\n this.__hasVue__ = true;\r\n // 触发init事件\r\n this.$customEvent('aui-init', {\r\n bubbles: false,\r\n detail: { code: 0 }\r\n });\r\n const auiInit = (_M.cache.getAuiVueDefined(this.tagName)?.origin as any)?.auiInit;\r\n if (auiInit) {\r\n auiInit.call(v);\r\n }\r\n }\r\n\r\n $call(name?: string, ...args: any[]): any {\r\n const ref = this[AuiComponent.shadowSymbol].ref as Record<string, any>;\r\n return _M.$call(ref, name, ...args);\r\n }\r\n\r\n}\r\n\r\ntype TypeAuiComponent = typeof AuiComponent;\r\n\r\ntype AUI_VUE_DEFINE_CACHE = {\r\n aui?: TypeAuiComponent,\r\n vue?: Component,\r\n origin?: Component,\r\n hooks?: HookHandler[],\r\n}\r\n\r\n\r\nclass AuiSlot extends HTMLElement {\r\n\r\n _el_?: AuiComponent;\r\n _name_?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n connectedCallback() {\r\n this.style.display = 'none';\r\n }\r\n\r\n set textContent(v: string) {\r\n if (this._name_) {\r\n this._el_?.$textContent(this._name_, v);\r\n } else {\r\n super.textContent = v;\r\n }\r\n }\r\n\r\n set innerHTML(v: string) {\r\n if (this._name_) {\r\n this._el_?.$innerHTML(this._name_, v);\r\n } else {\r\n super.innerHTML = v;\r\n }\r\n }\r\n\r\n prepend<T extends Node>(node: T): void {\r\n if (this._name_) {\r\n this._el_?.$prepend(this._name_, node);\r\n } else {\r\n super.prepend(node);\r\n }\r\n }\r\n\r\n appendChild<T extends Node>(node: T): T {\r\n if (this._name_) {\r\n this._el_?.$appendChild(this._name_, node);\r\n return node;\r\n } else {\r\n return super.appendChild(node);\r\n }\r\n }\r\n\r\n // ---------------------\r\n\r\n static $isAuiSlot(el: HTMLElement) {\r\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\r\n\r\n if (el.tagName.toLowerCase() === 'aui-slot') return true;\r\n\r\n return false;\r\n }\r\n\r\n static $isForAuiSlot(el: HTMLElement) {\r\n if (AuiSlot.$isAuiSlot(el) && el.hasAttribute('for')) return true;\r\n return false;\r\n }\r\n\r\n $bind(el: AuiComponent) {\r\n this._el_ = el;\r\n this._name_ = this.getAttribute('for') || 'default';\r\n }\r\n\r\n $replace(el: AuiComponent) {\r\n const name = this.getAttribute('name') || 'default';\r\n const start = document.createComment(`aui-slot-${name}-start`);\r\n const end = document.createComment(`aui-slot-${name}-end`);\r\n\r\n el.$slot(name, { start, end });\r\n this.replaceWith(start, end);\r\n }\r\n}\r\n\r\nconst _M = {\r\n init() {\r\n _M.defineSlot();\r\n return _M;\r\n },\r\n defineSlot() {\r\n _M.defineCustomElement('aui-slot', AuiSlot);\r\n },\r\n $call(ref: Record<string, any>, name?: string, ...args: any[]): any {\r\n\r\n if (!ref) {\r\n return new Error('not init');\r\n }\r\n\r\n if (!name) return ref;\r\n\r\n if (typeof ref[name] === 'function') {\r\n return ref[name].call(ref, ...args);\r\n }\r\n\r\n const sp = name.split('.');\r\n let target = ref, last = sp.pop() || '', cur = null;\r\n\r\n while (cur = sp.shift()) {\r\n if (Object.prototype.hasOwnProperty.call(target, cur)) {\r\n target = target[cur];\r\n } else {\r\n return new Error('no match name');\r\n }\r\n }\r\n\r\n if (args.length === 0) {\r\n return target[last];\r\n } else {\r\n target[last] = args[0];\r\n return null;\r\n }\r\n\r\n },\r\n formatName(name: string | undefined): string {\r\n if (!name) {\r\n return '';\r\n }\r\n name = name.replace(/[A-Z]/g, function (s) {\r\n return '-' + s.toLowerCase();\r\n });\r\n return TAG_PREFIX + name;\r\n },\r\n cache: {\r\n defined: {} as Record<string, AUI_VUE_DEFINE_CACHE>, // getGlobalAuiCore().defined,\r\n getAuiVueDefined(tagName: string): AUI_VUE_DEFINE_CACHE | undefined {\r\n tagName = tagName.toLowerCase();\r\n return _M.cache.defined[tagName];\r\n },\r\n getAuiPropNames(tagName: string): string[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const props = (auiVueDefined?.origin as any)?.props || {};\r\n const names = [];\r\n for (const key in props) {\r\n names.push(_M.auiAttrName(key));\r\n }\r\n if(names.indexOf(AUI_EXTEND_ATTR)===-1) {\r\n names.push(AUI_EXTEND_ATTR);\r\n }\r\n return names;\r\n },\r\n addHooks(name: string, handle: HookHandler) {\r\n name = name.toLowerCase();\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n if (auiVueDefined) {\r\n auiVueDefined.hooks = auiVueDefined.hooks || [];\r\n auiVueDefined.hooks.push(handle);\r\n } else {\r\n _M.cache.defined[name] = {\r\n hooks: [handle],\r\n }\r\n }\r\n }\r\n },\r\n createExtendComp(v: Component): Component {\r\n return defineComponent({\r\n props: {\r\n [AUI_EXTEND_ATTR]: {\r\n type: String,\r\n },\r\n value: {\r\n type: (v as any).props?.value?.type || [String, Number, Array],\r\n }\r\n },\r\n methods: {\r\n $anyToArray: AuiComponent.$anyToArray,\r\n $value(...args: any[]) {\r\n const $aui = this.$aui();\r\n if (args.length === 0) {\r\n return $aui?.value;\r\n } else {\r\n if ($aui) {\r\n $aui.value = args[0];\r\n }\r\n }\r\n },\r\n $call(name?: string, ...args: any[]): any {\r\n const $aui = this.$aui();\r\n if (!$aui) return null;\r\n return _M.$call($aui, name, ...args);\r\n },\r\n $aui(): AuiComponent | null {\r\n return this.$el?.parentNode;\r\n },\r\n },\r\n data() {\r\n return {\r\n\r\n }\r\n }\r\n })\r\n },\r\n patchDefaultProps(origin: Component): any {\r\n\r\n const valueType = (origin as any).props?.value?.type;\r\n\r\n if (!(origin as any).mixins) {\r\n (origin as any).mixins = [];\r\n }\r\n\r\n (origin as any).mixins.push(_M.createExtendComp(origin));\r\n\r\n return valueType;\r\n\r\n },\r\n defineAuiComponent(tagName: string, component: Component, origin: Component) {\r\n\r\n const valueType = _M.patchDefaultProps(origin);\r\n\r\n if (!_M.cache.defined[tagName]?.origin) {\r\n class AuiChild extends AuiComponent {\r\n constructor() {\r\n super({ valueType });\r\n }\r\n\r\n static get observedAttributes() {\r\n return _M.cache.getAuiPropNames(tagName);\r\n }\r\n\r\n }\r\n\r\n _M.cache.defined[tagName] = {\r\n aui: AuiChild,\r\n vue: component,\r\n origin,\r\n hooks: _M.cache.defined[tagName]?.hooks || [],\r\n };\r\n\r\n _M.defineCustomElement(tagName, AuiChild);\r\n\r\n } else {\r\n _M.cache.defined[tagName].origin = origin;\r\n }\r\n },\r\n\r\n defineCustomElement(tagName: string, cls: any) {\r\n try {\r\n customElements.define(tagName, cls);\r\n } catch (_) {\r\n // console.warn('defineCustomElement error', error);\r\n }\r\n },\r\n\r\n sameComponent(tagName: string, v: any): boolean {\r\n if (!Object.prototype.hasOwnProperty.call(v, '__hmrId')) return false;\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n const origin = auiVueDefined?.origin as any;\r\n if (!origin) return false;\r\n return v.__hmrId === origin.__hmrId;\r\n },\r\n\r\n notifyComponentUpdate(tagName: string) {\r\n const comps = document.querySelectorAll(tagName) as NodeListOf<AuiComponent>;\r\n comps.forEach((comp) => {\r\n comp.$forceUpdate();\r\n });\r\n },\r\n\r\n define(v: Component, force: boolean = true): Component {\r\n const tagName = _M.formatName(v.name);\r\n\r\n // console.log('define aui comp, name is', tagName);\r\n\r\n if (!tagName) {\r\n console.warn('当前组件不符合AUI定义');\r\n return v;\r\n }\r\n\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n\r\n if (auiVueDefined && auiVueDefined.vue) {\r\n if (force || _M.sameComponent(tagName, v)) {\r\n console.log('aui组件更新origin定义');\r\n _M.defineAuiComponent(tagName, auiVueDefined.vue, v);\r\n _M.notifyComponentUpdate(tagName);\r\n } else {\r\n console.warn('AUI组件已经被定义,当前组件将被舍弃,将返回已定义的组件,如需覆盖组件,请添加force: true');\r\n }\r\n\r\n return auiVueDefined.vue;\r\n }\r\n\r\n const wrappedComponent = _M.createVueComponent(tagName);\r\n\r\n _M.defineAuiComponent(tagName, wrappedComponent, v);\r\n\r\n return wrappedComponent;\r\n },\r\n createTempSlot(children: SlotElement): any {\r\n const ret = {} as { [key: string]: any };\r\n Object.keys(children).forEach((name) => {\r\n ret[name] = () => h('aui-slot', { name });\r\n });\r\n return ret;\r\n },\r\n replaceTempSlot(el: AuiComponent, children: SlotElement) {\r\n const names = Object.keys(children);\r\n names.forEach((name) => {\r\n const slot = el.querySelector(`aui-slot[name=\"${name}\"]`) as AuiSlot | null;\r\n if (slot) {\r\n AuiSlot.prototype.$replace.call(slot, el);\r\n el.$replaceChildren(name, children[name]);\r\n }\r\n });\r\n\r\n },\r\n createVueComponent(tagName: string, el?: AuiComponent): Component {\r\n\r\n const children = el ? el.$moveChildren() : { default: [] };\r\n\r\n const wrappedComponent = {\r\n setup() {\r\n const attrs = useAttrs()\r\n const vueComponentRef = shallowRef<any>(null)\r\n const elementRef = shallowRef<AuiComponent | null>(null)\r\n const selfAttrs = ref<Record<string, any>>({})\r\n const slotsRef = shallowRef<any>(el ? _M.createTempSlot(children) : useSlots())\r\n const target = shallowRef<Component | null>(null);\r\n\r\n onMounted(() => {\r\n if (vueComponentRef.value && elementRef.value && elementRef.value.$bindVue) {\r\n elementRef.value.$bindVue(vueComponentRef.value);\r\n\r\n el && _M.replaceTempSlot(el, children);\r\n\r\n // 监听属性变化事件\r\n elementRef.value.addEventListener('aui-attr-change', () => {\r\n if (elementRef.value) {\r\n selfAttrs.value = _M.getAuiAttrs(elementRef.value);\r\n }\r\n });\r\n\r\n // 监听自定义强制更新事件\r\n elementRef.value.addEventListener('aui-force-update', () => {\r\n target.value = null;\r\n });\r\n\r\n elementRef.value.$call('$emit', 'update:value', elementRef.value.value);\r\n } else {\r\n console.warn('AUI组件绑定失败');\r\n }\r\n })\r\n\r\n onUpdated(() => {\r\n if (elementRef.value) {\r\n elementRef.value.$slotReplace();\r\n }\r\n })\r\n\r\n return () => {\r\n\r\n if (el) {\r\n elementRef.value = el;\r\n selfAttrs.value = _M.getAuiAttrs(el);\r\n }\r\n\r\n if (!target.value) {\r\n (target as any).value = _M.formatStructure(tagName);\r\n }\r\n\r\n if (!target.value) {\r\n console.warn('AUI组件未定义,加载失败,name:', tagName);\r\n return null;\r\n }\r\n\r\n const trueComp = h(target.value, { ...attrs, ...selfAttrs.value, ref: vueComponentRef }, slotsRef.value || {});\r\n\r\n const ret = el ? trueComp : h(tagName, { ref: elementRef, [AUI_ATTR_FLAG]: '' }, [\r\n trueComp\r\n ]);\r\n\r\n return ret;\r\n }\r\n }\r\n };\r\n\r\n return wrappedComponent;\r\n },\r\n getAuiAttrs(el: AuiComponent): Record<string, any> {\r\n\r\n const attrs = {} as Record<string, any>;\r\n\r\n const attributes = el.attributes;\r\n\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr = attributes[i];\r\n // 跳过 aui 和 vue 标记属性\r\n if (attr.name === TAG_PREFIX || _M.isVueAttr(attr.name)) continue;\r\n attrs[attr.name] = attr.value;\r\n }\r\n\r\n if (el.value !== null) {\r\n attrs.value = el.value;\r\n }\r\n\r\n return attrs;\r\n },\r\n isVueAttr(name: string): boolean {\r\n return name.indexOf('data-v-') === 0;\r\n },\r\n auiAttrName(name: string): string {\r\n return name.replace(/([A-Z])/g, (a) => '-' + a.toLowerCase());\r\n },\r\n vueAttrName(name: string): string {\r\n if (_M.isVueAttr(name)) return name;\r\n return name.replace(/-([a-z])/g, (_, s1) => s1.toUpperCase());\r\n },\r\n hookStructure(name: string, handle: HookHandler) {\r\n _M.cache.addHooks(name, handle);\r\n },\r\n getHookStructure(name: string): HookHandler[] {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(name);\r\n const hooks = auiVueDefined?.hooks || [];\r\n return hooks.slice(0);\r\n },\r\n formatStructure(tagName: string): Component | null {\r\n const auiVueDefined = _M.cache.getAuiVueDefined(tagName);\r\n if (!auiVueDefined?.origin) {\r\n return null;\r\n }\r\n let origin = merge({}, auiVueDefined.origin) as Component;\r\n const hooks = _M.getHookStructure(tagName);\r\n let handle;\r\n while (handle = hooks.shift()) {\r\n const cur = handle(origin);\r\n if (cur) {\r\n origin = cur;\r\n }\r\n }\r\n\r\n return origin;\r\n }\r\n};\r\n\r\nexport default _M.init();"],"names":["_a","_b","TAG_PREFIX","__AUI_CONFIG__","tagPrefix","AUI_ATTR_FLAG","AUI_EXTEND_ATTR","shadowSymbol","Symbol","AuiComponent","HTMLElement","constructor","options","super","this","__hasVue__","needHook","slot","$initAttrs","connectedCallback","$needInit","$needHook","$initVue","textContent","v","$textContent","innerHTML","$innerHTML","innerText","$ignoreLog","prepend","node","$prepend","appendChild","$appendChild","value","val","oldValue","newValue","$isArrayValue","$anyToArray","JSON","stringify","toString","el","$attrChange","parse","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","cache","start","end","child","nextSibling","parentNode","removeChild","push","$slotReplace","querySelector","$replace","$replaceChildren","args","length","ret","$slot","next","join","document","createTextNode","outerHTML","text","Comment","tpl","createElement","$moveChildren","default","insertBefore","$childNodes","$children","shift","need","list","childNodes","AuiSlot","$isForAuiSlot","prototype","slice","call","$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","ref","code","auiInit","_AuiComponent","style","display","_name_","_el_","$isAuiSlot","nodeType","Node","ELEMENT_NODE","createComment","replaceWith","init","defineSlot","defineCustomElement","Error","sp","target","last","pop","cur","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","forEach","comp","force","wrappedComponent","createTempSlot","keys","h","replaceTempSlot","setup","attrs","useAttrs","vueComponentRef","shallowRef","elementRef","selfAttrs","slotsRef","useSlots","onMounted","addEventListener","getAuiAttrs","onUpdated","formatStructure","trueComp","a","s1","toUpperCase","hookStructure","getHookStructure","merge","core","exports"],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -35,6 +35,10 @@ export declare class AuiComponent extends HTMLElement {
35
35
  removeAttribute(qualifiedName: string): void;
36
36
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
37
37
  static $anyToArray(s: any): any;
38
+ $customEvent(name: string, opts?: any): void;
39
+ $forceUpdate(): void;
40
+ $slotCollection(cache: AUI_SLOT_CACHE): ChildNode[];
41
+ $slotReplace(): void;
38
42
  $textContent(name: string, ...args: any): string;
39
43
  $innerHTML(name: string, ...args: any): string;
40
44
  $prepend<T extends Node>(name: string, node: T): void;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}