mortise-tenon-design 0.3.0 → 0.4.0-beta.2

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.
Files changed (46) hide show
  1. package/es/components/component-neo/index.mjs +4 -6
  2. package/es/components/component-neo/index.mjs.map +1 -1
  3. package/es/components/component-neo/src/component-neo.vue.mjs +13 -13
  4. package/es/components/component-neo/src/component-neo.vue.mjs.map +1 -1
  5. package/es/components/component-neo/src/hooks/use-component-neo.mjs +10 -10
  6. package/es/components/component-neo/src/hooks/use-component-neo.mjs.map +1 -1
  7. package/es/components/component-neo/src/hooks/use-component-state.mjs +22 -20
  8. package/es/components/component-neo/src/hooks/use-component-state.mjs.map +1 -1
  9. package/es/components/expand/index.mjs +4 -6
  10. package/es/components/expand/index.mjs.map +1 -1
  11. package/es/components/sort/index.mjs +3 -5
  12. package/es/components/sort/index.mjs.map +1 -1
  13. package/es/components/sort/src/sort.mjs +15 -15
  14. package/es/components/sort/src/sort.mjs.map +1 -1
  15. package/es/components/table/index.mjs +4 -6
  16. package/es/components/table/index.mjs.map +1 -1
  17. package/es/components/utils/install.mjs +9 -0
  18. package/es/components/utils/install.mjs.map +1 -0
  19. package/lib/components/component-neo/index.js +1 -1
  20. package/lib/components/component-neo/index.js.map +1 -1
  21. package/lib/components/component-neo/src/component-neo.vue.js +1 -1
  22. package/lib/components/component-neo/src/component-neo.vue.js.map +1 -1
  23. package/lib/components/component-neo/src/hooks/use-component-neo.js +1 -1
  24. package/lib/components/component-neo/src/hooks/use-component-neo.js.map +1 -1
  25. package/lib/components/component-neo/src/hooks/use-component-state.js +1 -1
  26. package/lib/components/component-neo/src/hooks/use-component-state.js.map +1 -1
  27. package/lib/components/expand/index.js +1 -1
  28. package/lib/components/expand/index.js.map +1 -1
  29. package/lib/components/sort/index.js +1 -1
  30. package/lib/components/sort/index.js.map +1 -1
  31. package/lib/components/sort/src/sort.js +1 -1
  32. package/lib/components/sort/src/sort.js.map +1 -1
  33. package/lib/components/table/index.js +1 -1
  34. package/lib/components/table/index.js.map +1 -1
  35. package/lib/components/utils/install.js +2 -0
  36. package/lib/components/utils/install.js.map +1 -0
  37. package/package.json +42 -1
  38. package/types/component-neo/index.d.ts +5 -5
  39. package/types/component-neo/src/component-neo.d.ts +2 -1
  40. package/types/component-neo/src/component-neo.vue.d.ts +1 -1
  41. package/types/component-neo/src/hooks/use-component-neo.d.ts +2 -2
  42. package/types/component-neo/src/hooks/use-component-state.d.ts +13 -5
  43. package/types/index.d.ts +2 -0
  44. package/types/installer.d.ts +9 -0
  45. package/types/sort/src/sort.d.ts +1 -1
  46. package/types/utils/install.d.ts +2 -0
@@ -1,11 +1,9 @@
1
- import o from "./src/component-neo.vue.mjs";
1
+ import { withInstall as o } from "../utils/install.mjs";
2
+ import t from "./src/component-neo.vue.mjs";
2
3
  import "vue";
3
4
  import "./src/hooks/use-component-state.mjs";
4
- o.install = (m) => {
5
- o.name && m.component(o.name, o);
6
- };
7
- const i = o;
5
+ const n = o(t);
8
6
  export {
9
- i as MtComponentNeo
7
+ n as MtComponentNeo
10
8
  };
11
9
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/component-neo/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport ComponentNeo from './src/component-neo.vue';\r\n\r\nComponentNeo.install = (app: App): void => {\r\n if (ComponentNeo.name) {\r\n app.component(ComponentNeo.name, ComponentNeo);\r\n }\r\n};\r\n\r\nexport const MtComponentNeo = ComponentNeo;\r\n\r\nexport * from './src/component-neo.vue';\r\nexport * from './src/hooks/use-component-neo';\r\n"],"names":["ComponentNeo","app","MtComponentNeo"],"mappings":";;;AAGAA,EAAa,UAAU,CAACC,MAAmB;AACzC,EAAID,EAAa,QACXC,EAAA,UAAUD,EAAa,MAAMA,CAAY;AAEjD;AAEO,MAAME,IAAiBF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/component-neo/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport ComponentNeo from './src/component-neo.vue';\r\n\r\nexport const MtComponentNeo = withInstall(ComponentNeo);\r\n\r\nexport * from './src/component-neo';\r\nexport * from './src/hooks/use-component-neo';\r\n"],"names":["MtComponentNeo","withInstall","ComponentNeo"],"mappings":";;;;AAGa,MAAAA,IAAiBC,EAAYC,CAAY;"}
@@ -1,6 +1,6 @@
1
- import { defineComponent as N, useAttrs as g, computed as n, unref as _, h as l, Comment as h, watch as k, nextTick as w, renderSlot as x, createBlock as I, openBlock as b, resolveDynamicComponent as j } from "vue";
1
+ import { defineComponent as g, useAttrs as _, computed as n, unref as h, h as l, Comment as k, watch as w, nextTick as x, renderSlot as I, createBlock as S, openBlock as b, resolveDynamicComponent as j } from "vue";
2
2
  import { useComponentState as q } from "./hooks/use-component-state.mjs";
