giime 0.8.11 → 0.8.13

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 (56) hide show
  1. package/dist/index.css +66 -65
  2. package/es/components/src/base/tableColumn/TableColumn.vue2.mjs +5 -5
  3. package/es/components/src/base/tableColumn/TableColumn.vue2.mjs.map +1 -1
  4. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.d.ts +4 -2
  5. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs +44 -16
  6. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs.map +1 -1
  7. package/es/components/src/composite/tablePro/TablePro.vue.mjs +1 -1
  8. package/es/components/src/composite/tablePro/TablePro.vue2.mjs +2 -2
  9. package/es/components/src/composite/tablePro/TablePro.vue2.mjs.map +1 -1
  10. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.mjs +5 -5
  11. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.mjs.map +1 -1
  12. package/es/components/src/composite/tablePro/tableHelper.d.ts +8 -1
  13. package/es/components/src/composite/tablePro/tableHelper.mjs +10 -1
  14. package/es/components/src/composite/tablePro/tableHelper.mjs.map +1 -1
  15. package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +4 -90
  16. package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
  17. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +47 -41
  18. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
  19. package/es/components/src/composite/uploadFile/index.d.ts +4 -190
  20. package/es/components/src/composite/uploadFile/uploadFile.d.ts +1 -51
  21. package/es/components/src/composite/uploadFile/uploadFile.mjs +0 -50
  22. package/es/components/src/composite/uploadFile/uploadFile.mjs.map +1 -1
  23. package/es/giime/version.d.ts +1 -1
  24. package/es/giime/version.mjs +1 -1
  25. package/es/giime/version.mjs.map +1 -1
  26. package/es/hooks/base/useDownload/index.mjs +30 -6
  27. package/es/hooks/base/useDownload/index.mjs.map +1 -1
  28. package/es/index.css +66 -65
  29. package/lib/components/src/base/tableColumn/TableColumn.vue2.js +4 -4
  30. package/lib/components/src/base/tableColumn/TableColumn.vue2.js.map +1 -1
  31. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.d.ts +4 -2
  32. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js +43 -15
  33. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js.map +1 -1
  34. package/lib/components/src/composite/tablePro/TablePro.vue.js +1 -1
  35. package/lib/components/src/composite/tablePro/TablePro.vue2.js +2 -2
  36. package/lib/components/src/composite/tablePro/TablePro.vue2.js.map +1 -1
  37. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.js +4 -4
  38. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.js.map +1 -1
  39. package/lib/components/src/composite/tablePro/tableHelper.d.ts +8 -1
  40. package/lib/components/src/composite/tablePro/tableHelper.js +10 -1
  41. package/lib/components/src/composite/tablePro/tableHelper.js.map +1 -1
  42. package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +4 -90
  43. package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
  44. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +47 -41
  45. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
  46. package/lib/components/src/composite/uploadFile/index.d.ts +4 -190
  47. package/lib/components/src/composite/uploadFile/uploadFile.d.ts +1 -51
  48. package/lib/components/src/composite/uploadFile/uploadFile.js +0 -50
  49. package/lib/components/src/composite/uploadFile/uploadFile.js.map +1 -1
  50. package/lib/giime/version.d.ts +1 -1
  51. package/lib/giime/version.js +1 -1
  52. package/lib/giime/version.js.map +1 -1
  53. package/lib/hooks/base/useDownload/index.js +30 -6
  54. package/lib/hooks/base/useDownload/index.js.map +1 -1
  55. package/lib/index.css +66 -65
  56. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -883,41 +883,13 @@ video {
883
883
  .gm-group:hover .group-hover\:gm-block {
884
884
  display: block;
885
885
  }
886
-
887
- .gm-range-number .el-form-item[data-v-1ae16d96] {
888
- margin: 0;
889
- }
890
-
891
- .circular[data-v-d7b04fae] {
892
- animation: loading-rotate-d7b04fae 2s linear infinite;
893
- }
894
-
895
- .path[data-v-d7b04fae] {
896
- animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
897
- stroke-dasharray: 90, 150;
898
- stroke-dashoffset: 0;
899
- stroke: var(--el-color-primary);
900
- stroke-linecap: round;
886
+ .gm-upload-pro-preview-dialog[data-v-80b383d8] [data-v-80b383d8] .el-dialog__body {
887
+ padding: 0;
901
888
  }
902
889
 
903
- @keyframes loading-rotate-d7b04fae {
904
- to {
905
- transform: rotate(360deg);
906
- }
907
- }
908
- @keyframes loading-dash-d7b04fae {
909
- 0% {
910
- stroke-dasharray: 1, 200;
911
- stroke-dashoffset: 0;
912
- }
913
- 50% {
914
- stroke-dasharray: 90, 150;
915
- stroke-dashoffset: -40px;
916
- }
917
- 100% {
918
- stroke-dasharray: 90, 150;
919
- stroke-dashoffset: -120px;
920
- }
890
+ .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload--picture-card {
891
+ width: auto;
892
+ height: auto;
921
893
  }
922
894
  .gm-upload-pro-file {
923
895
  line-height: normal;
@@ -957,20 +929,41 @@ video {
957
929
  .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
958
930
  display: none;
959
931
  }
960
- .gm-upload-pro-preview-dialog[data-v-80b383d8] [data-v-80b383d8] .el-dialog__body {
961
- padding: 0;
932
+
933
+ .gm-range-number .el-form-item[data-v-1ae16d96] {
934
+ margin: 0;
962
935
  }
963
936
 
964
- .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload--picture-card {
965
- width: auto;
966
- height: auto;
937
+ .circular[data-v-d7b04fae] {
938
+ animation: loading-rotate-d7b04fae 2s linear infinite;
967
939
  }
968
- .gm-flex-center[data-v-c17deec9] {
969
- align-items: center;
940
+
941
+ .path[data-v-d7b04fae] {
942
+ animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
943
+ stroke-dasharray: 90, 150;
944
+ stroke-dashoffset: 0;
945
+ stroke: var(--el-color-primary);
946
+ stroke-linecap: round;
970
947
  }
971
948
 
972
- .gm-flex-justify-between[data-v-c17deec9] {
973
- justify-content: space-between;
949
+ @keyframes loading-rotate-d7b04fae {
950
+ to {
951
+ transform: rotate(360deg);
952
+ }
953
+ }
954
+ @keyframes loading-dash-d7b04fae {
955
+ 0% {
956
+ stroke-dasharray: 1, 200;
957
+ stroke-dashoffset: 0;
958
+ }
959
+ 50% {
960
+ stroke-dasharray: 90, 150;
961
+ stroke-dashoffset: -40px;
962
+ }
963
+ 100% {
964
+ stroke-dasharray: 90, 150;
965
+ stroke-dashoffset: -120px;
966
+ }
974
967
  }
975
968
  .gm-number-interval-single[data-v-4e6f4d6f] {
976
969
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
@@ -990,45 +983,29 @@ video {
990
983
  .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
991
984
  display: flex;
992
985
  }
993
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__body .el-table__cell {
994
- border-right: none;
995
- }
996
-
997
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__inner-wrapper:before {
998
- height: 0;
999
- }
1000
-
1001
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1002
- height: 0;
1003
- }
1004
-
1005
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border:after {
1006
- height: 0;
1007
- }
1008
-
1009
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border:before {
1010
- height: 0;
986
+ .gm-flex-center[data-v-c17deec9] {
987
+ align-items: center;
1011
988
  }
1012
989
 
1013
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__border-left-patch {
1014
- height: 0;
990
+ .gm-flex-justify-between[data-v-c17deec9] {
991
+ justify-content: space-between;
1015
992
  }
1016
993
  [data-v-79615afd] .gmSearchForm .el-form-item {
1017
994
  margin-right: 0;
1018
995
  margin-bottom: 4px;
1019
996
  }
1020
- .gm-upload-preview-dialog[data-v-312f9322] [data-v-312f9322] .el-dialog__body {
997
+ .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1021
998
  padding: 0;
1022
999
  }
1023
1000
 
1024
- .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload-list__item, .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload--picture-card {
1001
+ .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
1025
1002
  width: auto;
1026
1003
  height: auto;
1027
1004
  }
1028
1005
  .gm-upload-file {
1029
1006
  line-height: normal;
1030
1007
  }
1031
- .gm-upload-file .el-checkbox {
1008
+ .gm-upload-file li > .el-checkbox {
1032
1009
  position: absolute;
1033
1010
  left: 10px;
1034
1011
  top: 0;
@@ -1039,6 +1016,7 @@ video {
1039
1016
  }
1040
1017
  .gm-upload-file .el-upload-list__item {
1041
1018
  margin: 0;
1019
+ border: none;
1042
1020
  }
1043
1021
  .gm-upload-file .el-upload-list__item-file-name {
1044
1022
  line-height: normal;
@@ -1083,6 +1061,29 @@ video {
1083
1061
  [data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
1084
1062
  height: 0;
1085
1063
  }
1064
+ [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1065
+ border-right: none;
1066
+ }
1067
+
1068
+ [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
1069
+ height: 0;
1070
+ }
1071
+
1072
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1073
+ height: 0;
1074
+ }
1075
+
1076
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1077
+ height: 0;
1078
+ }
1079
+
1080
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1081
+ height: 0;
1082
+ }
1083
+
1084
+ [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1085
+ height: 0;
1086
+ }
1086
1087
 
1087
1088
  .pagination-container[data-v-47d35e7b] {
1088
1089
  background: #fff;
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, resolveComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, withCtx, unref, renderSlot, createCommentVNode, mergeProps } from 'vue';
1
+ import { defineComponent, useSlots, resolveComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, withCtx, unref, renderSlot } from 'vue';
2
2
  import { tableColumnProps } from './tableColumn.mjs';
3
3
 
4
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -21,15 +21,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  }, [
22
22
  unref(slots).default ? {
23
23
  name: "default",
24
- fn: withCtx((slotValue) => [
25
- slotValue.$index !== -1 ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, slotValue))) : createCommentVNode("v-if", true)
24
+ fn: withCtx((scope) => [
25
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))
26
26
  ]),
27
27
  key: "0"
28
28
  } : void 0,
29
29
  unref(slots).header ? {
30
30
  name: "header",
31
- fn: withCtx((slotValue) => [
32
- renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(slotValue)))
31
+ fn: withCtx((scope) => [
32
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
33
33
  ]),
34
34
  key: "1"
35
35
  } : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumn.vue2.mjs","sources":["../../../../../../../packages/components/src/base/tableColumn/TableColumn.vue"],"sourcesContent":["<template>\n <el-table-column v-bind=\"props\">\n <template v-if=\"slots.default\" #default=\"slotValue\">\n <template v-if=\"slotValue.$index !== -1\">\n <slot v-bind=\"slotValue\" />\n </template>\n </template>\n <template v-if=\"slots.header\" #header=\"slotValue\">\n <slot name=\"header\" v-bind=\"slotValue\" />\n </template>\n </el-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { useSlots } from 'vue';\nimport { tableColumnProps } from './tableColumn';\n// import type { TableColumnInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTableColumn',\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProps);\n\n// const elRef = ref<TableColumnInstance>();\n// defineExpose({\n// elRef,\n// });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAoBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableColumn.vue2.mjs","sources":["../../../../../../../packages/components/src/base/tableColumn/TableColumn.vue"],"sourcesContent":["<template>\n <el-table-column v-bind=\"props\">\n <template v-if=\"slots.default\" #default=\"scope\">\n <slot v-bind=\"scope\" />\n </template>\n\n <template v-if=\"slots.header\" #header=\"scope\">\n <slot name=\"header\" v-bind=\"scope\" />\n </template>\n </el-table-column>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useSlots } from 'vue';\nimport { tableColumnProps } from './tableColumn';\n\ndefineOptions({\n name: 'GmTableColumn',\n});\n\nconst slots = useSlots();\nconst props = defineProps(tableColumnProps);\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAoBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import type { TableColumnProProps } from './tableColumnPro/tableColumnPro';
2
- import type { PropType } from 'vue';
2
+ import type { PropType, VNode } from 'vue';
3
3
  declare const _default: import("vue").DefineComponent<{
4
4
  vnode: {
5
5
  type: (ObjectConstructor | ArrayConstructor)[];
@@ -13,7 +13,9 @@ declare const _default: import("vue").DefineComponent<{
13
13
  type: PropType<TableColumnProProps[]>;
14
14
  default: () => never[];
15
15
  };
16
- }, () => any[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
16
+ }, () => (VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
+ [key: string]: any;
18
+ }> | null)[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
19
  vnode: {
18
20
  type: (ObjectConstructor | ArrayConstructor)[];
19
21
  required: true;
@@ -1,5 +1,4 @@
1
- import { defineComponent, computed, h } from 'vue';
2
- import { getVnodesByGmName } from './tableHelper.mjs';
1
+ import { defineComponent, computed, cloneVNode, h } from 'vue';
3
2
 
4
3
  var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
5
4
  functional: true,
@@ -20,7 +19,6 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
20
19
  }
21
20
  },
22
21
  setup(props) {
23
- const vnodes = computed(() => getVnodesByGmName(Array.isArray(props.vnode) ? props.vnode : [props.vnode], "GmTableColumnPro"));
24
22
  const mergePropsList = computed(() => {
25
23
  return props.defaultPropsList.map((it) => {
26
24
  const findProp = props.propsList.find((item) => item.prop === it.prop);
@@ -30,21 +28,51 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
30
28
  return it;
31
29
  });
32
30
  });
33
- const res = computed(() => mergePropsList.value.filter((props2) => props2.isShow && props2.type !== "edit").map((props2) => {
34
- const findVnode = vnodes.value.find((it) => it.props.prop === props2.prop);
35
- if (findVnode) {
36
- findVnode.props = {
37
- ...findVnode.props,
38
- width: props2.width,
39
- label: props2.label,
40
- fixed: props2.fixed
41
- // type: props.type,
42
- };
31
+ const processVNode = (vnode) => {
32
+ if (!vnode) return null;
33
+ if (vnode.type?.name === "GmTableColumnPro") {
34
+ const propsConfig = mergePropsList.value.find((it) => it.prop === vnode.props?.prop);
35
+ if (propsConfig && (!propsConfig.isShow || propsConfig.type === "edit")) {
36
+ return null;
37
+ }
38
+ if (propsConfig) {
39
+ const newProps = {
40
+ ...vnode.props,
41
+ width: propsConfig.width,
42
+ label: propsConfig.label,
43
+ fixed: propsConfig.fixed
44
+ };
45
+ return cloneVNode(vnode, newProps);
46
+ }
47
+ return vnode;
48
+ }
49
+ if (vnode.children) {
50
+ let newChildren = vnode.children;
51
+ if (typeof vnode.children === "object" && vnode.children.default) {
52
+ const originalDefault = vnode.children.default;
53
+ newChildren = {
54
+ ...vnode.children,
55
+ default: (slotProps) => {
56
+ const childVnodes = originalDefault(slotProps);
57
+ if (Array.isArray(childVnodes)) {
58
+ return childVnodes.map(processVNode).filter(Boolean);
59
+ }
60
+ return processVNode(childVnodes);
61
+ }
62
+ };
63
+ } else if (Array.isArray(vnode.children)) {
64
+ newChildren = vnode.children.map(processVNode).filter(Boolean);
65
+ }
66
+ return cloneVNode(vnode, vnode.props, newChildren);
43
67
  }
44
- return findVnode;
45
- }));
68
+ return vnode;
69
+ };
46
70
  const render = computed(() => {
47
- return res.value.map((it) => it && h(it));
71
+ const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];
72
+ return vnodeArray.map((vnode) => {
73
+ const processed = processVNode(vnode);
74
+ return processed ? h(processed) : null;
75
+ }).filter(Boolean);
48
76
  });
49
77
  return () => render.value;
50
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// MyVNodeRenderer.js\nimport { computed, defineComponent, h } from 'vue';\nimport { getVnodesByGmName } from './tableHelper';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType } from 'vue';\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n const vnodes = computed(() => getVnodesByGmName(Array.isArray(props.vnode) ? props.vnode : [props.vnode], 'GmTableColumnPro'));\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n const res = computed(() =>\n mergePropsList.value\n .filter(props => props.isShow && props.type !== 'edit')\n .map(props => {\n const findVnode = vnodes.value.find(it => it.props.prop === props.prop);\n if (findVnode) {\n findVnode.props = {\n ...findVnode.props,\n width: props.width,\n label: props.label,\n fixed: props.fixed,\n // type: props.type,\n };\n }\n // findVnode.props.label = props.label;\n // findVnode.props.type = props.type;\n return findVnode;\n }),\n );\n const render = computed(() => {\n return res.value.map(it => it && h(it));\n });\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","vnodes","computed","getVnodesByGmName","isArray","mergePropsList","map","it","findProp","find","item","prop","res","value","filter","isShow","findVnode","width","label","fixed","render","h"],"mappings":";;;AAKA,+DAA+B;AAAA,EAC7BA,UAAAA,EAAY,IAAA;AAAA,EACZC,KAAAA,EAAO;AAAA;AAAA,IAELC,KAAAA,EAAO;AAAA,MACLC,IAAAA,EAAM,CAACC,MAAAA,EAAQC,KAAK,CAAA;AAAA,MACpBC,QAAAA,EAAU;AAAA,KACZ;AAAA;AAAA,IAEAC,SAAAA,EAAW;AAAA,MACTJ,IAAAA,EAAME,KAAAA;AAAAA,MACNG,OAAAA,EAASA,MAAM;AAAA,KACjB;AAAA,IACAC,gBAAAA,EAAkB;AAAA,MAChBN,IAAAA,EAAME,KAAAA;AAAAA,MACNG,OAAAA,EAASA,MAAM;AAAA;AACjB,GACF;AAAA,EACAE,MAAMT,KAAAA,EAAO;AACX,IAAA,MAAMU,SAASC,QAAAA,CAAS,MAAMC,iBAAAA,CAAkBR,KAAAA,CAAMS,QAAQb,KAAAA,CAAMC,KAAK,CAAA,GAAID,KAAAA,CAAMC,QAAQ,CAACD,KAAAA,CAAMC,KAAK,CAAA,EAAG,kBAAkB,CAAC,CAAA;AAE7H,IAAA,MAAMa,cAAAA,GAAiBH,SAAS,MAAM;AACpC,MAAA,OAAOX,KAAAA,CAAMQ,gBAAAA,CAAiBO,GAAAA,CAAIC,CAAAA,EAAAA,KAAM;AACtC,QAAA,MAAMC,QAAAA,GAAWjB,MAAMM,SAAAA,CAAUY,IAAAA,CAAKC,UAAQA,IAAAA,CAAKC,IAAAA,KAASJ,GAAGI,IAAI,CAAA;AACnE,QAAA,IAAIH,QAAAA,EAAU;AACZ,UAAA,OAAOA,QAAAA;AAAAA,QACT;AACA,QAAA,OAAOD,EAAAA;AAAAA,MACT,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,MAAMK,MAAMV,QAAAA,CAAS,MACnBG,cAAAA,CAAeQ,KAAAA,CACZC,OAAOvB,CAAAA,MAAAA,KAASA,MAAAA,CAAMwB,MAAAA,IAAUxB,OAAME,IAAAA,KAAS,MAAM,CAAA,CACrDa,GAAAA,CAAIf,CAAAA,MAAAA,KAAS;AACZ,MAAA,MAAMyB,SAAAA,GAAYf,OAAOY,KAAAA,CAAMJ,IAAAA,CAAKF,QAAMA,EAAAA,CAAGhB,KAAAA,CAAMoB,IAAAA,KAASpB,MAAAA,CAAMoB,IAAI,CAAA;AACtE,MAAA,IAAIK,SAAAA,EAAW;AACbA,QAAAA,SAAAA,CAAUzB,KAAAA,GAAQ;AAAA,UAChB,GAAGyB,SAAAA,CAAUzB,KAAAA;AAAAA,UACb0B,OAAO1B,MAAAA,CAAM0B,KAAAA;AAAAA,UACbC,OAAO3B,MAAAA,CAAM2B,KAAAA;AAAAA,UACbC,OAAO5B,MAAAA,CAAM4B;AAAAA;AAAAA,SAEf;AAAA,MACF;AAGA,MAAA,OAAOH,SAAAA;AAAAA,IACT,CAAC,CACL,CAAA;AACA,IAAA,MAAMI,MAAAA,GAASlB,SAAS,MAAM;AAC5B,MAAA,OAAOU,IAAIC,KAAAA,CAAMP,GAAAA,CAAIC,QAAMA,EAAAA,IAAMc,CAAAA,CAAEd,EAAE,CAAC,CAAA;AAAA,IACxC,CAAC,CAAA;AACD,IAAA,OAAO,MAAMa,MAAAA,CAAOP,KAAAA;AAAAA,EACtB;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (propsConfig && (!propsConfig.isShow || propsConfig.type === 'edit')) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n return vnodeArray\n .map(vnode => {\n const processed = processVNode(vnode);\n return processed ? h(processed) : null;\n })\n .filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","processed","h"],"mappings":"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"}
@@ -2,7 +2,7 @@ import _sfc_main from './TablePro.vue2.mjs';
2
2
  import './TablePro.vue3.mjs';
3
3
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
4
4
 
5
- var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4bbcbf2d"]]);
5
+ var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-050a4f74"]]);
6
6
 
7
7
  export { TablePro as default };
8
8
  //# sourceMappingURL=TablePro.vue.mjs.map
@@ -11,7 +11,7 @@ import { tableProEmits, tableProProps } from './tablePro.mjs';
11
11
  import { getVnodesByGmName } from './tableHelper.mjs';
12
12
  import { TableColumnProName, tableColumnProProps } from './tableColumnPro/tableColumnPro.mjs';
13
13
 
14
- const _withScopeId = (n) => (pushScopeId("data-v-4bbcbf2d"), n = n(), popScopeId(), n);
14
+ const _withScopeId = (n) => (pushScopeId("data-v-050a4f74"), n = n(), popScopeId(), n);
15
15
  const _hoisted_1 = { class: "gm-text-center" };
16
16
  const _hoisted_2 = {
17
17
  key: 0,
@@ -52,7 +52,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  });
53
53
  const colDefaultPropsList = computed(() => {
54
54
  const vNodes = slots.default?.() || [];
55
- const children = getVnodesByGmName(vNodes, TableColumnProName);
55
+ const children = getVnodesByGmName(vNodes, TableColumnProName, true);
56
56
  const colProps = children.map((vNode) => vNode.props) ?? [];
57
57
  colProps.forEach((it) => {
58
58
  for (const key in tableColumnProProps) {
@@ -1 +1 @@
1
- {"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableDivRef\">\n <gm-table\n v-if=\"gmTableHeaderRef?.isInited\"\n ref=\"GmTbaleRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n border\n class=\"gmTablePro\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <!-- <template #empty>\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\n </template> -->\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <!-- <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n >\n <TableProEditSlot\n v-model:customBtnPropsList=\"customBtnPropsList\"\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\n :tableOperateVnode=\"tableOperateVnode\"\n :isInited=\"gmCustomOperationsRef?.isInited\"\n :slotValue=\"slotValue\"\n />\n </div> -->\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-header-form\n ref=\"gmTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n type=\"HeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-operate-button-form\n ref=\"gmCustomOperationsRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"OperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\nimport { operateButtonProps } from '../operateButton/operateButton';\n// import TableProEditSlot from './TableProEditSlot.vue';\n// import { cloneDeep } from 'lodash-es';\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableProEmits, tableProProps } from './tablePro';\nimport { getVnodesByGmName } from './tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { TableProSortValue } from './tablePro';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\nimport type { OperateButtonProps } from '../operateButton/operateButton';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTablePro',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableProProps);\n\nconst gmTableDivRef = ref<HTMLDivElement>();\n// 用于计算table高度\nconst { top: divTop } = useElementBounding(gmTableDivRef);\nconst { height: windowHeight } = useWindowSize();\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\nconst GmTbaleRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleRef;\n}\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableProEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableProEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n return vNodes;\n});\n// 默认表头Props列表\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName);\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in operateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(operateButtonProps, key)) {\n const element = operateButtonProps[key as keyof OperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n // console.log(btnProps)\n return btnProps;\n});\n// customDefaultPropsList2();\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmTableHeaderRef.value?.syncPropsList();\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n if (props.disabledResetWidth) {\n return;\n }\n // 当全部列都设置了宽度 才执行后续步骤\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\n return;\n }\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableDivRef\">\n <gm-table\n v-if=\"gmTableHeaderRef?.isInited\"\n ref=\"GmTbaleRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n border\n class=\"gmTablePro\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <!-- <template #empty>\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\n </template> -->\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <!-- <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n >\n <TableProEditSlot\n v-model:customBtnPropsList=\"customBtnPropsList\"\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\n :tableOperateVnode=\"tableOperateVnode\"\n :isInited=\"gmCustomOperationsRef?.isInited\"\n :slotValue=\"slotValue\"\n />\n </div> -->\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-header-form\n ref=\"gmTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n type=\"HeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-operate-button-form\n ref=\"gmCustomOperationsRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"OperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\nimport { operateButtonProps } from '../operateButton/operateButton';\n// import TableProEditSlot from './TableProEditSlot.vue';\n// import { cloneDeep } from 'lodash-es';\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableProEmits, tableProProps } from './tablePro';\nimport { getVnodesByGmName } from './tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { TableProSortValue } from './tablePro';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\nimport type { OperateButtonProps } from '../operateButton/operateButton';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTablePro',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableProProps);\n\nconst gmTableDivRef = ref<HTMLDivElement>();\n// 用于计算table高度\nconst { top: divTop } = useElementBounding(gmTableDivRef);\nconst { height: windowHeight } = useWindowSize();\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\nconst GmTbaleRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleRef;\n}\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableProEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableProEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n return vNodes;\n});\n// 默认表头Props列表(递归提取所有 GmTableColumnPro,包括嵌套的)\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName, true); // 启用递归提取\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in operateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(operateButtonProps, key)) {\n const element = operateButtonProps[key as keyof OperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n // console.log(btnProps)\n return btnProps;\n});\n// customDefaultPropsList2();\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmTableHeaderRef.value?.syncPropsList();\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n if (props.disabledResetWidth) {\n return;\n }\n // 当全部列都设置了宽度 才执行后续步骤\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\n return;\n }\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, computed, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, unref, renderSlot, createCommentVNode, normalizeProps, guardReactiveProps } from 'vue';
1
+ import { defineComponent, useSlots, computed, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, unref, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import { tableColumnProProps, TableColumnProName } from './tableColumnPro.mjs';
3
3
 
4
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -19,15 +19,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
19
19
  }, [
20
20
  unref(slots).default ? {
21
21
  name: "default",
22
- fn: withCtx((slotValue) => [
23
- slotValue.$index !== -1 ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, slotValue))) : createCommentVNode("v-if", true)
22
+ fn: withCtx((scope) => [
23
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))
24
24
  ]),
25
25
  key: "0"
26
26
  } : void 0,
27
27
  unref(slots).header ? {
28
28
  name: "header",
29
- fn: withCtx((slotValue) => [
30
- renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(slotValue)))
29
+ fn: withCtx((scope) => [
30
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
31
31
  ]),
32
32
  key: "1"
33
33
  } : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnPro.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue"],"sourcesContent":["<template>\n <gm-table-column v-bind=\"props\" :sortable=\"proSortable\">\n <template v-if=\"slots.default\" #default=\"slotValue\">\n <template v-if=\"slotValue.$index !== -1\">\n <slot v-bind=\"slotValue\" />\n </template>\n </template>\n <template v-if=\"slots.header\" #header=\"slotValue\">\n <slot name=\"header\" v-bind=\"slotValue\" />\n </template>\n </gm-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue';\nimport { TableColumnProName, tableColumnProProps } from './tableColumnPro';\n\ndefineOptions({\n name: TableColumnProName,\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProProps);\nconst proSortable = computed(() => (props.isSort ? 'custom' : props.sortable));\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAmBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,cAAc,QAAA,CAAS,MAAO,MAAM,MAAA,GAAS,QAAA,GAAW,MAAM,QAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableColumnPro.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue"],"sourcesContent":["<template>\n <gm-table-column v-bind=\"props\" :sortable=\"proSortable\">\n <!-- 完全透传,与 gm-table-column 保持一致 -->\n <template v-if=\"slots.default\" #default=\"scope\">\n <slot v-bind=\"scope\" />\n </template>\n\n <template v-if=\"slots.header\" #header=\"scope\">\n <slot name=\"header\" v-bind=\"scope\" />\n </template>\n </gm-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue';\nimport { TableColumnProName, tableColumnProProps } from './tableColumnPro';\n\ndefineOptions({\n name: TableColumnProName,\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProProps);\nconst proSortable = computed(() => (props.isSort ? 'custom' : props.sortable));\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAmBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,cAAc,QAAA,CAAS,MAAO,MAAM,MAAA,GAAS,QAAA,GAAW,MAAM,QAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1,8 @@
1
- export declare const getVnodesByGmName: (defaultVnodes: any[], name: string) => any[];
1
+ /**
2
+ * 从 vnode 数组中提取指定名称的组件
3
+ * @param defaultVnodes vnode 数组
4
+ * @param name 目标组件名称
5
+ * @param recursive 是否递归提取嵌套组件(用于支持多级表头)
6
+ * @returns 提取的 vnode 数组
7
+ */
8
+ export declare const getVnodesByGmName: (defaultVnodes: any[], name: string, recursive?: boolean) => any[];
@@ -1,7 +1,7 @@
1
1
  import { Fragment } from 'vue';
2
2
  import { isString } from '../../../../utils/src/is.mjs';
3
3
 
4
- const getVnodesByGmName = (defaultVnodes, name) => {
4
+ const getVnodesByGmName = (defaultVnodes, name, recursive = false) => {
5
5
  const children = [];
6
6
  if (Array.isArray(defaultVnodes)) {
7
7
  for (const childNode of defaultVnodes) {
@@ -13,6 +13,15 @@ const getVnodesByGmName = (defaultVnodes, name) => {
13
13
  children.push(vnode);
14
14
  }
15
15
  });
16
+ } else if (recursive && childNode.children) {
17
+ if (typeof childNode.children === "object" && childNode.children.default) {
18
+ const nestedVnodes = childNode.children.default();
19
+ const nestedChildren = getVnodesByGmName(Array.isArray(nestedVnodes) ? nestedVnodes : [nestedVnodes], name, true);
20
+ children.push(...nestedChildren);
21
+ } else if (Array.isArray(childNode.children)) {
22
+ const nestedChildren = getVnodesByGmName(childNode.children, name, true);
23
+ children.push(...nestedChildren);
24
+ }
16
25
  }
17
26
  }
18
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tableHelper.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/tableHelper.ts"],"sourcesContent":["import { Fragment } from 'vue';\nimport { isString } from '@giime/utils/src/is';\nexport const getVnodesByGmName = (defaultVnodes: any[], name: string) => {\n const children = [];\n if (Array.isArray(defaultVnodes)) {\n for (const childNode of defaultVnodes) {\n if (childNode.type?.name === name || childNode.shapeFlag & 2) {\n children.push(childNode);\n } else if (childNode.type === Fragment && Array.isArray(childNode.children)) {\n childNode.children.forEach((vnode: any) => {\n // No rendering when vnode is dynamic slot or text\n if (vnode?.patchFlag !== 1024 && !isString(vnode?.children)) {\n children.push(vnode);\n }\n });\n }\n }\n }\n return children;\n};\n"],"names":[],"mappings":";;;AAEO,MAAM,iBAAA,GAAoB,CAAC,aAAA,EAAsB,IAAA,KAAiB;AACvE,EAAA,MAAM,WAAW,EAAC;AAClB,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,EAAG;AAChC,IAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,MAAA,IAAI,UAAU,IAAA,EAAM,IAAA,KAAS,IAAA,IAAQ,SAAA,CAAU,YAAY,CAAA,EAAG;AAC5D,QAAA,QAAA,CAAS,KAAK,SAAS,CAAA;AAAA,MACzB,CAAA,MAAA,IAAW,UAAU,IAAA,KAAS,QAAA,IAAY,MAAM,OAAA,CAAQ,SAAA,CAAU,QAAQ,CAAA,EAAG;AAC3E,QAAA,SAAA,CAAU,QAAA,CAAS,OAAA,CAAQ,CAAC,KAAA,KAAe;AAEzC,UAAA,IAAI,OAAO,SAAA,KAAc,IAAA,IAAQ,CAAC,QAAA,CAAS,KAAA,EAAO,QAAQ,CAAA,EAAG;AAC3D,YAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AAAA,UACrB;AAAA,QACF,CAAC,CAAA;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;;;;"}
1
+ {"version":3,"file":"tableHelper.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/tableHelper.ts"],"sourcesContent":["import { Fragment } from 'vue';\nimport { isString } from '@giime/utils/src/is';\n\n/**\n * 从 vnode 数组中提取指定名称的组件\n * @param defaultVnodes vnode 数组\n * @param name 目标组件名称\n * @param recursive 是否递归提取嵌套组件(用于支持多级表头)\n * @returns 提取的 vnode 数组\n */\nexport const getVnodesByGmName = (defaultVnodes: any[], name: string, recursive = false): any[] => {\n const children: any[] = [];\n if (Array.isArray(defaultVnodes)) {\n for (const childNode of defaultVnodes) {\n // 匹配目标组件\n if (childNode.type?.name === name || childNode.shapeFlag & 2) {\n children.push(childNode);\n }\n // 处理 Fragment\n else if (childNode.type === Fragment && Array.isArray(childNode.children)) {\n childNode.children.forEach((vnode: any) => {\n // No rendering when vnode is dynamic slot or text\n if (vnode?.patchFlag !== 1024 && !isString(vnode?.children)) {\n children.push(vnode);\n }\n });\n }\n // 递归提取嵌套在其他组件中的目标组件(用于多级表头)\n else if (recursive && childNode.children) {\n // 如果有 default slot,递归提取\n if (typeof childNode.children === 'object' && childNode.children.default) {\n const nestedVnodes = childNode.children.default();\n const nestedChildren: any[] = getVnodesByGmName(Array.isArray(nestedVnodes) ? nestedVnodes : [nestedVnodes], name, true);\n children.push(...nestedChildren);\n }\n // 如果 children 是数组,递归提取\n else if (Array.isArray(childNode.children)) {\n const nestedChildren: any[] = getVnodesByGmName(childNode.children, name, true);\n children.push(...nestedChildren);\n }\n }\n }\n }\n return children;\n};\n"],"names":[],"mappings":";;;AAUO,MAAM,iBAAA,GAAoB,CAAC,aAAA,EAAsB,IAAA,EAAc,YAAY,KAAA,KAAiB;AACjG,EAAA,MAAM,WAAkB,EAAC;AACzB,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,EAAG;AAChC,IAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AAErC,MAAA,IAAI,UAAU,IAAA,EAAM,IAAA,KAAS,IAAA,IAAQ,SAAA,CAAU,YAAY,CAAA,EAAG;AAC5D,QAAA,QAAA,CAAS,KAAK,SAAS,CAAA;AAAA,MACzB,CAAA,MAAA,IAES,UAAU,IAAA,KAAS,QAAA,IAAY,MAAM,OAAA,CAAQ,SAAA,CAAU,QAAQ,CAAA,EAAG;AACzE,QAAA,SAAA,CAAU,QAAA,CAAS,OAAA,CAAQ,CAAC,KAAA,KAAe;AAEzC,UAAA,IAAI,OAAO,SAAA,KAAc,IAAA,IAAQ,CAAC,QAAA,CAAS,KAAA,EAAO,QAAQ,CAAA,EAAG;AAC3D,YAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AAAA,UACrB;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA,MAAA,IAES,SAAA,IAAa,SAAA,CAAU,QAAA,EAAU;AAExC,QAAA,IAAI,OAAO,SAAA,CAAU,QAAA,KAAa,QAAA,IAAY,SAAA,CAAU,SAAS,OAAA,EAAS;AACxE,UAAA,MAAM,YAAA,GAAe,SAAA,CAAU,QAAA,CAAS,OAAA,EAAQ;AAChD,UAAA,MAAM,cAAA,GAAwB,iBAAA,CAAkB,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,GAAI,YAAA,GAAe,CAAC,YAAY,CAAA,EAAG,IAAA,EAAM,IAAI,CAAA;AACvH,UAAA,QAAA,CAAS,IAAA,CAAK,GAAG,cAAc,CAAA;AAAA,QACjC,CAAA,MAAA,IAES,KAAA,CAAM,OAAA,CAAQ,SAAA,CAAU,QAAQ,CAAA,EAAG;AAC1C,UAAA,MAAM,cAAA,GAAwB,iBAAA,CAAkB,SAAA,CAAU,QAAA,EAAU,MAAM,IAAI,CAAA;AAC9E,UAAA,QAAA,CAAS,IAAA,CAAK,GAAG,cAAc,CAAA;AAAA,QACjC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;;;;"}