3
- const S = /* @__PURE__ */ N({
3
+ const D = /* @__PURE__ */ g({
4
4
  name: "MtComponentNeo",
5
5
  inheritAttrs: !1,
6
6
  __name: "component-neo",
@@ -10,25 +10,25 @@ const S = /* @__PURE__ */ N({
10
10
  },
11
11
  emits: ["toggleComponent"],
12
12
  setup(i, { expose: v, emit: f }) {
13
- const s = i, d = f, { initComponent: C } = q(), { componentRef: a, componentNeo: y, componentAttrs: m } = C(s.uniqueId), c = (t) => a.value = t, A = g(), u = n(() => {
14
- const t = {};
15
- for (const o in m.value)
16
- typeof m.value[o] < "u" && (t[o] = _(m.value[o]));
17
- return Object.assign(t, A);
18
- }), e = n(() => y.value || s.is), p = n(() => e.value ? l(e.value, u.value) : l(h, "componentNeo is empty")), r = n(() => typeof e.value == "object" && "name" in e.value ? e.value.name : void 0);
19
- return k(e, async () => {
20
- await w(), d("toggleComponent", r.value, a.value);
21
- }), v({ componentRef: a }), (t, o) => x(t.$slots, "default", {
13
+ const s = i, d = f, { initComponent: C } = q(), { componentRef: a, componentNeo: y, componentAttrs: m, componentSlots: A } = C(s.uniqueId), c = (o) => a.value = o, N = _(), u = n(() => {
14
+ const o = {};
15
+ for (const t in m.value)
16
+ typeof m.value[t] < "u" && (o[t] = h(m.value[t]));
17
+ return Object.assign(o, N);
18
+ }), e = n(() => y.value || s.is), p = n(() => e.value ? l(e.value, u.value, A.value) : l(k, "ComponentNeo is empty")), r = n(() => typeof e.value == "object" && "name" in e.value ? e.value.name : void 0);
19
+ return w(e, async () => {
20
+ await x(), d("toggleComponent", r.value, a.value);
21
+ }), v({ componentRef: a }), (o, t) => I(o.$slots, "default", {
22
22
  Component: p.value,
23
23
  compRef: c,
24
24
  attrs: u.value,
25
25
  compName: r.value
26
26
  }, () => [
27
- (b(), I(j(p.value), { ref: c }))
27
+ (b(), S(j(p.value), { ref: c }))
28
28
  ]);
29
29
  }
30
30
  });
31
31
  export {
32
- S as default
32
+ D as default
33
33
  };
34
34
  //# sourceMappingURL=component-neo.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-neo.vue.mjs","sources":["../../../../../../packages/components/component-neo/src/component-neo.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ComponentNeoProps } from './component-neo';\r\nimport { Comment, computed, h, nextTick, unref, useAttrs, watch } from 'vue';\r\nimport { useComponentState } from './hooks/use-component-state';\r\n\r\ndefineOptions({ name: 'MtComponentNeo', inheritAttrs: false });\r\n\r\nconst props = withDefaults(\r\n defineProps<ComponentNeoProps>(),\r\n { uniqueId: '', onToggle: () => { } },\r\n);\r\n\r\nconst emit = defineEmits<{\r\n (e: 'toggleComponent', name?: string, ref?: any): void\r\n}>();\r\n\r\nconst { initComponent } = useComponentState();\r\nconst { componentRef, componentNeo, componentAttrs } = initComponent(props.uniqueId);\r\nconst compRef = (el: Element) => componentRef.value = el;\r\n\r\nconst commonAttrs = useAttrs();\r\n/** 结合注入的属性和公共属性 */\r\nconst compAttrs = computed(() => {\r\n const newAttrs: Record<string, any> = {};\r\n // 仅传入有值的属性\r\n for (const key in componentAttrs.value) {\r\n if (typeof componentAttrs.value[key] !== 'undefined') {\r\n newAttrs[key] = unref(componentAttrs.value[key]); // 支持ref数据转入\r\n }\r\n }\r\n return Object.assign(newAttrs, commonAttrs);\r\n});\r\n\r\nconst compInstance = computed(() => componentNeo.value || props.is);\r\n\r\nconst compVNode = computed(() => {\r\n return !compInstance.value ? h(Comment, 'componentNeo is empty') : h(compInstance.value, compAttrs.value);\r\n});\r\n\r\nconst compName = computed(() => {\r\n return typeof compInstance.value === 'object' && 'name' in compInstance.value ? compInstance.value.name : undefined;\r\n});\r\n\r\n// 监听组件切换,触发回调\r\nwatch(compInstance, async () => {\r\n await nextTick();\r\n emit('toggleComponent', compName.value, componentRef.value);\r\n});\r\n\r\ndefineExpose({ componentRef });\r\n</script>\r\n\r\n<template>\r\n <!-- eslint-disable-next-line vue/attribute-hyphenation -->\r\n <slot :Component=\"compVNode\" :compRef=\"compRef\" :attrs=\"compAttrs\" :compName=\"compName\">\r\n <component :is=\"compVNode\" :ref=\"compRef\" />\r\n </slot>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","initComponent","useComponentState","componentRef","componentNeo","componentAttrs","compRef","el","commonAttrs","useAttrs","compAttrs","computed","newAttrs","key","unref","compInstance","compVNode","h","Comment","compName","watch","nextTick","__expose"],"mappings":";;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAKRC,IAAOC,GAIP,EAAE,eAAAC,EAAc,IAAIC,EAAkB,GACtC,EAAE,cAAAC,GAAc,cAAAC,GAAc,gBAAAC,EAAmB,IAAAJ,EAAcJ,EAAM,QAAQ,GAC7ES,IAAU,CAACC,MAAgBJ,EAAa,QAAQI,GAEhDC,IAAcC,EAAS,GAEvBC,IAAYC,EAAS,MAAM;AAC/B,YAAMC,IAAgC,CAAC;AAE5B,iBAAAC,KAAOR,EAAe;AAC/B,QAAI,OAAOA,EAAe,MAAMQ,CAAG,IAAM,QACvCD,EAASC,CAAG,IAAIC,EAAMT,EAAe,MAAMQ,CAAG,CAAC;AAG5C,aAAA,OAAO,OAAOD,GAAUJ,CAAW;AAAA,IAAA,CAC3C,GAEKO,IAAeJ,EAAS,MAAMP,EAAa,SAASP,EAAM,EAAE,GAE5DmB,IAAYL,EAAS,MACjBI,EAAa,QAA8CE,EAAEF,EAAa,OAAOL,EAAU,KAAK,IAA3EO,EAAEC,GAAS,uBAAuB,CAChE,GAEKC,IAAWR,EAAS,MACjB,OAAOI,EAAa,SAAU,YAAY,UAAUA,EAAa,QAAQA,EAAa,MAAM,OAAO,MAC3G;AAGD,WAAAK,EAAML,GAAc,YAAY;AAC9B,YAAMM,EAAS,GACftB,EAAK,mBAAmBoB,EAAS,OAAOhB,EAAa,KAAK;AAAA,IAAA,CAC3D,GAEYmB,EAAA,EAAE,cAAAnB,GAAc;;;;;;;;;;"}
1
+ {"version":3,"file":"component-neo.vue.mjs","sources":["../../../../../../packages/components/component-neo/src/component-neo.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ComponentNeoProps } from './component-neo';\r\nimport { Comment, computed, h, nextTick, unref, useAttrs, watch } from 'vue';\r\nimport { useComponentState } from './hooks/use-component-state';\r\n\r\ndefineOptions({ name: 'MtComponentNeo', inheritAttrs: false });\r\n\r\nconst props = withDefaults(\r\n defineProps<ComponentNeoProps>(),\r\n { uniqueId: '', onToggle: () => { } },\r\n);\r\n\r\nconst emit = defineEmits<{\r\n (e: 'toggleComponent', name?: string, ref?: any): void\r\n}>();\r\n\r\nconst { initComponent } = useComponentState();\r\nconst { componentRef, componentNeo, componentAttrs, componentSlots } = initComponent(props.uniqueId);\r\nconst compRef = (el: Element) => componentRef.value = el;\r\n\r\nconst commonAttrs = useAttrs();\r\n/** 结合注入的属性和公共属性 */\r\nconst compAttrs = computed(() => {\r\n const newAttrs: Record<string, unknown> = {};\r\n // 仅传入有值的属性\r\n for (const key in componentAttrs.value) {\r\n if (typeof componentAttrs.value[key] !== 'undefined') {\r\n newAttrs[key] = unref(componentAttrs.value[key]); // 支持ref数据转入\r\n }\r\n }\r\n return Object.assign(newAttrs, commonAttrs);\r\n});\r\n\r\nconst compInstance = computed(() => componentNeo.value || props.is);\r\n\r\nconst compVNode = computed(() => {\r\n return !compInstance.value ? h(Comment, 'ComponentNeo is empty') : h(compInstance.value, compAttrs.value, componentSlots.value);\r\n});\r\n\r\nconst compName = computed(() => {\r\n return typeof compInstance.value === 'object' && 'name' in compInstance.value ? compInstance.value.name : undefined;\r\n});\r\n\r\n// 监听组件切换,触发回调\r\nwatch(compInstance, async () => {\r\n await nextTick();\r\n emit('toggleComponent', compName.value, componentRef.value);\r\n});\r\n\r\ndefineExpose({ componentRef });\r\n</script>\r\n\r\n<template>\r\n <!-- eslint-disable-next-line vue/attribute-hyphenation -->\r\n <slot :Component=\"compVNode\" :compRef=\"compRef\" :attrs=\"compAttrs\" :compName=\"compName\">\r\n <component :is=\"compVNode\" :ref=\"compRef\" />\r\n </slot>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","initComponent","useComponentState","componentRef","componentNeo","componentAttrs","componentSlots","compRef","el","commonAttrs","useAttrs","compAttrs","computed","newAttrs","key","unref","compInstance","compVNode","h","Comment","compName","watch","nextTick","__expose"],"mappings":";;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAKRC,IAAOC,GAIP,EAAE,eAAAC,EAAc,IAAIC,EAAkB,GACtC,EAAE,cAAAC,GAAc,cAAAC,GAAc,gBAAAC,GAAgB,gBAAAC,MAAmBL,EAAcJ,EAAM,QAAQ,GAC7FU,IAAU,CAACC,MAAgBL,EAAa,QAAQK,GAEhDC,IAAcC,EAAS,GAEvBC,IAAYC,EAAS,MAAM;AAC/B,YAAMC,IAAoC,CAAC;AAEhC,iBAAAC,KAAOT,EAAe;AAC/B,QAAI,OAAOA,EAAe,MAAMS,CAAG,IAAM,QACvCD,EAASC,CAAG,IAAIC,EAAMV,EAAe,MAAMS,CAAG,CAAC;AAG5C,aAAA,OAAO,OAAOD,GAAUJ,CAAW;AAAA,IAAA,CAC3C,GAEKO,IAAeJ,EAAS,MAAMR,EAAa,SAASP,EAAM,EAAE,GAE5DoB,IAAYL,EAAS,MACjBI,EAAa,QAA8CE,EAAEF,EAAa,OAAOL,EAAU,OAAOL,EAAe,KAAK,IAAjGY,EAAEC,GAAS,uBAAuB,CAChE,GAEKC,IAAWR,EAAS,MACjB,OAAOI,EAAa,SAAU,YAAY,UAAUA,EAAa,QAAQA,EAAa,MAAM,OAAO,MAC3G;AAGD,WAAAK,EAAML,GAAc,YAAY;AAC9B,YAAMM,EAAS,GACfvB,EAAK,mBAAmBqB,EAAS,OAAOjB,EAAa,KAAK;AAAA,IAAA,CAC3D,GAEYoB,EAAA,EAAE,cAAApB,GAAc;;;;;;;;;;"}
@@ -1,18 +1,18 @@
1
- import { nextTick as m } from "vue";
2
- import { useComponentState as u } from "./use-component-state.mjs";
3
- function d(r = "") {
4
- const { setComponent: i, getComponent: s } = u();
5
- async function f(t, c) {
1
+ import { nextTick as u } from "vue";
2
+ import { useComponentState as C } from "./use-component-state.mjs";
3
+ function g(r = "") {
4
+ const { setComponent: i, getComponent: s } = C();
5
+ async function p(t, c, f) {
6
6
  var l;
7
7
  try {
8
8
  const a = typeof t == "function" ? (await t()).default : t, n = {};
9
9
  for (let e in c) {
10
10
  const o = c[e];
11
- e.startsWith("vModel:") ? (e = e.replace("vModel:", ""), n[e] = o, n[`onUpdate:${e}`] = (p) => {
12
- "value" in o && (o.value = p);
11
+ e.startsWith("vModel:") ? (e = e.replace("vModel:", ""), n[e] = o, n[`onUpdate:${e}`] = (m) => {
12
+ "value" in o && (o.value = m);
13
13
  }) : n[e] = o;
14
14
  }
15
- return i(r, a, n), await m(), (l = s(r)) == null ? void 0 : l.Instance.value;
15
+ return i(r, { comp: a, attrs: n, slots: f || {} }), await u(), (l = s(r)) == null ? void 0 : l.Instance.value;
16
16
  } catch (a) {
17
17
  console.error(a);
18
18
  }
@@ -22,10 +22,10 @@ function d(r = "") {
22
22
  var t;
23
23
  return (t = s(r)) == null ? void 0 : t.Instance.value;
24
24
  },
25
- toggleComponent: f
25
+ toggleComponent: p
26
26
  };
27
27
  }
28
28
  export {
29
- d as useComponentNeo
29
+ g as useComponentNeo
30
30
  };
31
31
  //# sourceMappingURL=use-component-neo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-component-neo.mjs","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-neo.ts"],"sourcesContent":["import type { InstanceComponent } from '../component-neo';\r\nimport { nextTick, type VNode } from 'vue';\r\nimport { useComponentState } from './use-component-state';\r\n\r\nexport type ImportComponentFn = () => Promise<Record<string, any>>;\r\nexport type DynamicComponent = InstanceComponent | ImportComponentFn | VNode;\r\n\r\nexport function useComponentNeo(uniqueId = '') {\r\n const { setComponent, getComponent } = useComponentState();\r\n\r\n /**\r\n * 切换渲染的组件\r\n * @param comp 组件,可传入两种类型,1.直接函数格式返回import动态导入 2.组件类型\r\n * @param attrs 组件属性,可使用`on事件`方式添加事件方法,属性支持Ref类型进行绑定以实现动态变化, 支持通过{'vModal:value': value}方式双向绑定数据\r\n */\r\n async function toggleComponent(comp: DynamicComponent, attrs?: Record<string, any>) {\r\n try {\r\n const renderComp = typeof comp === 'function' ? (await (comp as ImportComponentFn)()).default : comp;\r\n const renderAttrs: Record<string, any> = {};\r\n for (let key in attrs) {\r\n const bindValue = attrs[key];\r\n // 兼容vModal\r\n if (key.startsWith('vModel:')) {\r\n key = key.replace('vModel:', '');\r\n renderAttrs[key] = bindValue;\r\n renderAttrs[`onUpdate:${key}`] = (value: any) => {\r\n if ('value' in bindValue) {\r\n bindValue.value = value;\r\n }\r\n };\r\n }\r\n else {\r\n renderAttrs[key] = bindValue;\r\n }\r\n }\r\n setComponent(uniqueId, renderComp, renderAttrs);\r\n await nextTick();\r\n return getComponent(uniqueId)?.Instance.value;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n return {\r\n getComponentRef: () => getComponent(uniqueId)?.Instance.value,\r\n toggleComponent,\r\n };\r\n};\r\n"],"names":["useComponentNeo","uniqueId","setComponent","getComponent","useComponentState","toggleComponent","comp","attrs","renderComp","renderAttrs","key","bindValue","value","nextTick","_a","e"],"mappings":";;AAOgB,SAAAA,EAAgBC,IAAW,IAAI;AAC7C,QAAM,EAAE,cAAAC,GAAc,cAAAC,EAAa,IAAIC,EAAkB;AAO1C,iBAAAC,EAAgBC,GAAwBC,GAA6B;;AAC9E,QAAA;AACF,YAAMC,IAAa,OAAOF,KAAS,cAAc,MAAOA,EAAA,GAA8B,UAAUA,GAC1FG,IAAmC,CAAC;AAC1C,eAASC,KAAOH,GAAO;AACf,cAAAI,IAAYJ,EAAMG,CAAG;AAEvB,QAAAA,EAAI,WAAW,SAAS,KACpBA,IAAAA,EAAI,QAAQ,WAAW,EAAE,GAC/BD,EAAYC,CAAG,IAAIC,GACnBF,EAAY,YAAYC,CAAG,EAAE,IAAI,CAACE,MAAe;AAC/C,UAAI,WAAWD,MACbA,EAAU,QAAQC;AAAA,QAEtB,KAGAH,EAAYC,CAAG,IAAIC;AAAA,MACrB;AAEW,aAAAT,EAAAD,GAAUO,GAAYC,CAAW,GAC9C,MAAMI,EAAS,IACRC,IAAAX,EAAaF,CAAQ,MAArB,gBAAAa,EAAwB,SAAS;AAAA,aAEnCC,GAAG;AACR,cAAQ,MAAMA,CAAC;AAAA,IAAA;AAAA,EACjB;AAEK,SAAA;AAAA,IACL,iBAAiB,MAAA;;AAAM,cAAAD,IAAAX,EAAaF,CAAQ,MAArB,gBAAAa,EAAwB,SAAS;AAAA;AAAA,IACxD,iBAAAT;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"use-component-neo.mjs","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-neo.ts"],"sourcesContent":["import type { VNode } from 'vue';\r\nimport type { ComponentSlots, InstanceComponent } from '../component-neo';\r\nimport { nextTick } from 'vue';\r\nimport { useComponentState } from './use-component-state';\r\n\r\nexport type ImportComponentFn = () => Promise<Record<string, any>>;\r\nexport type DynamicComponent = InstanceComponent | ImportComponentFn | VNode;\r\n\r\nexport function useComponentNeo(uniqueId = '') {\r\n const { setComponent, getComponent } = useComponentState();\r\n\r\n /**\r\n * 切换渲染的组件\r\n * @param comp 组件,可传入两种类型,1.import动态导入 2.组件类型 3.VNode\r\n * @param attrs 组件属性,可使用`on事件`方式添加事件方法,属性支持Ref类型进行绑定以实现动态变化, 支持通过{'vModal:value': value}方式双向绑定数据\r\n * @param slots 组件插槽\r\n */\r\n async function toggleComponent(comp?: DynamicComponent, attrs?: Record<string, any>, slots?: ComponentSlots) {\r\n try {\r\n const renderComp = typeof comp === 'function' ? (await (comp as ImportComponentFn)()).default : comp;\r\n const renderAttrs: Record<string, unknown> = {};\r\n for (let key in attrs) {\r\n const bindValue = attrs[key];\r\n // 兼容vModel\r\n if (key.startsWith('vModel:')) {\r\n key = key.replace('vModel:', '');\r\n renderAttrs[key] = bindValue;\r\n renderAttrs[`onUpdate:${key}`] = (value: unknown) => {\r\n if ('value' in bindValue) {\r\n bindValue.value = value;\r\n }\r\n };\r\n }\r\n else {\r\n renderAttrs[key] = bindValue;\r\n }\r\n }\r\n setComponent(uniqueId, { comp: renderComp, attrs: renderAttrs, slots: slots || {} });\r\n await nextTick();\r\n return getComponent(uniqueId)?.Instance.value;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n return {\r\n getComponentRef: () => getComponent(uniqueId)?.Instance.value,\r\n toggleComponent,\r\n };\r\n};\r\n"],"names":["useComponentNeo","uniqueId","setComponent","getComponent","useComponentState","toggleComponent","comp","attrs","slots","renderComp","renderAttrs","key","bindValue","value","nextTick","_a","e"],"mappings":";;AAQgB,SAAAA,EAAgBC,IAAW,IAAI;AAC7C,QAAM,EAAE,cAAAC,GAAc,cAAAC,EAAa,IAAIC,EAAkB;AAQ1C,iBAAAC,EAAgBC,GAAyBC,GAA6BC,GAAwB;;AACvG,QAAA;AACF,YAAMC,IAAa,OAAOH,KAAS,cAAc,MAAOA,EAAA,GAA8B,UAAUA,GAC1FI,IAAuC,CAAC;AAC9C,eAASC,KAAOJ,GAAO;AACf,cAAAK,IAAYL,EAAMI,CAAG;AAEvB,QAAAA,EAAI,WAAW,SAAS,KACpBA,IAAAA,EAAI,QAAQ,WAAW,EAAE,GAC/BD,EAAYC,CAAG,IAAIC,GACnBF,EAAY,YAAYC,CAAG,EAAE,IAAI,CAACE,MAAmB;AACnD,UAAI,WAAWD,MACbA,EAAU,QAAQC;AAAA,QAEtB,KAGAH,EAAYC,CAAG,IAAIC;AAAA,MACrB;AAEW,aAAAV,EAAAD,GAAU,EAAE,MAAMQ,GAAY,OAAOC,GAAa,OAAOF,KAAS,CAAA,GAAI,GACnF,MAAMM,EAAS,IACRC,IAAAZ,EAAaF,CAAQ,MAArB,gBAAAc,EAAwB,SAAS;AAAA,aAEnCC,GAAG;AACR,cAAQ,MAAMA,CAAC;AAAA,IAAA;AAAA,EACjB;AAEK,SAAA;AAAA,IACL,iBAAiB,MAAA;;AAAM,cAAAD,IAAAZ,EAAaF,CAAQ,MAArB,gBAAAc,EAAwB,SAAS;AAAA;AAAA,IACxD,iBAAAV;AAAA,EACF;AACF;"}
@@ -1,34 +1,36 @@
1
- import { createGlobalState as l } from "@vueuse/core";
2
- import { ref as m, shallowRef as i, onBeforeUnmount as u } from "vue";
3
- const R = l(() => {
1
+ import { createGlobalState as v } from "@vueuse/core";
2
+ import { ref as c, shallowRef as i, onBeforeUnmount as C } from "vue";
3
+ const M = v(() => {
4
4
  const a = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
5
- function f(t = "") {
6
- let e = n.get(t);
7
- e || (e = {
8
- Instance: m(),
5
+ function l(t = "") {
6
+ let o = n.get(t);
7
+ o || (o = {
8
+ Instance: c(),
9
9
  comp: i(),
10
- attrs: m({})
11
- }, n.set(t, e), u(() => r(t)));
12
- const o = a.get(t);
13
- return o && (e.comp.value = o.comp, e.attrs.value = o.attrs), {
14
- componentRef: e.Instance,
15
- componentNeo: e.comp,
16
- componentAttrs: e.attrs
10
+ attrs: c({}),
11
+ slots: c({})
12
+ }, n.set(t, o), C(() => m(t)));
13
+ const e = a.get(t);
14
+ return e && (o.comp.value = e.comp, o.attrs.value = e.attrs, o.slots.value = e.slots), {
15
+ componentRef: o.Instance,
16
+ componentNeo: o.comp,
17
+ componentAttrs: o.attrs,
18
+ componentSlots: o.slots
17
19
  };
18
20
  }
19
21
  function p(t = "") {
20
22
  return n.get(t);
21
23
  }
22
- function r(t = "") {
24
+ function m(t = "") {
23
25
  a.delete(t), n.delete(t);
24
26
  }
25
- function s(t = "", e, o) {
26
- const c = p(t);
27
- c && (c.comp.value = e, c.attrs.value = o), a.set(t, { comp: e, attrs: o });
27
+ function u(t = "", o) {
28
+ const { comp: e, attrs: r, slots: f } = o, s = p(t);
29
+ s && (s.comp.value = e, s.attrs.value = r, s.slots.value = f), a.set(t, { comp: e, attrs: r, slots: f });
28
30
  }
29
- return { initComponent: f, setComponent: s, getComponent: p, removeComponent: r };
31
+ return { initComponent: l, setComponent: u, getComponent: p, removeComponent: m };
30
32
  });
31
33
  export {
32
- R as useComponentState
34
+ M as useComponentState
33
35
  };
34
36
  //# sourceMappingURL=use-component-state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-component-state.mjs","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-state.ts"],"sourcesContent":["import type { InstanceComponent } from '../component-neo';\r\nimport { createGlobalState } from '@vueuse/core';\r\nimport { onBeforeUnmount, ref, type Ref, shallowRef, type ShallowRef, type VNode } from 'vue';\r\n\r\ninterface ComponentRefsType {\r\n /** 实例 */\r\n Instance: Ref<any>\r\n /** 组件 */\r\n comp: ShallowRef<InstanceComponent | VNode | undefined>\r\n /** 属性 */\r\n attrs: Ref<Record<string, any>>\r\n}\r\n\r\n/** 组件状态 */\r\nexport const useComponentState = createGlobalState(() => {\r\n /** 缓存组件数据,组件未实例化时,可先缓存后赋值 */\r\n const dataBufferMap = new Map<string, { comp: InstanceComponent | VNode, attrs: Record<string, any> }>();\r\n /** 实例化后的组件 */\r\n const componentRefsMap = new Map<string, ComponentRefsType>();\r\n /** 初始化组件 */\r\n function initComponent(uniqueId = '') {\r\n let componentRefs = componentRefsMap.get(uniqueId);\r\n if (!componentRefs) {\r\n componentRefs = {\r\n Instance: ref(),\r\n comp: shallowRef<InstanceComponent | VNode>(),\r\n attrs: ref<Record<string, any>>({}),\r\n };\r\n componentRefsMap.set(uniqueId, componentRefs);\r\n onBeforeUnmount(() => removeComponent(uniqueId));\r\n }\r\n // 使用缓存数据初始化数据\r\n const bufferData = dataBufferMap.get(uniqueId);\r\n if (bufferData) {\r\n componentRefs.comp.value = bufferData.comp;\r\n componentRefs.attrs.value = bufferData.attrs;\r\n }\r\n\r\n return {\r\n componentRef: componentRefs.Instance,\r\n componentNeo: componentRefs.comp,\r\n componentAttrs: componentRefs.attrs,\r\n };\r\n }\r\n\r\n /** 获取实例 */\r\n function getComponent(uniqueId = '') {\r\n return componentRefsMap.get(uniqueId);\r\n }\r\n\r\n /** 移除实例 */\r\n function removeComponent(uniqueId = '') {\r\n dataBufferMap.delete(uniqueId);\r\n componentRefsMap.delete(uniqueId);\r\n }\r\n\r\n /** 设置组件数据 */\r\n function setComponent(uniqueId = '', comp: InstanceComponent | VNode, attrs: Record<string, any>) {\r\n const componentRefs = getComponent(uniqueId);\r\n if (componentRefs) {\r\n componentRefs.comp.value = comp;\r\n componentRefs.attrs.value = attrs;\r\n }\r\n dataBufferMap.set(uniqueId, { comp, attrs });\r\n }\r\n\r\n return { initComponent, setComponent, getComponent, removeComponent };\r\n});\r\n"],"names":["useComponentState","createGlobalState","dataBufferMap","componentRefsMap","initComponent","uniqueId","componentRefs","ref","shallowRef","onBeforeUnmount","removeComponent","bufferData","getComponent","setComponent","comp","attrs"],"mappings":";;AAca,MAAAA,IAAoBC,EAAkB,MAAM;AAEjD,QAAAC,wBAAoB,IAA6E,GAEjGC,wBAAuB,IAA+B;AAEnD,WAAAC,EAAcC,IAAW,IAAI;AAChC,QAAAC,IAAgBH,EAAiB,IAAIE,CAAQ;AACjD,IAAKC,MACaA,IAAA;AAAA,MACd,UAAUC,EAAI;AAAA,MACd,MAAMC,EAAsC;AAAA,MAC5C,OAAOD,EAAyB,CAAE,CAAA;AAAA,IACpC,GACiBJ,EAAA,IAAIE,GAAUC,CAAa,GAC5BG,EAAA,MAAMC,EAAgBL,CAAQ,CAAC;AAG3C,UAAAM,IAAaT,EAAc,IAAIG,CAAQ;AAC7C,WAAIM,MACYL,EAAA,KAAK,QAAQK,EAAW,MACxBL,EAAA,MAAM,QAAQK,EAAW,QAGlC;AAAA,MACL,cAAcL,EAAc;AAAA,MAC5B,cAAcA,EAAc;AAAA,MAC5B,gBAAgBA,EAAc;AAAA,IAChC;AAAA,EAAA;AAIO,WAAAM,EAAaP,IAAW,IAAI;AAC5B,WAAAF,EAAiB,IAAIE,CAAQ;AAAA,EAAA;AAI7B,WAAAK,EAAgBL,IAAW,IAAI;AACtC,IAAAH,EAAc,OAAOG,CAAQ,GAC7BF,EAAiB,OAAOE,CAAQ;AAAA,EAAA;AAIlC,WAASQ,EAAaR,IAAW,IAAIS,GAAiCC,GAA4B;AAC1F,UAAAT,IAAgBM,EAAaP,CAAQ;AAC3C,IAAIC,MACFA,EAAc,KAAK,QAAQQ,GAC3BR,EAAc,MAAM,QAAQS,IAE9Bb,EAAc,IAAIG,GAAU,EAAE,MAAAS,GAAM,OAAAC,GAAO;AAAA,EAAA;AAG7C,SAAO,EAAE,eAAAX,GAAe,cAAAS,GAAc,cAAAD,GAAc,iBAAAF,EAAgB;AACtE,CAAC;"}
1
+ {"version":3,"file":"use-component-state.mjs","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-state.ts"],"sourcesContent":["import type { Ref, ShallowRef, VNode } from 'vue';\r\nimport type { ComponentSlots, InstanceComponent } from '../component-neo';\r\nimport { createGlobalState } from '@vueuse/core';\r\nimport { onBeforeUnmount, ref, shallowRef } from 'vue';\r\n\r\ninterface ComponentRefsType {\r\n /** 引用实例 */\r\n Instance: Ref<any>\r\n /** 组件 */\r\n comp: ShallowRef<InstanceComponent | VNode | undefined>\r\n /** 属性 */\r\n attrs: Ref<Record<string, unknown>>\r\n /** 插槽 */\r\n slots: Ref<ComponentSlots>\r\n}\r\n\r\ninterface ComponentData {\r\n comp?: InstanceComponent | VNode\r\n attrs: Record<string, unknown>\r\n slots: ComponentSlots\r\n}\r\n\r\n/** 组件状态 */\r\nexport const useComponentState = createGlobalState(() => {\r\n /** 缓存组件数据,组件未实例化时,可先缓存后赋值 */\r\n const dataBufferMap = new Map<string, ComponentData>();\r\n /** 实例化后的组件 */\r\n const componentRefsMap = new Map<string, ComponentRefsType>();\r\n /** 初始化组件 */\r\n function initComponent(uniqueId = '') {\r\n let componentRefs = componentRefsMap.get(uniqueId);\r\n if (!componentRefs) {\r\n componentRefs = {\r\n Instance: ref(),\r\n comp: shallowRef<InstanceComponent | VNode>(),\r\n attrs: ref<Record<string, unknown>>({}),\r\n slots: ref<ComponentSlots>({}),\r\n };\r\n componentRefsMap.set(uniqueId, componentRefs);\r\n onBeforeUnmount(() => removeComponent(uniqueId));\r\n }\r\n // 使用缓存数据初始化数据\r\n const bufferData = dataBufferMap.get(uniqueId);\r\n if (bufferData) {\r\n componentRefs.comp.value = bufferData.comp;\r\n componentRefs.attrs.value = bufferData.attrs;\r\n componentRefs.slots.value = bufferData.slots;\r\n }\r\n\r\n return {\r\n componentRef: componentRefs.Instance,\r\n componentNeo: componentRefs.comp,\r\n componentAttrs: componentRefs.attrs,\r\n componentSlots: componentRefs.slots,\r\n };\r\n }\r\n\r\n /** 获取实例 */\r\n function getComponent(uniqueId = '') {\r\n return componentRefsMap.get(uniqueId);\r\n }\r\n\r\n /** 移除实例 */\r\n function removeComponent(uniqueId = '') {\r\n dataBufferMap.delete(uniqueId);\r\n componentRefsMap.delete(uniqueId);\r\n }\r\n\r\n /** 设置组件数据 */\r\n function setComponent(uniqueId = '', args: ComponentData) {\r\n const { comp, attrs, slots } = args;\r\n const componentRefs = getComponent(uniqueId);\r\n if (componentRefs) {\r\n componentRefs.comp.value = comp;\r\n componentRefs.attrs.value = attrs;\r\n componentRefs.slots.value = slots;\r\n }\r\n dataBufferMap.set(uniqueId, { comp, attrs, slots });\r\n }\r\n\r\n return { initComponent, setComponent, getComponent, removeComponent };\r\n});\r\n"],"names":["useComponentState","createGlobalState","dataBufferMap","componentRefsMap","initComponent","uniqueId","componentRefs","ref","shallowRef","onBeforeUnmount","removeComponent","bufferData","getComponent","setComponent","args","comp","attrs","slots"],"mappings":";;AAuBa,MAAAA,IAAoBC,EAAkB,MAAM;AAEjD,QAAAC,wBAAoB,IAA2B,GAE/CC,wBAAuB,IAA+B;AAEnD,WAAAC,EAAcC,IAAW,IAAI;AAChC,QAAAC,IAAgBH,EAAiB,IAAIE,CAAQ;AACjD,IAAKC,MACaA,IAAA;AAAA,MACd,UAAUC,EAAI;AAAA,MACd,MAAMC,EAAsC;AAAA,MAC5C,OAAOD,EAA6B,EAAE;AAAA,MACtC,OAAOA,EAAoB,CAAE,CAAA;AAAA,IAC/B,GACiBJ,EAAA,IAAIE,GAAUC,CAAa,GAC5BG,EAAA,MAAMC,EAAgBL,CAAQ,CAAC;AAG3C,UAAAM,IAAaT,EAAc,IAAIG,CAAQ;AAC7C,WAAIM,MACYL,EAAA,KAAK,QAAQK,EAAW,MACxBL,EAAA,MAAM,QAAQK,EAAW,OACzBL,EAAA,MAAM,QAAQK,EAAW,QAGlC;AAAA,MACL,cAAcL,EAAc;AAAA,MAC5B,cAAcA,EAAc;AAAA,MAC5B,gBAAgBA,EAAc;AAAA,MAC9B,gBAAgBA,EAAc;AAAA,IAChC;AAAA,EAAA;AAIO,WAAAM,EAAaP,IAAW,IAAI;AAC5B,WAAAF,EAAiB,IAAIE,CAAQ;AAAA,EAAA;AAI7B,WAAAK,EAAgBL,IAAW,IAAI;AACtC,IAAAH,EAAc,OAAOG,CAAQ,GAC7BF,EAAiB,OAAOE,CAAQ;AAAA,EAAA;AAIzB,WAAAQ,EAAaR,IAAW,IAAIS,GAAqB;AACxD,UAAM,EAAE,MAAAC,GAAM,OAAAC,GAAO,OAAAC,EAAU,IAAAH,GACzBR,IAAgBM,EAAaP,CAAQ;AAC3C,IAAIC,MACFA,EAAc,KAAK,QAAQS,GAC3BT,EAAc,MAAM,QAAQU,GAC5BV,EAAc,MAAM,QAAQW,IAE9Bf,EAAc,IAAIG,GAAU,EAAE,MAAAU,GAAM,OAAAC,GAAO,OAAAC,GAAO;AAAA,EAAA;AAGpD,SAAO,EAAE,eAAAb,GAAe,cAAAS,GAAc,cAAAD,GAAc,iBAAAF,EAAgB;AACtE,CAAC;"}
@@ -1,10 +1,8 @@
1
- import n from "./src/expand.vue.mjs";
2
- n.install = (o) => {
3
- n.name && o.component(n.name, n);
4
- };
5
- const a = n;
1
+ import { withInstall as t } from "../utils/install.mjs";
2
+ import o from "./src/expand.vue.mjs";
3
+ const m = t(o);
6
4
  export {
7
- a as MtExpand
5
+ m as MtExpand
8
6
  };
9
7
  //# sourceMappingURL=index.mjs.map
10
8
  import './src/expand.css';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/expand/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Expand from './src/expand.vue';\r\n\r\nExpand.install = (app: App): void => {\r\n if (Expand.name) {\r\n app.component(Expand.name, Expand);\r\n }\r\n};\r\n\r\nexport const MtExpand = Expand;\r\n\r\nexport * from './src/expand';\r\n"],"names":["Expand","app","MtExpand"],"mappings":";AAGAA,EAAO,UAAU,CAACC,MAAmB;AACnC,EAAID,EAAO,QACLC,EAAA,UAAUD,EAAO,MAAMA,CAAM;AAErC;AAEO,MAAME,IAAWF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/expand/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Expand from './src/expand.vue';\r\n\r\nexport const MtExpand = withInstall(Expand);\r\n\r\nexport * from './src/expand';\r\n"],"names":["MtExpand","withInstall","Expand"],"mappings":";;AAGa,MAAAA,IAAWC,EAAYC,CAAM;"}
@@ -1,9 +1,7 @@
1
+ import { withInstall as t } from "../utils/install.mjs";
1
2
  import o from "./src/sort.mjs";
2
- o.install = (t) => {
3
- o.name && t.component(o.name, o);
4
- };
5
- const m = o;
3
+ const i = t(o);
6
4
  export {
7
- m as MtSort
5
+ i as MtSort
8
6
  };
9
7
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/sort/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Sort from './src/sort';\r\n\r\nSort.install = (app: App): void => {\r\n if (Sort.name) {\r\n app.component(Sort.name, Sort);\r\n }\r\n};\r\n\r\nexport const MtSort = Sort;\r\n\r\nexport * from './src/sort';\r\n"],"names":["Sort","app","MtSort"],"mappings":";AAGAA,EAAK,UAAU,CAACC,MAAmB;AACjC,EAAID,EAAK,QACHC,EAAA,UAAUD,EAAK,MAAMA,CAAI;AAEjC;AAEO,MAAME,IAASF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/sort/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Sort from './src/sort';\r\n\r\nexport const MtSort = withInstall(Sort);\r\n\r\nexport * from './src/sort';\r\n"],"names":["MtSort","withInstall","Sort"],"mappings":";;AAGa,MAAAA,IAASC,EAAYC,CAAI;"}
@@ -1,5 +1,5 @@
1
- import { defineComponent as l, computed as p } from "vue";
2
- const d = l({
1
+ import { defineComponent as l, computed as y } from "vue";
2
+ const h = l({
3
3
  name: "MtSort",
4
4
  props: {
5
5
  /** 排序配置 */
@@ -14,34 +14,34 @@ const d = l({
14
14
  }
15
15
  },
16
16
  setup(t, { slots: s }) {
17
- const o = p(() => {
18
- var c;
19
- const e = ((c = s.default) == null ? void 0 : c.call(s)) || [], n = f(t.keyName, e), r = Array.from(new Set(t.sortList)).map((i) => n[i]).filter(Boolean);
17
+ const o = y(() => {
18
+ var i;
19
+ const e = ((i = s.default) == null ? void 0 : i.call(s)) || [], n = a(t.keyName, e), r = Array.from(new Set(t.sortList)).map((c) => n[c]).filter(Boolean);
20
20
  return u(t.keyName, e, t.sortList, r);
21
21
  });
22
22
  return () => o.value;
23
23
  }
24
24
  });
25
- function f(t, s, o = {}) {
25
+ function a(t, s, o = {}) {
26
26
  return s.forEach((e) => {
27
27
  var r;
28
28
  const n = (r = e.props) == null ? void 0 : r[t];
29
29
  if (n) {
30
- o[n] ? console.warn(`<mt-sort-space> ${t}: ${n} repeat`) : o[n] = e;
30
+ o[n] ? console.warn(`<mt-sort> ${t}: ${n} repeat`) : o[n] = e;
31
31
  return;
32
32
  }
33
- Array.isArray(e.children) && f(t, e.children, o);
33
+ Array.isArray(e.children) && a(t, e.children, o);
34
34
  }), o;
35
35
  }
36
36
  function u(t, s, o, e) {
37
37
  const n = [];
38
38
  return s.forEach((r) => {
39
- var i;
40
- const c = (i = r.props) == null ? void 0 : i[t];
41
- if (c && o.includes(c)) {
42
- const a = e.shift();
43
- if (a) {
44
- n.push(a);
39
+ var c;
40
+ const i = (c = r.props) == null ? void 0 : c[t];
41
+ if (i && o.includes(i)) {
42
+ const f = e.shift();
43
+ if (f) {
44
+ n.push(f);
45
45
  return;
46
46
  }
47
47
  }
@@ -49,6 +49,6 @@ function u(t, s, o, e) {
49
49
  }), n;
50
50
  }
51
51
  export {
52
- d as default
52
+ h as default
53
53
  };
54
54
  //# sourceMappingURL=sort.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","sources":["../../../../../../packages/components/sort/src/sort.ts"],"sourcesContent":["import type { PropType, VNode } from 'vue';\r\nimport { computed, defineComponent } from 'vue';\r\n\r\nexport interface SortSpaceProps {\r\n /** 排序配置 */\r\n sortList?: (string | number)[]\r\n /** 排序key名 */\r\n keyName?: string\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'MtSort',\r\n props: {\r\n /** 排序配置 */\r\n sortList: {\r\n type: Array as PropType<(string | number)[]>,\r\n default: () => [],\r\n },\r\n /** 排序key名 */\r\n keyName: {\r\n type: String,\r\n default: 'sort-key',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const renderVNodes = computed(() => {\r\n const vNodeList = slots.default?.() || [];\r\n const sortVNodeMap = getVNodeMap(props.keyName, vNodeList);\r\n const sortVNodeList = Array.from(new Set(props.sortList)).map(key => sortVNodeMap[key]).filter(Boolean);\r\n return sortDefaultVNodes(props.keyName, vNodeList, props.sortList, sortVNodeList);\r\n });\r\n\r\n return () => renderVNodes.value;\r\n },\r\n});\r\n\r\n/** 获取插槽中需要排序的节点 */\r\nfunction getVNodeMap(keyName: string, vNodeList: VNode[], vNodeMap: Record<(string | number), VNode> = {}) {\r\n vNodeList.forEach((item) => {\r\n const sortKey = item.props?.[keyName];\r\n if (sortKey) {\r\n if (vNodeMap[sortKey]) {\r\n console.warn(`<mt-sort-space> ${keyName}: ${sortKey} repeat`);\r\n }\r\n else {\r\n vNodeMap[sortKey] = item;\r\n }\r\n return;\r\n }\r\n if (Array.isArray(item.children)) {\r\n getVNodeMap(keyName, item.children as VNode[], vNodeMap);\r\n }\r\n });\r\n return vNodeMap;\r\n}\r\n\r\n/** 根据排序后的节点跟换位置 */\r\nfunction sortDefaultVNodes(keyName: string, vNodeList: VNode[], sortList: (string | number)[], sortVNodeList: VNode[]) {\r\n const newList: VNode[] = [];\r\n vNodeList.forEach((vNode) => {\r\n const sortKey = vNode.props?.[keyName];\r\n if (sortKey && sortList.includes(sortKey)) {\r\n const sortVNode = sortVNodeList.shift();\r\n if (sortVNode) {\r\n newList.push(sortVNode);\r\n return;\r\n }\r\n }\r\n if (Array.isArray(vNode.children)) {\r\n vNode = { ...vNode }; // 避免修改原节点数据\r\n vNode.children = sortDefaultVNodes(keyName, vNode.children as VNode[], sortList, sortVNodeList);\r\n }\r\n newList.push(vNode);\r\n });\r\n return newList;\r\n}\r\n"],"names":["Sort","defineComponent","props","slots","renderVNodes","computed","vNodeList","_a","sortVNodeMap","getVNodeMap","sortVNodeList","key","sortDefaultVNodes","keyName","vNodeMap","item","sortKey","sortList","newList","vNode","sortVNode"],"mappings":";AAUA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA;AAAA,IAEL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IACjB;AAAA;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,MAAMC,GAAO,EAAE,OAAAC,KAAS;AAChB,UAAAC,IAAeC,EAAS,MAAM;;AAClC,YAAMC,MAAYC,IAAAJ,EAAM,YAAN,gBAAAI,EAAA,KAAAJ,OAAqB,CAAC,GAClCK,IAAeC,EAAYP,EAAM,SAASI,CAAS,GACnDI,IAAgB,MAAM,KAAK,IAAI,IAAIR,EAAM,QAAQ,CAAC,EAAE,IAAI,OAAOM,EAAaG,CAAG,CAAC,EAAE,OAAO,OAAO;AACtG,aAAOC,EAAkBV,EAAM,SAASI,GAAWJ,EAAM,UAAUQ,CAAa;AAAA,IAAA,CACjF;AAED,WAAO,MAAMN,EAAa;AAAA,EAAA;AAE9B,CAAC;AAGD,SAASK,EAAYI,GAAiBP,GAAoBQ,IAA6C,CAAA,GAAI;AAC/F,SAAAR,EAAA,QAAQ,CAACS,MAAS;;AACpB,UAAAC,KAAUT,IAAAQ,EAAK,UAAL,gBAAAR,EAAaM;AAC7B,QAAIG,GAAS;AACP,MAAAF,EAASE,CAAO,IAClB,QAAQ,KAAK,mBAAmBH,CAAO,KAAKG,CAAO,SAAS,IAG5DF,EAASE,CAAO,IAAID;AAEtB;AAAA,IAAA;AAEF,IAAI,MAAM,QAAQA,EAAK,QAAQ,KACjBN,EAAAI,GAASE,EAAK,UAAqBD,CAAQ;AAAA,EACzD,CACD,GACMA;AACT;AAGA,SAASF,EAAkBC,GAAiBP,GAAoBW,GAA+BP,GAAwB;AACrH,QAAMQ,IAAmB,CAAC;AAChB,SAAAZ,EAAA,QAAQ,CAACa,MAAU;;AACrB,UAAAH,KAAUT,IAAAY,EAAM,UAAN,gBAAAZ,EAAcM;AAC9B,QAAIG,KAAWC,EAAS,SAASD,CAAO,GAAG;AACnC,YAAAI,IAAYV,EAAc,MAAM;AACtC,UAAIU,GAAW;AACb,QAAAF,EAAQ,KAAKE,CAAS;AACtB;AAAA,MAAA;AAAA,IACF;AAEF,IAAI,MAAM,QAAQD,EAAM,QAAQ,MACtBA,IAAA,EAAE,GAAGA,EAAM,GACnBA,EAAM,WAAWP,EAAkBC,GAASM,EAAM,UAAqBF,GAAUP,CAAa,IAEhGQ,EAAQ,KAAKC,CAAK;AAAA,EAAA,CACnB,GACMD;AACT;"}
1
+ {"version":3,"file":"sort.mjs","sources":["../../../../../../packages/components/sort/src/sort.ts"],"sourcesContent":["import type { PropType, VNode } from 'vue';\r\nimport { computed, defineComponent } from 'vue';\r\n\r\nexport interface SortProps {\r\n /** 排序配置 */\r\n sortList?: (string | number)[]\r\n /** 排序key名 */\r\n keyName?: string\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'MtSort',\r\n props: {\r\n /** 排序配置 */\r\n sortList: {\r\n type: Array as PropType<(string | number)[]>,\r\n default: () => [],\r\n },\r\n /** 排序key名 */\r\n keyName: {\r\n type: String,\r\n default: 'sort-key',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const renderVNodes = computed(() => {\r\n const vNodeList = slots.default?.() || [];\r\n const sortVNodeMap = getVNodeMap(props.keyName, vNodeList);\r\n const sortVNodeList = Array.from(new Set(props.sortList)).map(key => sortVNodeMap[key]).filter(Boolean);\r\n return sortDefaultVNodes(props.keyName, vNodeList, props.sortList, sortVNodeList);\r\n });\r\n\r\n return () => renderVNodes.value;\r\n },\r\n});\r\n\r\n/** 获取插槽中需要排序的节点 */\r\nfunction getVNodeMap(keyName: string, vNodeList: VNode[], vNodeMap: Record<(string | number), VNode> = {}) {\r\n vNodeList.forEach((item) => {\r\n const sortKey = item.props?.[keyName];\r\n if (sortKey) {\r\n if (vNodeMap[sortKey]) {\r\n console.warn(`<mt-sort> ${keyName}: ${sortKey} repeat`);\r\n }\r\n else {\r\n vNodeMap[sortKey] = item;\r\n }\r\n return;\r\n }\r\n if (Array.isArray(item.children)) {\r\n getVNodeMap(keyName, item.children as VNode[], vNodeMap);\r\n }\r\n });\r\n return vNodeMap;\r\n}\r\n\r\n/** 根据排序后的节点跟换位置 */\r\nfunction sortDefaultVNodes(keyName: string, vNodeList: VNode[], sortList: (string | number)[], sortVNodeList: VNode[]) {\r\n const newList: VNode[] = [];\r\n vNodeList.forEach((vNode) => {\r\n const sortKey = vNode.props?.[keyName];\r\n if (sortKey && sortList.includes(sortKey)) {\r\n const sortVNode = sortVNodeList.shift();\r\n if (sortVNode) {\r\n newList.push(sortVNode);\r\n return;\r\n }\r\n }\r\n if (Array.isArray(vNode.children)) {\r\n vNode = { ...vNode }; // 避免修改原节点数据\r\n vNode.children = sortDefaultVNodes(keyName, vNode.children as VNode[], sortList, sortVNodeList);\r\n }\r\n newList.push(vNode);\r\n });\r\n return newList;\r\n}\r\n"],"names":["Sort","defineComponent","props","slots","renderVNodes","computed","vNodeList","_a","sortVNodeMap","getVNodeMap","sortVNodeList","key","sortDefaultVNodes","keyName","vNodeMap","item","sortKey","sortList","newList","vNode","sortVNode"],"mappings":";AAUA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA;AAAA,IAEL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IACjB;AAAA;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,MAAMC,GAAO,EAAE,OAAAC,KAAS;AAChB,UAAAC,IAAeC,EAAS,MAAM;;AAClC,YAAMC,MAAYC,IAAAJ,EAAM,YAAN,gBAAAI,EAAA,KAAAJ,OAAqB,CAAC,GAClCK,IAAeC,EAAYP,EAAM,SAASI,CAAS,GACnDI,IAAgB,MAAM,KAAK,IAAI,IAAIR,EAAM,QAAQ,CAAC,EAAE,IAAI,OAAOM,EAAaG,CAAG,CAAC,EAAE,OAAO,OAAO;AACtG,aAAOC,EAAkBV,EAAM,SAASI,GAAWJ,EAAM,UAAUQ,CAAa;AAAA,IAAA,CACjF;AAED,WAAO,MAAMN,EAAa;AAAA,EAAA;AAE9B,CAAC;AAGD,SAASK,EAAYI,GAAiBP,GAAoBQ,IAA6C,CAAA,GAAI;AAC/F,SAAAR,EAAA,QAAQ,CAACS,MAAS;;AACpB,UAAAC,KAAUT,IAAAQ,EAAK,UAAL,gBAAAR,EAAaM;AAC7B,QAAIG,GAAS;AACP,MAAAF,EAASE,CAAO,IAClB,QAAQ,KAAK,aAAaH,CAAO,KAAKG,CAAO,SAAS,IAGtDF,EAASE,CAAO,IAAID;AAEtB;AAAA,IAAA;AAEF,IAAI,MAAM,QAAQA,EAAK,QAAQ,KACjBN,EAAAI,GAASE,EAAK,UAAqBD,CAAQ;AAAA,EACzD,CACD,GACMA;AACT;AAGA,SAASF,EAAkBC,GAAiBP,GAAoBW,GAA+BP,GAAwB;AACrH,QAAMQ,IAAmB,CAAC;AAChB,SAAAZ,EAAA,QAAQ,CAACa,MAAU;;AACrB,UAAAH,KAAUT,IAAAY,EAAM,UAAN,gBAAAZ,EAAcM;AAC9B,QAAIG,KAAWC,EAAS,SAASD,CAAO,GAAG;AACnC,YAAAI,IAAYV,EAAc,MAAM;AACtC,UAAIU,GAAW;AACb,QAAAF,EAAQ,KAAKE,CAAS;AACtB;AAAA,MAAA;AAAA,IACF;AAEF,IAAI,MAAM,QAAQD,EAAM,QAAQ,MACtBA,IAAA,EAAE,GAAGA,EAAM,GACnBA,EAAM,WAAWP,EAAkBC,GAASM,EAAM,UAAqBF,GAAUP,CAAa,IAEhGQ,EAAQ,KAAKC,CAAK;AAAA,EAAA,CACnB,GACMD;AACT;"}
@@ -1,10 +1,8 @@
1
- import e from "./src/table.vue.mjs";
2
- e.install = (n) => {
3
- e.name && n.component(e.name, e);
4
- };
5
- const t = e;
1
+ import { withInstall as t } from "../utils/install.mjs";
2
+ import o from "./src/table.vue.mjs";
3
+ const m = t(o);
6
4
  export {
7
- t as MtTable
5
+ m as MtTable
8
6
  };
9
7
  //# sourceMappingURL=index.mjs.map
10
8
  import './src/table.css';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/table/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Table from './src/table.vue';\r\n\r\nTable.install = (app: App): void => {\r\n if (Table.name) {\r\n app.component(Table.name, Table);\r\n }\r\n};\r\n\r\nexport const MtTable = Table;\r\n\r\nexport * from './src/table';\r\n"],"names":["Table","app","MtTable"],"mappings":";AAGAA,EAAM,UAAU,CAACC,MAAmB;AAClC,EAAID,EAAM,QACJC,EAAA,UAAUD,EAAM,MAAMA,CAAK;AAEnC;AAEO,MAAME,IAAUF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/table/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Table from './src/table.vue';\r\n\r\nexport const MtTable = withInstall(Table);\r\n\r\nexport * from './src/table';\r\n"],"names":["MtTable","withInstall","Table"],"mappings":";;AAGa,MAAAA,IAAUC,EAAYC,CAAK;"}
@@ -0,0 +1,9 @@
1
+ function e(n) {
2
+ return n.install = (t) => {
3
+ n.name && t.component(n.name, n);
4
+ }, n;
5
+ }
6
+ export {
7
+ e as withInstall
8
+ };
9
+ //# sourceMappingURL=install.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.mjs","sources":["../../../../../packages/components/utils/install.ts"],"sourcesContent":["import type { App, Component, Plugin } from 'vue';\r\n\r\nexport function withInstall<T extends Component>(comp: T) {\r\n (comp as T & Plugin).install = (app: App): void => {\r\n if (comp.name) {\r\n app.component(comp.name, comp);\r\n }\r\n };\r\n return comp;\r\n}\r\n"],"names":["withInstall","comp","app"],"mappings":"AAEO,SAASA,EAAiCC,GAAS;AACvD,SAAAA,EAAoB,UAAU,CAACC,MAAmB;AACjD,IAAID,EAAK,QACHC,EAAA,UAAUD,EAAK,MAAMA,CAAI;AAAA,EAEjC,GACOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./src/component-neo.vue.js");require("vue");require("./src/hooks/use-component-state.js");e.default.install=t=>{e.default.name&&t.component(e.default.name,e.default)};const o=e.default;exports.MtComponentNeo=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../utils/install.js"),t=require("./src/component-neo.vue.js");require("vue");require("./src/hooks/use-component-state.js");const o=e.withInstall(t.default);exports.MtComponentNeo=o;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/component-neo/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport ComponentNeo from './src/component-neo.vue';\r\n\r\nComponentNeo.install = (app: App): void => {\r\n if (ComponentNeo.name) {\r\n app.component(ComponentNeo.name, ComponentNeo);\r\n }\r\n};\r\n\r\nexport const MtComponentNeo = ComponentNeo;\r\n\r\nexport * from './src/component-neo.vue';\r\nexport * from './src/hooks/use-component-neo';\r\n"],"names":["ComponentNeo","app","MtComponentNeo"],"mappings":"2LAGAA,EAAAA,QAAa,QAAWC,GAAmB,CACrCD,EAAAA,QAAa,MACXC,EAAA,UAAUD,UAAa,KAAMA,EAAAA,OAAY,CAEjD,EAEO,MAAME,EAAiBF,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/component-neo/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport ComponentNeo from './src/component-neo.vue';\r\n\r\nexport const MtComponentNeo = withInstall(ComponentNeo);\r\n\r\nexport * from './src/component-neo';\r\nexport * from './src/hooks/use-component-neo';\r\n"],"names":["MtComponentNeo","withInstall","ComponentNeo"],"mappings":"4NAGa,MAAAA,EAAiBC,cAAYC,EAAY,OAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("./hooks/use-component-state.js"),_=e.defineComponent({name:"MtComponentNeo",inheritAttrs:!1,__name:"component-neo",props:{uniqueId:{default:""},is:{}},emits:["toggleComponent"],setup(l,{expose:i,emit:v}){const s=l,d=v,{initComponent:f}=y.useComponentState(),{componentRef:u,componentNeo:C,componentAttrs:c}=f(s.uniqueId),a=o=>u.value=o,g=e.useAttrs(),m=e.computed(()=>{const o={};for(const n in c.value)typeof c.value[n]<"u"&&(o[n]=e.unref(c.value[n]));return Object.assign(o,g)}),t=e.computed(()=>C.value||s.is),r=e.computed(()=>t.value?e.h(t.value,m.value):e.h(e.Comment,"componentNeo is empty")),p=e.computed(()=>typeof t.value=="object"&&"name"in t.value?t.value.name:void 0);return e.watch(t,async()=>{await e.nextTick(),d("toggleComponent",p.value,u.value)}),i({componentRef:u}),(o,n)=>e.renderSlot(o.$slots,"default",{Component:r.value,compRef:a,attrs:m.value,compName:p.value},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),{ref:a}))])}});exports.default=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),_=require("./hooks/use-component-state.js"),A=e.defineComponent({name:"MtComponentNeo",inheritAttrs:!1,__name:"component-neo",props:{uniqueId:{default:""},is:{}},emits:["toggleComponent"],setup(l,{expose:i,emit:v}){const c=l,d=v,{initComponent:f}=_.useComponentState(),{componentRef:u,componentNeo:C,componentAttrs:s,componentSlots:g}=f(c.uniqueId),a=o=>u.value=o,y=e.useAttrs(),m=e.computed(()=>{const o={};for(const n in s.value)typeof s.value[n]<"u"&&(o[n]=e.unref(s.value[n]));return Object.assign(o,y)}),t=e.computed(()=>C.value||c.is),p=e.computed(()=>t.value?e.h(t.value,m.value,g.value):e.h(e.Comment,"ComponentNeo is empty")),r=e.computed(()=>typeof t.value=="object"&&"name"in t.value?t.value.name:void 0);return e.watch(t,async()=>{await e.nextTick(),d("toggleComponent",r.value,u.value)}),i({componentRef:u}),(o,n)=>e.renderSlot(o.$slots,"default",{Component:p.value,compRef:a,attrs:m.value,compName:r.value},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{ref:a}))])}});exports.default=A;
2
2
  //# sourceMappingURL=component-neo.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-neo.vue.js","sources":["../../../../../../packages/components/component-neo/src/component-neo.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ComponentNeoProps } from './component-neo';\r\nimport { Comment, computed, h, nextTick, unref, useAttrs, watch } from 'vue';\r\nimport { useComponentState } from './hooks/use-component-state';\r\n\r\ndefineOptions({ name: 'MtComponentNeo', inheritAttrs: false });\r\n\r\nconst props = withDefaults(\r\n defineProps<ComponentNeoProps>(),\r\n { uniqueId: '', onToggle: () => { } },\r\n);\r\n\r\nconst emit = defineEmits<{\r\n (e: 'toggleComponent', name?: string, ref?: any): void\r\n}>();\r\n\r\nconst { initComponent } = useComponentState();\r\nconst { componentRef, componentNeo, componentAttrs } = initComponent(props.uniqueId);\r\nconst compRef = (el: Element) => componentRef.value = el;\r\n\r\nconst commonAttrs = useAttrs();\r\n/** 结合注入的属性和公共属性 */\r\nconst compAttrs = computed(() => {\r\n const newAttrs: Record<string, any> = {};\r\n // 仅传入有值的属性\r\n for (const key in componentAttrs.value) {\r\n if (typeof componentAttrs.value[key] !== 'undefined') {\r\n newAttrs[key] = unref(componentAttrs.value[key]); // 支持ref数据转入\r\n }\r\n }\r\n return Object.assign(newAttrs, commonAttrs);\r\n});\r\n\r\nconst compInstance = computed(() => componentNeo.value || props.is);\r\n\r\nconst compVNode = computed(() => {\r\n return !compInstance.value ? h(Comment, 'componentNeo is empty') : h(compInstance.value, compAttrs.value);\r\n});\r\n\r\nconst compName = computed(() => {\r\n return typeof compInstance.value === 'object' && 'name' in compInstance.value ? compInstance.value.name : undefined;\r\n});\r\n\r\n// 监听组件切换,触发回调\r\nwatch(compInstance, async () => {\r\n await nextTick();\r\n emit('toggleComponent', compName.value, componentRef.value);\r\n});\r\n\r\ndefineExpose({ componentRef });\r\n</script>\r\n\r\n<template>\r\n <!-- eslint-disable-next-line vue/attribute-hyphenation -->\r\n <slot :Component=\"compVNode\" :compRef=\"compRef\" :attrs=\"compAttrs\" :compName=\"compName\">\r\n <component :is=\"compVNode\" :ref=\"compRef\" />\r\n </slot>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","initComponent","useComponentState","componentRef","componentNeo","componentAttrs","compRef","el","commonAttrs","useAttrs","compAttrs","computed","newAttrs","key","unref","compInstance","compVNode","h","Comment","compName","watch","nextTick","__expose"],"mappings":"0VAOA,MAAMA,EAAQC,EAKRC,EAAOC,EAIP,CAAE,cAAAC,CAAc,EAAIC,oBAAkB,EACtC,CAAE,aAAAC,EAAc,aAAAC,EAAc,eAAAC,CAAmB,EAAAJ,EAAcJ,EAAM,QAAQ,EAC7ES,EAAWC,GAAgBJ,EAAa,MAAQI,EAEhDC,EAAcC,EAAAA,SAAS,EAEvBC,EAAYC,EAAAA,SAAS,IAAM,CAC/B,MAAMC,EAAgC,CAAC,EAE5B,UAAAC,KAAOR,EAAe,MAC3B,OAAOA,EAAe,MAAMQ,CAAG,EAAM,MACvCD,EAASC,CAAG,EAAIC,EAAAA,MAAMT,EAAe,MAAMQ,CAAG,CAAC,GAG5C,OAAA,OAAO,OAAOD,EAAUJ,CAAW,CAAA,CAC3C,EAEKO,EAAeJ,EAAAA,SAAS,IAAMP,EAAa,OAASP,EAAM,EAAE,EAE5DmB,EAAYL,EAAAA,SAAS,IACjBI,EAAa,MAA8CE,EAAAA,EAAEF,EAAa,MAAOL,EAAU,KAAK,EAA3EO,EAAAA,EAAEC,EAAAA,QAAS,uBAAuB,CAChE,EAEKC,EAAWR,EAAAA,SAAS,IACjB,OAAOI,EAAa,OAAU,UAAY,SAAUA,EAAa,MAAQA,EAAa,MAAM,KAAO,MAC3G,EAGDK,OAAAA,EAAA,MAAML,EAAc,SAAY,CAC9B,MAAMM,WAAS,EACftB,EAAK,kBAAmBoB,EAAS,MAAOhB,EAAa,KAAK,CAAA,CAC3D,EAEYmB,EAAA,CAAE,aAAAnB,EAAc"}
1
+ {"version":3,"file":"component-neo.vue.js","sources":["../../../../../../packages/components/component-neo/src/component-neo.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ComponentNeoProps } from './component-neo';\r\nimport { Comment, computed, h, nextTick, unref, useAttrs, watch } from 'vue';\r\nimport { useComponentState } from './hooks/use-component-state';\r\n\r\ndefineOptions({ name: 'MtComponentNeo', inheritAttrs: false });\r\n\r\nconst props = withDefaults(\r\n defineProps<ComponentNeoProps>(),\r\n { uniqueId: '', onToggle: () => { } },\r\n);\r\n\r\nconst emit = defineEmits<{\r\n (e: 'toggleComponent', name?: string, ref?: any): void\r\n}>();\r\n\r\nconst { initComponent } = useComponentState();\r\nconst { componentRef, componentNeo, componentAttrs, componentSlots } = initComponent(props.uniqueId);\r\nconst compRef = (el: Element) => componentRef.value = el;\r\n\r\nconst commonAttrs = useAttrs();\r\n/** 结合注入的属性和公共属性 */\r\nconst compAttrs = computed(() => {\r\n const newAttrs: Record<string, unknown> = {};\r\n // 仅传入有值的属性\r\n for (const key in componentAttrs.value) {\r\n if (typeof componentAttrs.value[key] !== 'undefined') {\r\n newAttrs[key] = unref(componentAttrs.value[key]); // 支持ref数据转入\r\n }\r\n }\r\n return Object.assign(newAttrs, commonAttrs);\r\n});\r\n\r\nconst compInstance = computed(() => componentNeo.value || props.is);\r\n\r\nconst compVNode = computed(() => {\r\n return !compInstance.value ? h(Comment, 'ComponentNeo is empty') : h(compInstance.value, compAttrs.value, componentSlots.value);\r\n});\r\n\r\nconst compName = computed(() => {\r\n return typeof compInstance.value === 'object' && 'name' in compInstance.value ? compInstance.value.name : undefined;\r\n});\r\n\r\n// 监听组件切换,触发回调\r\nwatch(compInstance, async () => {\r\n await nextTick();\r\n emit('toggleComponent', compName.value, componentRef.value);\r\n});\r\n\r\ndefineExpose({ componentRef });\r\n</script>\r\n\r\n<template>\r\n <!-- eslint-disable-next-line vue/attribute-hyphenation -->\r\n <slot :Component=\"compVNode\" :compRef=\"compRef\" :attrs=\"compAttrs\" :compName=\"compName\">\r\n <component :is=\"compVNode\" :ref=\"compRef\" />\r\n </slot>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","initComponent","useComponentState","componentRef","componentNeo","componentAttrs","componentSlots","compRef","el","commonAttrs","useAttrs","compAttrs","computed","newAttrs","key","unref","compInstance","compVNode","h","Comment","compName","watch","nextTick","__expose"],"mappings":"0VAOA,MAAMA,EAAQC,EAKRC,EAAOC,EAIP,CAAE,cAAAC,CAAc,EAAIC,oBAAkB,EACtC,CAAE,aAAAC,EAAc,aAAAC,EAAc,eAAAC,EAAgB,eAAAC,GAAmBL,EAAcJ,EAAM,QAAQ,EAC7FU,EAAWC,GAAgBL,EAAa,MAAQK,EAEhDC,EAAcC,EAAAA,SAAS,EAEvBC,EAAYC,EAAAA,SAAS,IAAM,CAC/B,MAAMC,EAAoC,CAAC,EAEhC,UAAAC,KAAOT,EAAe,MAC3B,OAAOA,EAAe,MAAMS,CAAG,EAAM,MACvCD,EAASC,CAAG,EAAIC,EAAAA,MAAMV,EAAe,MAAMS,CAAG,CAAC,GAG5C,OAAA,OAAO,OAAOD,EAAUJ,CAAW,CAAA,CAC3C,EAEKO,EAAeJ,EAAAA,SAAS,IAAMR,EAAa,OAASP,EAAM,EAAE,EAE5DoB,EAAYL,EAAAA,SAAS,IACjBI,EAAa,MAA8CE,IAAEF,EAAa,MAAOL,EAAU,MAAOL,EAAe,KAAK,EAAjGY,EAAAA,EAAEC,EAAAA,QAAS,uBAAuB,CAChE,EAEKC,EAAWR,EAAAA,SAAS,IACjB,OAAOI,EAAa,OAAU,UAAY,SAAUA,EAAa,MAAQA,EAAa,MAAM,KAAO,MAC3G,EAGDK,OAAAA,EAAA,MAAML,EAAc,SAAY,CAC9B,MAAMM,WAAS,EACfvB,EAAK,kBAAmBqB,EAAS,MAAOjB,EAAa,KAAK,CAAA,CAC3D,EAEYoB,EAAA,CAAE,aAAApB,EAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("vue"),C=require("./use-component-state.js");function m(r=""){const{setComponent:l,getComponent:s}=C.useComponentState();async function i(t,c){var u;try{const a=typeof t=="function"?(await t()).default:t,n={};for(let e in c){const o=c[e];e.startsWith("vModel:")?(e=e.replace("vModel:",""),n[e]=o,n[`onUpdate:${e}`]=p=>{"value"in o&&(o.value=p)}):n[e]=o}return l(r,a,n),await f.nextTick(),(u=s(r))==null?void 0:u.Instance.value}catch(a){console.error(a)}}return{getComponentRef:()=>{var t;return(t=s(r))==null?void 0:t.Instance.value},toggleComponent:i}}exports.useComponentNeo=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("vue"),C=require("./use-component-state.js");function v(r=""){const{setComponent:u,getComponent:a}=C.useComponentState();async function i(t,c,p){var l;try{const s=typeof t=="function"?(await t()).default:t,n={};for(let e in c){const o=c[e];e.startsWith("vModel:")?(e=e.replace("vModel:",""),n[e]=o,n[`onUpdate:${e}`]=f=>{"value"in o&&(o.value=f)}):n[e]=o}return u(r,{comp:s,attrs:n,slots:p||{}}),await m.nextTick(),(l=a(r))==null?void 0:l.Instance.value}catch(s){console.error(s)}}return{getComponentRef:()=>{var t;return(t=a(r))==null?void 0:t.Instance.value},toggleComponent:i}}exports.useComponentNeo=v;
2
2
  //# sourceMappingURL=use-component-neo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-component-neo.js","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-neo.ts"],"sourcesContent":["import type { InstanceComponent } from '../component-neo';\r\nimport { nextTick, type VNode } from 'vue';\r\nimport { useComponentState } from './use-component-state';\r\n\r\nexport type ImportComponentFn = () => Promise<Record<string, any>>;\r\nexport type DynamicComponent = InstanceComponent | ImportComponentFn | VNode;\r\n\r\nexport function useComponentNeo(uniqueId = '') {\r\n const { setComponent, getComponent } = useComponentState();\r\n\r\n /**\r\n * 切换渲染的组件\r\n * @param comp 组件,可传入两种类型,1.直接函数格式返回import动态导入 2.组件类型\r\n * @param attrs 组件属性,可使用`on事件`方式添加事件方法,属性支持Ref类型进行绑定以实现动态变化, 支持通过{'vModal:value': value}方式双向绑定数据\r\n */\r\n async function toggleComponent(comp: DynamicComponent, attrs?: Record<string, any>) {\r\n try {\r\n const renderComp = typeof comp === 'function' ? (await (comp as ImportComponentFn)()).default : comp;\r\n const renderAttrs: Record<string, any> = {};\r\n for (let key in attrs) {\r\n const bindValue = attrs[key];\r\n // 兼容vModal\r\n if (key.startsWith('vModel:')) {\r\n key = key.replace('vModel:', '');\r\n renderAttrs[key] = bindValue;\r\n renderAttrs[`onUpdate:${key}`] = (value: any) => {\r\n if ('value' in bindValue) {\r\n bindValue.value = value;\r\n }\r\n };\r\n }\r\n else {\r\n renderAttrs[key] = bindValue;\r\n }\r\n }\r\n setComponent(uniqueId, renderComp, renderAttrs);\r\n await nextTick();\r\n return getComponent(uniqueId)?.Instance.value;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n return {\r\n getComponentRef: () => getComponent(uniqueId)?.Instance.value,\r\n toggleComponent,\r\n };\r\n};\r\n"],"names":["useComponentNeo","uniqueId","setComponent","getComponent","useComponentState","toggleComponent","comp","attrs","renderComp","renderAttrs","key","bindValue","value","nextTick","_a","e"],"mappings":"6IAOgB,SAAAA,EAAgBC,EAAW,GAAI,CAC7C,KAAM,CAAE,aAAAC,EAAc,aAAAC,CAAa,EAAIC,oBAAkB,EAO1C,eAAAC,EAAgBC,EAAwBC,EAA6B,OAC9E,GAAA,CACF,MAAMC,EAAa,OAAOF,GAAS,YAAc,MAAOA,EAAA,GAA8B,QAAUA,EAC1FG,EAAmC,CAAC,EAC1C,QAASC,KAAOH,EAAO,CACf,MAAAI,EAAYJ,EAAMG,CAAG,EAEvBA,EAAI,WAAW,SAAS,GACpBA,EAAAA,EAAI,QAAQ,UAAW,EAAE,EAC/BD,EAAYC,CAAG,EAAIC,EACnBF,EAAY,YAAYC,CAAG,EAAE,EAAKE,GAAe,CAC3C,UAAWD,IACbA,EAAU,MAAQC,EAEtB,GAGAH,EAAYC,CAAG,EAAIC,CACrB,CAEW,OAAAT,EAAAD,EAAUO,EAAYC,CAAW,EAC9C,MAAMI,WAAS,GACRC,EAAAX,EAAaF,CAAQ,IAArB,YAAAa,EAAwB,SAAS,YAEnCC,EAAG,CACR,QAAQ,MAAMA,CAAC,CAAA,CACjB,CAEK,MAAA,CACL,gBAAiB,IAAA,OAAM,OAAAD,EAAAX,EAAaF,CAAQ,IAArB,YAAAa,EAAwB,SAAS,OACxD,gBAAAT,CACF,CACF"}
1
+ {"version":3,"file":"use-component-neo.js","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-neo.ts"],"sourcesContent":["import type { VNode } from 'vue';\r\nimport type { ComponentSlots, InstanceComponent } from '../component-neo';\r\nimport { nextTick } from 'vue';\r\nimport { useComponentState } from './use-component-state';\r\n\r\nexport type ImportComponentFn = () => Promise<Record<string, any>>;\r\nexport type DynamicComponent = InstanceComponent | ImportComponentFn | VNode;\r\n\r\nexport function useComponentNeo(uniqueId = '') {\r\n const { setComponent, getComponent } = useComponentState();\r\n\r\n /**\r\n * 切换渲染的组件\r\n * @param comp 组件,可传入两种类型,1.import动态导入 2.组件类型 3.VNode\r\n * @param attrs 组件属性,可使用`on事件`方式添加事件方法,属性支持Ref类型进行绑定以实现动态变化, 支持通过{'vModal:value': value}方式双向绑定数据\r\n * @param slots 组件插槽\r\n */\r\n async function toggleComponent(comp?: DynamicComponent, attrs?: Record<string, any>, slots?: ComponentSlots) {\r\n try {\r\n const renderComp = typeof comp === 'function' ? (await (comp as ImportComponentFn)()).default : comp;\r\n const renderAttrs: Record<string, unknown> = {};\r\n for (let key in attrs) {\r\n const bindValue = attrs[key];\r\n // 兼容vModel\r\n if (key.startsWith('vModel:')) {\r\n key = key.replace('vModel:', '');\r\n renderAttrs[key] = bindValue;\r\n renderAttrs[`onUpdate:${key}`] = (value: unknown) => {\r\n if ('value' in bindValue) {\r\n bindValue.value = value;\r\n }\r\n };\r\n }\r\n else {\r\n renderAttrs[key] = bindValue;\r\n }\r\n }\r\n setComponent(uniqueId, { comp: renderComp, attrs: renderAttrs, slots: slots || {} });\r\n await nextTick();\r\n return getComponent(uniqueId)?.Instance.value;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n return {\r\n getComponentRef: () => getComponent(uniqueId)?.Instance.value,\r\n toggleComponent,\r\n };\r\n};\r\n"],"names":["useComponentNeo","uniqueId","setComponent","getComponent","useComponentState","toggleComponent","comp","attrs","slots","renderComp","renderAttrs","key","bindValue","value","nextTick","_a","e"],"mappings":"6IAQgB,SAAAA,EAAgBC,EAAW,GAAI,CAC7C,KAAM,CAAE,aAAAC,EAAc,aAAAC,CAAa,EAAIC,oBAAkB,EAQ1C,eAAAC,EAAgBC,EAAyBC,EAA6BC,EAAwB,OACvG,GAAA,CACF,MAAMC,EAAa,OAAOH,GAAS,YAAc,MAAOA,EAAA,GAA8B,QAAUA,EAC1FI,EAAuC,CAAC,EAC9C,QAASC,KAAOJ,EAAO,CACf,MAAAK,EAAYL,EAAMI,CAAG,EAEvBA,EAAI,WAAW,SAAS,GACpBA,EAAAA,EAAI,QAAQ,UAAW,EAAE,EAC/BD,EAAYC,CAAG,EAAIC,EACnBF,EAAY,YAAYC,CAAG,EAAE,EAAKE,GAAmB,CAC/C,UAAWD,IACbA,EAAU,MAAQC,EAEtB,GAGAH,EAAYC,CAAG,EAAIC,CACrB,CAEW,OAAAV,EAAAD,EAAU,CAAE,KAAMQ,EAAY,MAAOC,EAAa,MAAOF,GAAS,CAAA,EAAI,EACnF,MAAMM,WAAS,GACRC,EAAAZ,EAAaF,CAAQ,IAArB,YAAAc,EAAwB,SAAS,YAEnCC,EAAG,CACR,QAAQ,MAAMA,CAAC,CAAA,CACjB,CAEK,MAAA,CACL,gBAAiB,IAAA,OAAM,OAAAD,EAAAZ,EAAaF,CAAQ,IAArB,YAAAc,EAAwB,SAAS,OACxD,gBAAAV,CACF,CACF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@vueuse/core"),c=require("vue"),u=l.createGlobalState(()=>{const r=new Map,n=new Map;function f(e=""){let t=n.get(e);t||(t={Instance:c.ref(),comp:c.shallowRef(),attrs:c.ref({})},n.set(e,t),c.onBeforeUnmount(()=>p(e)));const o=r.get(e);return o&&(t.comp.value=o.comp,t.attrs.value=o.attrs),{componentRef:t.Instance,componentNeo:t.comp,componentAttrs:t.attrs}}function s(e=""){return n.get(e)}function p(e=""){r.delete(e),n.delete(e)}function m(e="",t,o){const a=s(e);a&&(a.comp.value=t,a.attrs.value=o),r.set(e,{comp:t,attrs:o})}return{initComponent:f,setComponent:m,getComponent:s,removeComponent:p}});exports.useComponentState=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@vueuse/core"),n=require("vue"),v=i.createGlobalState(()=>{const a=new Map,s=new Map;function f(t=""){let e=s.get(t);e||(e={Instance:n.ref(),comp:n.shallowRef(),attrs:n.ref({}),slots:n.ref({})},s.set(t,e),n.onBeforeUnmount(()=>p(t)));const o=a.get(t);return o&&(e.comp.value=o.comp,e.attrs.value=o.attrs,e.slots.value=o.slots),{componentRef:e.Instance,componentNeo:e.comp,componentAttrs:e.attrs,componentSlots:e.slots}}function r(t=""){return s.get(t)}function p(t=""){a.delete(t),s.delete(t)}function u(t="",e){const{comp:o,attrs:l,slots:m}=e,c=r(t);c&&(c.comp.value=o,c.attrs.value=l,c.slots.value=m),a.set(t,{comp:o,attrs:l,slots:m})}return{initComponent:f,setComponent:u,getComponent:r,removeComponent:p}});exports.useComponentState=v;
2
2
  //# sourceMappingURL=use-component-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-component-state.js","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-state.ts"],"sourcesContent":["import type { InstanceComponent } from '../component-neo';\r\nimport { createGlobalState } from '@vueuse/core';\r\nimport { onBeforeUnmount, ref, type Ref, shallowRef, type ShallowRef, type VNode } from 'vue';\r\n\r\ninterface ComponentRefsType {\r\n /** 实例 */\r\n Instance: Ref<any>\r\n /** 组件 */\r\n comp: ShallowRef<InstanceComponent | VNode | undefined>\r\n /** 属性 */\r\n attrs: Ref<Record<string, any>>\r\n}\r\n\r\n/** 组件状态 */\r\nexport const useComponentState = createGlobalState(() => {\r\n /** 缓存组件数据,组件未实例化时,可先缓存后赋值 */\r\n const dataBufferMap = new Map<string, { comp: InstanceComponent | VNode, attrs: Record<string, any> }>();\r\n /** 实例化后的组件 */\r\n const componentRefsMap = new Map<string, ComponentRefsType>();\r\n /** 初始化组件 */\r\n function initComponent(uniqueId = '') {\r\n let componentRefs = componentRefsMap.get(uniqueId);\r\n if (!componentRefs) {\r\n componentRefs = {\r\n Instance: ref(),\r\n comp: shallowRef<InstanceComponent | VNode>(),\r\n attrs: ref<Record<string, any>>({}),\r\n };\r\n componentRefsMap.set(uniqueId, componentRefs);\r\n onBeforeUnmount(() => removeComponent(uniqueId));\r\n }\r\n // 使用缓存数据初始化数据\r\n const bufferData = dataBufferMap.get(uniqueId);\r\n if (bufferData) {\r\n componentRefs.comp.value = bufferData.comp;\r\n componentRefs.attrs.value = bufferData.attrs;\r\n }\r\n\r\n return {\r\n componentRef: componentRefs.Instance,\r\n componentNeo: componentRefs.comp,\r\n componentAttrs: componentRefs.attrs,\r\n };\r\n }\r\n\r\n /** 获取实例 */\r\n function getComponent(uniqueId = '') {\r\n return componentRefsMap.get(uniqueId);\r\n }\r\n\r\n /** 移除实例 */\r\n function removeComponent(uniqueId = '') {\r\n dataBufferMap.delete(uniqueId);\r\n componentRefsMap.delete(uniqueId);\r\n }\r\n\r\n /** 设置组件数据 */\r\n function setComponent(uniqueId = '', comp: InstanceComponent | VNode, attrs: Record<string, any>) {\r\n const componentRefs = getComponent(uniqueId);\r\n if (componentRefs) {\r\n componentRefs.comp.value = comp;\r\n componentRefs.attrs.value = attrs;\r\n }\r\n dataBufferMap.set(uniqueId, { comp, attrs });\r\n }\r\n\r\n return { initComponent, setComponent, getComponent, removeComponent };\r\n});\r\n"],"names":["useComponentState","createGlobalState","dataBufferMap","componentRefsMap","initComponent","uniqueId","componentRefs","ref","shallowRef","onBeforeUnmount","removeComponent","bufferData","getComponent","setComponent","comp","attrs"],"mappings":"iIAcaA,EAAoBC,oBAAkB,IAAM,CAEjD,MAAAC,MAAoB,IAEpBC,MAAuB,IAEpB,SAAAC,EAAcC,EAAW,GAAI,CAChC,IAAAC,EAAgBH,EAAiB,IAAIE,CAAQ,EAC5CC,IACaA,EAAA,CACd,SAAUC,EAAAA,IAAI,EACd,KAAMC,EAAAA,WAAsC,EAC5C,MAAOD,EAAyB,IAAA,CAAE,CAAA,CACpC,EACiBJ,EAAA,IAAIE,EAAUC,CAAa,EAC5BG,kBAAA,IAAMC,EAAgBL,CAAQ,CAAC,GAG3C,MAAAM,EAAaT,EAAc,IAAIG,CAAQ,EAC7C,OAAIM,IACYL,EAAA,KAAK,MAAQK,EAAW,KACxBL,EAAA,MAAM,MAAQK,EAAW,OAGlC,CACL,aAAcL,EAAc,SAC5B,aAAcA,EAAc,KAC5B,eAAgBA,EAAc,KAChC,CAAA,CAIO,SAAAM,EAAaP,EAAW,GAAI,CAC5B,OAAAF,EAAiB,IAAIE,CAAQ,CAAA,CAI7B,SAAAK,EAAgBL,EAAW,GAAI,CACtCH,EAAc,OAAOG,CAAQ,EAC7BF,EAAiB,OAAOE,CAAQ,CAAA,CAIlC,SAASQ,EAAaR,EAAW,GAAIS,EAAiCC,EAA4B,CAC1F,MAAAT,EAAgBM,EAAaP,CAAQ,EACvCC,IACFA,EAAc,KAAK,MAAQQ,EAC3BR,EAAc,MAAM,MAAQS,GAE9Bb,EAAc,IAAIG,EAAU,CAAE,KAAAS,EAAM,MAAAC,EAAO,CAAA,CAG7C,MAAO,CAAE,cAAAX,EAAe,aAAAS,EAAc,aAAAD,EAAc,gBAAAF,CAAgB,CACtE,CAAC"}
1
+ {"version":3,"file":"use-component-state.js","sources":["../../../../../../../packages/components/component-neo/src/hooks/use-component-state.ts"],"sourcesContent":["import type { Ref, ShallowRef, VNode } from 'vue';\r\nimport type { ComponentSlots, InstanceComponent } from '../component-neo';\r\nimport { createGlobalState } from '@vueuse/core';\r\nimport { onBeforeUnmount, ref, shallowRef } from 'vue';\r\n\r\ninterface ComponentRefsType {\r\n /** 引用实例 */\r\n Instance: Ref<any>\r\n /** 组件 */\r\n comp: ShallowRef<InstanceComponent | VNode | undefined>\r\n /** 属性 */\r\n attrs: Ref<Record<string, unknown>>\r\n /** 插槽 */\r\n slots: Ref<ComponentSlots>\r\n}\r\n\r\ninterface ComponentData {\r\n comp?: InstanceComponent | VNode\r\n attrs: Record<string, unknown>\r\n slots: ComponentSlots\r\n}\r\n\r\n/** 组件状态 */\r\nexport const useComponentState = createGlobalState(() => {\r\n /** 缓存组件数据,组件未实例化时,可先缓存后赋值 */\r\n const dataBufferMap = new Map<string, ComponentData>();\r\n /** 实例化后的组件 */\r\n const componentRefsMap = new Map<string, ComponentRefsType>();\r\n /** 初始化组件 */\r\n function initComponent(uniqueId = '') {\r\n let componentRefs = componentRefsMap.get(uniqueId);\r\n if (!componentRefs) {\r\n componentRefs = {\r\n Instance: ref(),\r\n comp: shallowRef<InstanceComponent | VNode>(),\r\n attrs: ref<Record<string, unknown>>({}),\r\n slots: ref<ComponentSlots>({}),\r\n };\r\n componentRefsMap.set(uniqueId, componentRefs);\r\n onBeforeUnmount(() => removeComponent(uniqueId));\r\n }\r\n // 使用缓存数据初始化数据\r\n const bufferData = dataBufferMap.get(uniqueId);\r\n if (bufferData) {\r\n componentRefs.comp.value = bufferData.comp;\r\n componentRefs.attrs.value = bufferData.attrs;\r\n componentRefs.slots.value = bufferData.slots;\r\n }\r\n\r\n return {\r\n componentRef: componentRefs.Instance,\r\n componentNeo: componentRefs.comp,\r\n componentAttrs: componentRefs.attrs,\r\n componentSlots: componentRefs.slots,\r\n };\r\n }\r\n\r\n /** 获取实例 */\r\n function getComponent(uniqueId = '') {\r\n return componentRefsMap.get(uniqueId);\r\n }\r\n\r\n /** 移除实例 */\r\n function removeComponent(uniqueId = '') {\r\n dataBufferMap.delete(uniqueId);\r\n componentRefsMap.delete(uniqueId);\r\n }\r\n\r\n /** 设置组件数据 */\r\n function setComponent(uniqueId = '', args: ComponentData) {\r\n const { comp, attrs, slots } = args;\r\n const componentRefs = getComponent(uniqueId);\r\n if (componentRefs) {\r\n componentRefs.comp.value = comp;\r\n componentRefs.attrs.value = attrs;\r\n componentRefs.slots.value = slots;\r\n }\r\n dataBufferMap.set(uniqueId, { comp, attrs, slots });\r\n }\r\n\r\n return { initComponent, setComponent, getComponent, removeComponent };\r\n});\r\n"],"names":["useComponentState","createGlobalState","dataBufferMap","componentRefsMap","initComponent","uniqueId","componentRefs","ref","shallowRef","onBeforeUnmount","removeComponent","bufferData","getComponent","setComponent","args","comp","attrs","slots"],"mappings":"iIAuBaA,EAAoBC,oBAAkB,IAAM,CAEjD,MAAAC,MAAoB,IAEpBC,MAAuB,IAEpB,SAAAC,EAAcC,EAAW,GAAI,CAChC,IAAAC,EAAgBH,EAAiB,IAAIE,CAAQ,EAC5CC,IACaA,EAAA,CACd,SAAUC,EAAAA,IAAI,EACd,KAAMC,EAAAA,WAAsC,EAC5C,MAAOD,EAA6B,IAAA,EAAE,EACtC,MAAOA,EAAoB,IAAA,CAAE,CAAA,CAC/B,EACiBJ,EAAA,IAAIE,EAAUC,CAAa,EAC5BG,kBAAA,IAAMC,EAAgBL,CAAQ,CAAC,GAG3C,MAAAM,EAAaT,EAAc,IAAIG,CAAQ,EAC7C,OAAIM,IACYL,EAAA,KAAK,MAAQK,EAAW,KACxBL,EAAA,MAAM,MAAQK,EAAW,MACzBL,EAAA,MAAM,MAAQK,EAAW,OAGlC,CACL,aAAcL,EAAc,SAC5B,aAAcA,EAAc,KAC5B,eAAgBA,EAAc,MAC9B,eAAgBA,EAAc,KAChC,CAAA,CAIO,SAAAM,EAAaP,EAAW,GAAI,CAC5B,OAAAF,EAAiB,IAAIE,CAAQ,CAAA,CAI7B,SAAAK,EAAgBL,EAAW,GAAI,CACtCH,EAAc,OAAOG,CAAQ,EAC7BF,EAAiB,OAAOE,CAAQ,CAAA,CAIzB,SAAAQ,EAAaR,EAAW,GAAIS,EAAqB,CACxD,KAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,MAAAC,CAAU,EAAAH,EACzBR,EAAgBM,EAAaP,CAAQ,EACvCC,IACFA,EAAc,KAAK,MAAQS,EAC3BT,EAAc,MAAM,MAAQU,EAC5BV,EAAc,MAAM,MAAQW,GAE9Bf,EAAc,IAAIG,EAAU,CAAE,KAAAU,EAAM,MAAAC,EAAO,MAAAC,EAAO,CAAA,CAGpD,MAAO,CAAE,cAAAb,EAAe,aAAAS,EAAc,aAAAD,EAAc,gBAAAF,CAAgB,CACtE,CAAC"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./src/expand.vue.js");e.default.install=t=>{e.default.name&&t.component(e.default.name,e.default)};const a=e.default;exports.MtExpand=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../utils/install.js"),e=require("./src/expand.vue.js"),n=t.withInstall(e.default);exports.MtExpand=n;
2
2
  //# sourceMappingURL=index.js.map
3
3
  require('./src/expand.css');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/expand/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Expand from './src/expand.vue';\r\n\r\nExpand.install = (app: App): void => {\r\n if (Expand.name) {\r\n app.component(Expand.name, Expand);\r\n }\r\n};\r\n\r\nexport const MtExpand = Expand;\r\n\r\nexport * from './src/expand';\r\n"],"names":["Expand","app","MtExpand"],"mappings":"uHAGAA,EAAAA,QAAO,QAAWC,GAAmB,CAC/BD,EAAAA,QAAO,MACLC,EAAA,UAAUD,UAAO,KAAMA,EAAAA,OAAM,CAErC,EAEO,MAAME,EAAWF,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/expand/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Expand from './src/expand.vue';\r\n\r\nexport const MtExpand = withInstall(Expand);\r\n\r\nexport * from './src/expand';\r\n"],"names":["MtExpand","withInstall","Expand"],"mappings":"wJAGaA,EAAWC,cAAYC,EAAM,OAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./src/sort.js");t.default.install=e=>{t.default.name&&e.component(t.default.name,t.default)};const o=t.default;exports.MtSort=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../utils/install.js"),e=require("./src/sort.js"),r=t.withInstall(e.default);exports.MtSort=r;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/sort/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Sort from './src/sort';\r\n\r\nSort.install = (app: App): void => {\r\n if (Sort.name) {\r\n app.component(Sort.name, Sort);\r\n }\r\n};\r\n\r\nexport const MtSort = Sort;\r\n\r\nexport * from './src/sort';\r\n"],"names":["Sort","app","MtSort"],"mappings":"iHAGAA,EAAAA,QAAK,QAAWC,GAAmB,CAC7BD,EAAAA,QAAK,MACHC,EAAA,UAAUD,UAAK,KAAMA,EAAAA,OAAI,CAEjC,EAEO,MAAME,EAASF,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/sort/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Sort from './src/sort';\r\n\r\nexport const MtSort = withInstall(Sort);\r\n\r\nexport * from './src/sort';\r\n"],"names":["MtSort","withInstall","Sort"],"mappings":"kJAGaA,EAASC,cAAYC,EAAI,OAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),d=a.defineComponent({name:"MtSort",props:{sortList:{type:Array,default:()=>[]},keyName:{type:String,default:"sort-key"}},setup(e,{slots:s}){const o=a.computed(()=>{var u;const t=((u=s.default)==null?void 0:u.call(s))||[],n=f(e.keyName,t),r=Array.from(new Set(e.sortList)).map(i=>n[i]).filter(Boolean);return l(e.keyName,t,e.sortList,r)});return()=>o.value}});function f(e,s,o={}){return s.forEach(t=>{var r;const n=(r=t.props)==null?void 0:r[e];if(n){o[n]?console.warn(`<mt-sort-space> ${e}: ${n} repeat`):o[n]=t;return}Array.isArray(t.children)&&f(e,t.children,o)}),o}function l(e,s,o,t){const n=[];return s.forEach(r=>{var i;const u=(i=r.props)==null?void 0:i[e];if(u&&o.includes(u)){const c=t.shift();if(c){n.push(c);return}}Array.isArray(r.children)&&(r={...r},r.children=l(e,r.children,o,t)),n.push(r)}),n}exports.default=d;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),d=a.defineComponent({name:"MtSort",props:{sortList:{type:Array,default:()=>[]},keyName:{type:String,default:"sort-key"}},setup(e,{slots:s}){const o=a.computed(()=>{var u;const t=((u=s.default)==null?void 0:u.call(s))||[],n=f(e.keyName,t),r=Array.from(new Set(e.sortList)).map(i=>n[i]).filter(Boolean);return l(e.keyName,t,e.sortList,r)});return()=>o.value}});function f(e,s,o={}){return s.forEach(t=>{var r;const n=(r=t.props)==null?void 0:r[e];if(n){o[n]?console.warn(`<mt-sort> ${e}: ${n} repeat`):o[n]=t;return}Array.isArray(t.children)&&f(e,t.children,o)}),o}function l(e,s,o,t){const n=[];return s.forEach(r=>{var i;const u=(i=r.props)==null?void 0:i[e];if(u&&o.includes(u)){const c=t.shift();if(c){n.push(c);return}}Array.isArray(r.children)&&(r={...r},r.children=l(e,r.children,o,t)),n.push(r)}),n}exports.default=d;
2
2
  //# sourceMappingURL=sort.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sources":["../../../../../../packages/components/sort/src/sort.ts"],"sourcesContent":["import type { PropType, VNode } from 'vue';\r\nimport { computed, defineComponent } from 'vue';\r\n\r\nexport interface SortSpaceProps {\r\n /** 排序配置 */\r\n sortList?: (string | number)[]\r\n /** 排序key名 */\r\n keyName?: string\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'MtSort',\r\n props: {\r\n /** 排序配置 */\r\n sortList: {\r\n type: Array as PropType<(string | number)[]>,\r\n default: () => [],\r\n },\r\n /** 排序key名 */\r\n keyName: {\r\n type: String,\r\n default: 'sort-key',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const renderVNodes = computed(() => {\r\n const vNodeList = slots.default?.() || [];\r\n const sortVNodeMap = getVNodeMap(props.keyName, vNodeList);\r\n const sortVNodeList = Array.from(new Set(props.sortList)).map(key => sortVNodeMap[key]).filter(Boolean);\r\n return sortDefaultVNodes(props.keyName, vNodeList, props.sortList, sortVNodeList);\r\n });\r\n\r\n return () => renderVNodes.value;\r\n },\r\n});\r\n\r\n/** 获取插槽中需要排序的节点 */\r\nfunction getVNodeMap(keyName: string, vNodeList: VNode[], vNodeMap: Record<(string | number), VNode> = {}) {\r\n vNodeList.forEach((item) => {\r\n const sortKey = item.props?.[keyName];\r\n if (sortKey) {\r\n if (vNodeMap[sortKey]) {\r\n console.warn(`<mt-sort-space> ${keyName}: ${sortKey} repeat`);\r\n }\r\n else {\r\n vNodeMap[sortKey] = item;\r\n }\r\n return;\r\n }\r\n if (Array.isArray(item.children)) {\r\n getVNodeMap(keyName, item.children as VNode[], vNodeMap);\r\n }\r\n });\r\n return vNodeMap;\r\n}\r\n\r\n/** 根据排序后的节点跟换位置 */\r\nfunction sortDefaultVNodes(keyName: string, vNodeList: VNode[], sortList: (string | number)[], sortVNodeList: VNode[]) {\r\n const newList: VNode[] = [];\r\n vNodeList.forEach((vNode) => {\r\n const sortKey = vNode.props?.[keyName];\r\n if (sortKey && sortList.includes(sortKey)) {\r\n const sortVNode = sortVNodeList.shift();\r\n if (sortVNode) {\r\n newList.push(sortVNode);\r\n return;\r\n }\r\n }\r\n if (Array.isArray(vNode.children)) {\r\n vNode = { ...vNode }; // 避免修改原节点数据\r\n vNode.children = sortDefaultVNodes(keyName, vNode.children as VNode[], sortList, sortVNodeList);\r\n }\r\n newList.push(vNode);\r\n });\r\n return newList;\r\n}\r\n"],"names":["Sort","defineComponent","props","slots","renderVNodes","computed","vNodeList","_a","sortVNodeMap","getVNodeMap","sortVNodeList","key","sortDefaultVNodes","keyName","vNodeMap","item","sortKey","sortList","newList","vNode","sortVNode"],"mappings":"mIAUAA,EAAeC,kBAAgB,CAC7B,KAAM,SACN,MAAO,CAEL,SAAU,CACR,KAAM,MACN,QAAS,IAAM,CAAA,CACjB,EAEA,QAAS,CACP,KAAM,OACN,QAAS,UAAA,CAEb,EACA,MAAMC,EAAO,CAAE,MAAAC,GAAS,CAChB,MAAAC,EAAeC,EAAAA,SAAS,IAAM,OAClC,MAAMC,IAAYC,EAAAJ,EAAM,UAAN,YAAAI,EAAA,KAAAJ,KAAqB,CAAC,EAClCK,EAAeC,EAAYP,EAAM,QAASI,CAAS,EACnDI,EAAgB,MAAM,KAAK,IAAI,IAAIR,EAAM,QAAQ,CAAC,EAAE,OAAWM,EAAaG,CAAG,CAAC,EAAE,OAAO,OAAO,EACtG,OAAOC,EAAkBV,EAAM,QAASI,EAAWJ,EAAM,SAAUQ,CAAa,CAAA,CACjF,EAED,MAAO,IAAMN,EAAa,KAAA,CAE9B,CAAC,EAGD,SAASK,EAAYI,EAAiBP,EAAoBQ,EAA6C,CAAA,EAAI,CAC/F,OAAAR,EAAA,QAASS,GAAS,OACpB,MAAAC,GAAUT,EAAAQ,EAAK,QAAL,YAAAR,EAAaM,GAC7B,GAAIG,EAAS,CACPF,EAASE,CAAO,EAClB,QAAQ,KAAK,mBAAmBH,CAAO,KAAKG,CAAO,SAAS,EAG5DF,EAASE,CAAO,EAAID,EAEtB,MAAA,CAEE,MAAM,QAAQA,EAAK,QAAQ,GACjBN,EAAAI,EAASE,EAAK,SAAqBD,CAAQ,CACzD,CACD,EACMA,CACT,CAGA,SAASF,EAAkBC,EAAiBP,EAAoBW,EAA+BP,EAAwB,CACrH,MAAMQ,EAAmB,CAAC,EAChB,OAAAZ,EAAA,QAASa,GAAU,OACrB,MAAAH,GAAUT,EAAAY,EAAM,QAAN,YAAAZ,EAAcM,GAC9B,GAAIG,GAAWC,EAAS,SAASD,CAAO,EAAG,CACnC,MAAAI,EAAYV,EAAc,MAAM,EACtC,GAAIU,EAAW,CACbF,EAAQ,KAAKE,CAAS,EACtB,MAAA,CACF,CAEE,MAAM,QAAQD,EAAM,QAAQ,IACtBA,EAAA,CAAE,GAAGA,CAAM,EACnBA,EAAM,SAAWP,EAAkBC,EAASM,EAAM,SAAqBF,EAAUP,CAAa,GAEhGQ,EAAQ,KAAKC,CAAK,CAAA,CACnB,EACMD,CACT"}
1
+ {"version":3,"file":"sort.js","sources":["../../../../../../packages/components/sort/src/sort.ts"],"sourcesContent":["import type { PropType, VNode } from 'vue';\r\nimport { computed, defineComponent } from 'vue';\r\n\r\nexport interface SortProps {\r\n /** 排序配置 */\r\n sortList?: (string | number)[]\r\n /** 排序key名 */\r\n keyName?: string\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'MtSort',\r\n props: {\r\n /** 排序配置 */\r\n sortList: {\r\n type: Array as PropType<(string | number)[]>,\r\n default: () => [],\r\n },\r\n /** 排序key名 */\r\n keyName: {\r\n type: String,\r\n default: 'sort-key',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const renderVNodes = computed(() => {\r\n const vNodeList = slots.default?.() || [];\r\n const sortVNodeMap = getVNodeMap(props.keyName, vNodeList);\r\n const sortVNodeList = Array.from(new Set(props.sortList)).map(key => sortVNodeMap[key]).filter(Boolean);\r\n return sortDefaultVNodes(props.keyName, vNodeList, props.sortList, sortVNodeList);\r\n });\r\n\r\n return () => renderVNodes.value;\r\n },\r\n});\r\n\r\n/** 获取插槽中需要排序的节点 */\r\nfunction getVNodeMap(keyName: string, vNodeList: VNode[], vNodeMap: Record<(string | number), VNode> = {}) {\r\n vNodeList.forEach((item) => {\r\n const sortKey = item.props?.[keyName];\r\n if (sortKey) {\r\n if (vNodeMap[sortKey]) {\r\n console.warn(`<mt-sort> ${keyName}: ${sortKey} repeat`);\r\n }\r\n else {\r\n vNodeMap[sortKey] = item;\r\n }\r\n return;\r\n }\r\n if (Array.isArray(item.children)) {\r\n getVNodeMap(keyName, item.children as VNode[], vNodeMap);\r\n }\r\n });\r\n return vNodeMap;\r\n}\r\n\r\n/** 根据排序后的节点跟换位置 */\r\nfunction sortDefaultVNodes(keyName: string, vNodeList: VNode[], sortList: (string | number)[], sortVNodeList: VNode[]) {\r\n const newList: VNode[] = [];\r\n vNodeList.forEach((vNode) => {\r\n const sortKey = vNode.props?.[keyName];\r\n if (sortKey && sortList.includes(sortKey)) {\r\n const sortVNode = sortVNodeList.shift();\r\n if (sortVNode) {\r\n newList.push(sortVNode);\r\n return;\r\n }\r\n }\r\n if (Array.isArray(vNode.children)) {\r\n vNode = { ...vNode }; // 避免修改原节点数据\r\n vNode.children = sortDefaultVNodes(keyName, vNode.children as VNode[], sortList, sortVNodeList);\r\n }\r\n newList.push(vNode);\r\n });\r\n return newList;\r\n}\r\n"],"names":["Sort","defineComponent","props","slots","renderVNodes","computed","vNodeList","_a","sortVNodeMap","getVNodeMap","sortVNodeList","key","sortDefaultVNodes","keyName","vNodeMap","item","sortKey","sortList","newList","vNode","sortVNode"],"mappings":"mIAUAA,EAAeC,kBAAgB,CAC7B,KAAM,SACN,MAAO,CAEL,SAAU,CACR,KAAM,MACN,QAAS,IAAM,CAAA,CACjB,EAEA,QAAS,CACP,KAAM,OACN,QAAS,UAAA,CAEb,EACA,MAAMC,EAAO,CAAE,MAAAC,GAAS,CAChB,MAAAC,EAAeC,EAAAA,SAAS,IAAM,OAClC,MAAMC,IAAYC,EAAAJ,EAAM,UAAN,YAAAI,EAAA,KAAAJ,KAAqB,CAAC,EAClCK,EAAeC,EAAYP,EAAM,QAASI,CAAS,EACnDI,EAAgB,MAAM,KAAK,IAAI,IAAIR,EAAM,QAAQ,CAAC,EAAE,OAAWM,EAAaG,CAAG,CAAC,EAAE,OAAO,OAAO,EACtG,OAAOC,EAAkBV,EAAM,QAASI,EAAWJ,EAAM,SAAUQ,CAAa,CAAA,CACjF,EAED,MAAO,IAAMN,EAAa,KAAA,CAE9B,CAAC,EAGD,SAASK,EAAYI,EAAiBP,EAAoBQ,EAA6C,CAAA,EAAI,CAC/F,OAAAR,EAAA,QAASS,GAAS,OACpB,MAAAC,GAAUT,EAAAQ,EAAK,QAAL,YAAAR,EAAaM,GAC7B,GAAIG,EAAS,CACPF,EAASE,CAAO,EAClB,QAAQ,KAAK,aAAaH,CAAO,KAAKG,CAAO,SAAS,EAGtDF,EAASE,CAAO,EAAID,EAEtB,MAAA,CAEE,MAAM,QAAQA,EAAK,QAAQ,GACjBN,EAAAI,EAASE,EAAK,SAAqBD,CAAQ,CACzD,CACD,EACMA,CACT,CAGA,SAASF,EAAkBC,EAAiBP,EAAoBW,EAA+BP,EAAwB,CACrH,MAAMQ,EAAmB,CAAC,EAChB,OAAAZ,EAAA,QAASa,GAAU,OACrB,MAAAH,GAAUT,EAAAY,EAAM,QAAN,YAAAZ,EAAcM,GAC9B,GAAIG,GAAWC,EAAS,SAASD,CAAO,EAAG,CACnC,MAAAI,EAAYV,EAAc,MAAM,EACtC,GAAIU,EAAW,CACbF,EAAQ,KAAKE,CAAS,EACtB,MAAA,CACF,CAEE,MAAM,QAAQD,EAAM,QAAQ,IACtBA,EAAA,CAAE,GAAGA,CAAM,EACnBA,EAAM,SAAWP,EAAkBC,EAASM,EAAM,SAAqBF,EAAUP,CAAa,GAEhGQ,EAAQ,KAAKC,CAAK,CAAA,CACnB,EACMD,CACT"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./src/table.vue.js");e.default.install=t=>{e.default.name&&t.component(e.default.name,e.default)};const a=e.default;exports.MtTable=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../utils/install.js"),e=require("./src/table.vue.js"),l=t.withInstall(e.default);exports.MtTable=l;
2
2
  //# sourceMappingURL=index.js.map
3
3
  require('./src/table.css');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/table/index.ts"],"sourcesContent":["import type { App } from 'vue';\r\nimport Table from './src/table.vue';\r\n\r\nTable.install = (app: App): void => {\r\n if (Table.name) {\r\n app.component(Table.name, Table);\r\n }\r\n};\r\n\r\nexport const MtTable = Table;\r\n\r\nexport * from './src/table';\r\n"],"names":["Table","app","MtTable"],"mappings":"sHAGAA,EAAAA,QAAM,QAAWC,GAAmB,CAC9BD,EAAAA,QAAM,MACJC,EAAA,UAAUD,UAAM,KAAMA,EAAAA,OAAK,CAEnC,EAEO,MAAME,EAAUF,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/table/index.ts"],"sourcesContent":["import { withInstall } from '../utils/install';\r\nimport Table from './src/table.vue';\r\n\r\nexport const MtTable = withInstall(Table);\r\n\r\nexport * from './src/table';\r\n"],"names":["MtTable","withInstall","Table"],"mappings":"uJAGaA,EAAUC,cAAYC,EAAK,OAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(t){return t.install=n=>{t.name&&n.component(t.name,t)},t}exports.withInstall=e;
2
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sources":["../../../../../packages/components/utils/install.ts"],"sourcesContent":["import type { App, Component, Plugin } from 'vue';\r\n\r\nexport function withInstall<T extends Component>(comp: T) {\r\n (comp as T & Plugin).install = (app: App): void => {\r\n if (comp.name) {\r\n app.component(comp.name, comp);\r\n }\r\n };\r\n return comp;\r\n}\r\n"],"names":["withInstall","comp","app"],"mappings":"gFAEO,SAASA,EAAiCC,EAAS,CACvD,OAAAA,EAAoB,QAAWC,GAAmB,CAC7CD,EAAK,MACHC,EAAA,UAAUD,EAAK,KAAMA,CAAI,CAEjC,EACOA,CACT"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mortise-tenon-design",
3
3
  "type": "module",
4
- "version": "0.3.0",
4
+ "version": "0.4.0-beta.2",
5
5
  "description": "榫卯组件库",
6
6
  "author": "nixwai",
7
7
  "license": "ISC",
@@ -9,6 +9,47 @@
9
9
  "type": "git",
10
10
  "url": "https://github.com/nixwai/mortise-tenon"
11
11
  },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./types/index.d.ts",
15
+ "import": "./es/index.mjs",
16
+ "require": "./lib/index.js"
17
+ },
18
+ "./global": {
19
+ "types": "./global.d.ts"
20
+ },
21
+ "./es": {
22
+ "types": "./types/index.d.ts",
23
+ "import": "./es/index.mjs"
24
+ },
25
+ "./lib": {
26
+ "types": "./types/index.d.ts",
27
+ "require": "./lib/index.js"
28
+ },
29
+ "./es/*.mjs": {
30
+ "types": "./types/*.d.ts",
31
+ "import": "./es/*.mjs"
32
+ },
33
+ "./es/*": {
34
+ "types": [
35
+ "./types/*.d.ts",
36
+ "./types/*/index.d.ts"
37
+ ],
38
+ "import": "./es/*.mjs"
39
+ },
40
+ "./lib/*.js": {
41
+ "types": "./lib/*.d.ts",
42
+ "require": "./lib/*.js"
43
+ },
44
+ "./lib/*": {
45
+ "types": [
46
+ "./types/*.d.ts",
47
+ "./types/*/index.d.ts"
48
+ ],
49
+ "require": "./lib/*.js"
50
+ },
51
+ "./*": "./*"
52
+ },
12
53
  "main": "lib/index.js",
13
54
  "module": "es/index.mjs",
14
55
  "types": "types/index.d.ts",
@@ -1,5 +1,5 @@
1
1
  export declare const MtComponentNeo: {
2
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./src/component-neo').ComponentNeoProps> & Readonly<{
2
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('.').ComponentNeoProps> & Readonly<{
3
3
  onToggleComponent?: ((name?: string | undefined, ref?: any) => any) | undefined;
4
4
  }>, {
5
5
  componentRef: import('vue').Ref<any, any>;
@@ -14,7 +14,7 @@ export declare const MtComponentNeo: {
14
14
  C: {};
15
15
  M: {};
16
16
  Defaults: {};
17
- }, Readonly<import('./src/component-neo').ComponentNeoProps> & Readonly<{
17
+ }, Readonly<import('.').ComponentNeoProps> & Readonly<{
18
18
  onToggleComponent?: ((name?: string | undefined, ref?: any) => any) | undefined;
19
19
  }>, {
20
20
  componentRef: import('vue').Ref<any, any>;
@@ -24,7 +24,7 @@ export declare const MtComponentNeo: {
24
24
  __isFragment?: never;
25
25
  __isTeleport?: never;
26
26
  __isSuspense?: never;
27
- } & import('vue').ComponentOptionsBase<Readonly<import('./src/component-neo').ComponentNeoProps> & Readonly<{
27
+ } & import('vue').ComponentOptionsBase<Readonly<import('.').ComponentNeoProps> & Readonly<{
28
28
  onToggleComponent?: ((name?: string | undefined, ref?: any) => any) | undefined;
29
29
  }>, {
30
30
  componentRef: import('vue').Ref<any, any>;
@@ -39,12 +39,12 @@ export declare const MtComponentNeo: {
39
39
  [key: string]: any;
40
40
  }>;
41
41
  compRef: (el: Element) => Element;
42
- attrs: Record<string, any> & {
42
+ attrs: Record<string, unknown> & {
43
43
  [x: string]: unknown;
44
44
  };
45
45
  compName: any;
46
46
  }): any;
47
47
  };
48
48
  });
49
- export * from './src/component-neo.vue';
49
+ export * from './src/component-neo';
50
50
  export * from './src/hooks/use-component-neo';
@@ -1,4 +1,4 @@
1
- import { Component, DefineComponent } from 'vue';
1
+ import { Component, DefineComponent, VNode } from 'vue';
2
2
  export interface ComponentNeoProps {
3
3
  /** 唯一标识 */
4
4
  uniqueId?: string;
@@ -6,3 +6,4 @@ export interface ComponentNeoProps {
6
6
  is?: string | Component;
7
7
  }
8
8
  export type InstanceComponent = DefineComponent<any, any, any, any, any, any, any, any, any, any>;
9
+ export type ComponentSlots = Record<string, (arg: any) => VNode>;
@@ -7,7 +7,7 @@ declare function __VLS_template(): {
7
7
  [key: string]: any;
8
8
  }>;
9
9
  compRef: (el: Element) => Element;
10
- attrs: Record<string, any> & {
10
+ attrs: Record<string, unknown> & {
11
11
  [x: string]: unknown;
12
12
  };
13
13
  compName: any;
@@ -1,8 +1,8 @@
1
- import { InstanceComponent } from '../component-neo';
2
1
  import { VNode } from 'vue';
2
+ import { ComponentSlots, InstanceComponent } from '../component-neo';
3
3
  export type ImportComponentFn = () => Promise<Record<string, any>>;
4
4
  export type DynamicComponent = InstanceComponent | ImportComponentFn | VNode;
5
5
  export declare function useComponentNeo(uniqueId?: string): {
6
6
  getComponentRef: () => any;
7
- toggleComponent: (comp: DynamicComponent, attrs?: Record<string, any>) => Promise<any>;
7
+ toggleComponent: (comp?: DynamicComponent, attrs?: Record<string, any>, slots?: ComponentSlots) => Promise<any>;
8
8
  };
@@ -1,21 +1,29 @@
1
- import { InstanceComponent } from '../component-neo';
2
1
  import { Ref, ShallowRef, VNode } from 'vue';
2
+ import { ComponentSlots, InstanceComponent } from '../component-neo';
3
3
  interface ComponentRefsType {
4
- /** 实例 */
4
+ /** 引用实例 */
5
5
  Instance: Ref<any>;
6
6
  /** 组件 */
7
7
  comp: ShallowRef<InstanceComponent | VNode | undefined>;
8
8
  /** 属性 */
9
- attrs: Ref<Record<string, any>>;
9
+ attrs: Ref<Record<string, unknown>>;
10
+ /** 插槽 */
11
+ slots: Ref<ComponentSlots>;
12
+ }
13
+ interface ComponentData {
14
+ comp?: InstanceComponent | VNode;
15
+ attrs: Record<string, unknown>;
16
+ slots: ComponentSlots;
10
17
  }
11
18
  /** 组件状态 */
12
19
  export declare const useComponentState: () => {
13
20
  initComponent: (uniqueId?: string) => {
14
21
  componentRef: Ref<any, any>;
15
22
  componentNeo: ShallowRef<any>;
16
- componentAttrs: Ref<Record<string, any>, Record<string, any>>;
23
+ componentAttrs: Ref<Record<string, unknown>, Record<string, unknown>>;
24
+ componentSlots: Ref<ComponentSlots, ComponentSlots>;
17
25
  };
18
- setComponent: (uniqueId: string | undefined, comp: InstanceComponent | VNode, attrs: Record<string, any>) => void;
26
+ setComponent: (uniqueId: string | undefined, args: ComponentData) => void;
19
27
  getComponent: (uniqueId?: string) => ComponentRefsType | undefined;
20
28
  removeComponent: (uniqueId?: string) => void;
21
29
  };
package/types/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ import { default as installer } from './installer';
1
2
  export * from './component-neo';
2
3
  export * from './expand';
3
4
  export * from './sort';
4
5
  export * from './table';
6
+ export default installer;
@@ -0,0 +1,9 @@
1
+ import { App } from 'vue';
2
+ declare const INSTALLED_KEY: unique symbol;
3
+ declare const _default: {
4
+ version: string;
5
+ install: (app: App & {
6
+ [INSTALLED_KEY]?: boolean;
7
+ }) => void;
8
+ };
9
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  import { PropType, VNode } from 'vue';
2
- export interface SortSpaceProps {
2
+ export interface SortProps {
3
3
  /** 排序配置 */
4
4
  sortList?: (string | number)[];
5
5
  /** 排序key名 */
@@ -0,0 +1,2 @@
1
+ import { Component } from 'vue';
2
+ export declare function withInstall<T extends Component>(comp: T): T;