@touchvue/ui 1.0.0-beta.54 → 1.0.0-beta.56

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 (111) hide show
  1. package/es/components/input/src/input.vue.d.ts +2 -2
  2. package/es/components/pic/index.d.ts +9 -0
  3. package/es/components/pic/src/Pic.vue.d.ts +9 -0
  4. package/es/components/pic/src/pic.d.ts +7 -0
  5. package/es/components/rate/src/rate.vue.d.ts +46 -10
  6. package/es/components/scroll/index.d.ts +15 -0
  7. package/es/components/scroll/src/Scroll.vue.d.ts +9 -0
  8. package/es/components/scroll/src/scroll.d.ts +7 -0
  9. package/es/components/select/src/select.d.ts +18 -0
  10. package/es/components/select/src/select.vue.d.ts +18 -0
  11. package/es/components/table/src/table-head.vue.d.ts +2 -0
  12. package/es/components/tip/src/tip.vue.d.ts +2 -2
  13. package/es/components/upload/src/upload.vue.d.ts +6 -4
  14. package/es/index.d.mjs.map +1 -1
  15. package/es/index.mjs +2 -1
  16. package/es/index.mjs.map +1 -1
  17. package/es/packages/components/calendar/src/calendar.vue2.mjs +22 -0
  18. package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
  19. package/es/packages/components/cascader/src/cascader-item.vue2.mjs +1 -0
  20. package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
  21. package/es/packages/components/cascader/src/cascader.vue2.mjs +1 -0
  22. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  23. package/es/packages/components/float/src/Float.vue2.mjs +4 -4
  24. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  25. package/es/packages/components/pic/src/Pic.vue2.mjs +18 -2
  26. package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
  27. package/es/packages/components/pic/src/pic.mjs +7 -0
  28. package/es/packages/components/pic/src/pic.mjs.map +1 -1
  29. package/es/packages/components/rate/src/rate.vue2.mjs +153 -85
  30. package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
  31. package/es/packages/components/scroll/src/Scroll.vue2.mjs +3 -0
  32. package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
  33. package/es/packages/components/scroll/src/scroll.mjs +7 -0
  34. package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
  35. package/es/packages/components/segment/src/segment.vue.mjs +10 -12
  36. package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
  37. package/es/packages/components/select/src/select.mjs +18 -0
  38. package/es/packages/components/select/src/select.mjs.map +1 -1
  39. package/es/packages/components/select/src/select.vue2.mjs +263 -87
  40. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  41. package/es/packages/components/table/src/table-head.vue2.mjs +101 -45
  42. package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
  43. package/es/packages/components/table/src/table.vue2.mjs +244 -62
  44. package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
  45. package/es/packages/components/tree/src/tree-item.vue2.mjs +2 -1
  46. package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
  47. package/es/packages/components/upload/src/upload.vue2.mjs +203 -153
  48. package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
  49. package/es/packages/directives/tip/src/tip.mjs +42 -27
  50. package/es/packages/directives/tip/src/tip.mjs.map +1 -1
  51. package/es/packages/locale/format.mjs +1 -1
  52. package/es/packages/locale/format.mjs.map +1 -1
  53. package/es/ui/index.d.ts +6 -0
  54. package/lib/components/input/src/input.vue.d.ts +2 -2
  55. package/lib/components/pic/index.d.ts +9 -0
  56. package/lib/components/pic/src/Pic.vue.d.ts +9 -0
  57. package/lib/components/pic/src/pic.d.ts +7 -0
  58. package/lib/components/rate/src/rate.vue.d.ts +46 -10
  59. package/lib/components/scroll/index.d.ts +15 -0
  60. package/lib/components/scroll/src/Scroll.vue.d.ts +9 -0
  61. package/lib/components/scroll/src/scroll.d.ts +7 -0
  62. package/lib/components/select/src/select.d.ts +18 -0
  63. package/lib/components/select/src/select.vue.d.ts +18 -0
  64. package/lib/components/table/src/table-head.vue.d.ts +2 -0
  65. package/lib/components/tip/src/tip.vue.d.ts +2 -2
  66. package/lib/components/upload/src/upload.vue.d.ts +6 -4
  67. package/lib/index.d.js.map +1 -1
  68. package/lib/index.js +2 -1
  69. package/lib/index.js.map +1 -1
  70. package/lib/packages/components/calendar/src/calendar.vue2.js +22 -0
  71. package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
  72. package/lib/packages/components/cascader/src/cascader-item.vue2.js +1 -0
  73. package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
  74. package/lib/packages/components/cascader/src/cascader.vue2.js +1 -0
  75. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  76. package/lib/packages/components/float/src/Float.vue2.js +4 -4
  77. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  78. package/lib/packages/components/pic/src/Pic.vue2.js +17 -1
  79. package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
  80. package/lib/packages/components/pic/src/pic.js +7 -0
  81. package/lib/packages/components/pic/src/pic.js.map +1 -1
  82. package/lib/packages/components/rate/src/rate.vue2.js +152 -84
  83. package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
  84. package/lib/packages/components/scroll/src/Scroll.vue2.js +3 -0
  85. package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
  86. package/lib/packages/components/scroll/src/scroll.js +7 -0
  87. package/lib/packages/components/scroll/src/scroll.js.map +1 -1
  88. package/lib/packages/components/segment/src/segment.vue.js +10 -12
  89. package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
  90. package/lib/packages/components/select/src/select.js +18 -0
  91. package/lib/packages/components/select/src/select.js.map +1 -1
  92. package/lib/packages/components/select/src/select.vue2.js +262 -86
  93. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  94. package/lib/packages/components/table/src/table-head.vue2.js +100 -44
  95. package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
  96. package/lib/packages/components/table/src/table.vue2.js +243 -61
  97. package/lib/packages/components/table/src/table.vue2.js.map +1 -1
  98. package/lib/packages/components/tree/src/tree-item.vue2.js +2 -1
  99. package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
  100. package/lib/packages/components/upload/src/upload.vue2.js +202 -152
  101. package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
  102. package/lib/packages/directives/tip/src/tip.js +41 -26
  103. package/lib/packages/directives/tip/src/tip.js.map +1 -1
  104. package/lib/packages/locale/format.js +1 -1
  105. package/lib/packages/locale/format.js.map +1 -1
  106. package/lib/ui/index.d.ts +6 -0
  107. package/package.json +1 -1
  108. package/theme/base.css +0 -3
  109. package/theme/components/index.css +445 -255
  110. package/theme/index.css +445 -255
  111. package/theme/skin/default.css +445 -255
@@ -38,6 +38,48 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
38
  }
39
39
  });
40
40
  });
41
+ function getMaxDepth(columns) {
42
+ let max = 0;
43
+ function traverse(cols, depth) {
44
+ max = Math.max(max, depth);
45
+ for (const col of cols) {
46
+ if (col.children && col.children.length > 0) {
47
+ traverse(col.children, depth + 1);
48
+ }
49
+ }
50
+ }
51
+ traverse(columns, 1);
52
+ return max;
53
+ }
54
+ function countLeaves(col) {
55
+ if (!col.children || col.children.length === 0)
56
+ return 1;
57
+ return col.children.reduce((sum, child) => sum + countLeaves(child), 0);
58
+ }
59
+ function buildHeaderRows(columns, maxDepth) {
60
+ const rows = Array.from({ length: maxDepth }, () => []);
61
+ function traverse(cols, depth) {
62
+ for (const col of cols) {
63
+ if (col.children && col.children.length > 0) {
64
+ const leafCount = countLeaves(col);
65
+ rows[depth].push({ ...col, colspan: leafCount, rowspan: 1 });
66
+ traverse(col.children, depth + 1);
67
+ } else {
68
+ const rowspan = maxDepth - depth;
69
+ rows[depth].push({ ...col, colspan: 1, rowspan });
70
+ }
71
+ }
72
+ }
73
+ traverse(columns, 0);
74
+ return rows;
75
+ }
76
+ const headerRows = vue.computed(() => {
77
+ const maxDepth = getMaxDepth(props.data);
78
+ if (maxDepth <= 1) {
79
+ return [props.data.map((col) => ({ ...col, colspan: 1, rowspan: 1 }))];
80
+ }
81
+ return buildHeaderRows(props.data, maxDepth);
82
+ });
41
83
  const sortClick = (column) => {
42
84
  if (!column.sortable)
43
85
  return false;
@@ -80,52 +122,66 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
80
122
  class: "to-table-head"
81
123
  },
82
124
  [
83
- vue.createElementVNode("tr", { class: "to-table-head-row" }, [
84
- (vue.openBlock(true), vue.createElementBlock(
85
- vue.Fragment,
86
- null,
87
- vue.renderList(props.data, (column) => {
88
- return vue.openBlock(), vue.createElementBlock(
125
+ (vue.openBlock(true), vue.createElementBlock(
126
+ vue.Fragment,
127
+ null,
128
+ vue.renderList(headerRows.value, (row2, rowIndex) => {
129
+ return vue.openBlock(), vue.createElementBlock("tr", {
130
+ key: rowIndex,
131
+ class: "to-table-head-row"
132
+ }, [
133
+ (vue.openBlock(true), vue.createElementBlock(
89
134
  vue.Fragment,
90
135
  null,
91
- [
92
- column.type === "check" ? (vue.openBlock(), vue.createElementBlock("th", {
93
- key: column.prop + "check",
94
- class: "to-table-th is-check"
95
- }, [
96
- vue.createVNode(_component_ToCheckbox, {
97
- "model-value": _ctx.checkedAll,
98
- onChange: change
99
- }, null, 8, ["model-value"])
100
- ])) : column._show !== false ? (vue.openBlock(), vue.createElementBlock("th", {
101
- key: column.prop,
102
- class: vue.normalizeClass(["to-table-th", setThClass(column).value]),
103
- onClick: ($event) => sortClick(column)
104
- }, [
105
- vue.createElementVNode(
106
- "span",
107
- null,
108
- vue.toDisplayString(column.label),
109
- 1
110
- /* TEXT */
111
- ),
112
- column.sortable ? (vue.openBlock(), vue.createElementBlock("span", {
113
- key: 0,
114
- class: "to-table-sorticon"
115
- }, [
116
- vue.createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
117
- vue.createElementVNode("span", { class: "to-table-sorticon-item descending" })
118
- ])) : vue.createCommentVNode("v-if", true)
119
- ], 10, ["onClick"])) : vue.createCommentVNode("v-if", true)
120
- ],
121
- 64
122
- /* STABLE_FRAGMENT */
123
- );
124
- }),
125
- 256
126
- /* UNKEYED_FRAGMENT */
127
- ))
128
- ])
136
+ vue.renderList(row2, (cell, cellIndex) => {
137
+ return vue.openBlock(), vue.createElementBlock(
138
+ vue.Fragment,
139
+ { key: cellIndex },
140
+ [
141
+ cell.type === "check" ? (vue.openBlock(), vue.createElementBlock("th", {
142
+ key: 0,
143
+ class: "to-table-th is-check",
144
+ rowspan: cell.rowspan
145
+ }, [
146
+ vue.createVNode(_component_ToCheckbox, {
147
+ "model-value": _ctx.checkedAll,
148
+ onChange: change
149
+ }, null, 8, ["model-value"])
150
+ ], 8, ["rowspan"])) : cell._show !== false ? (vue.openBlock(), vue.createElementBlock("th", {
151
+ key: 1,
152
+ class: vue.normalizeClass(["to-table-th", setThClass(cell).value]),
153
+ colspan: cell.colspan,
154
+ rowspan: cell.rowspan,
155
+ onClick: ($event) => sortClick(cell)
156
+ }, [
157
+ vue.createElementVNode(
158
+ "span",
159
+ null,
160
+ vue.toDisplayString(cell.label),
161
+ 1
162
+ /* TEXT */
163
+ ),
164
+ cell.sortable ? (vue.openBlock(), vue.createElementBlock("span", {
165
+ key: 0,
166
+ class: "to-table-sorticon"
167
+ }, [
168
+ vue.createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
169
+ vue.createElementVNode("span", { class: "to-table-sorticon-item descending" })
170
+ ])) : vue.createCommentVNode("v-if", true)
171
+ ], 10, ["colspan", "rowspan", "onClick"])) : vue.createCommentVNode("v-if", true)
172
+ ],
173
+ 64
174
+ /* STABLE_FRAGMENT */
175
+ );
176
+ }),
177
+ 128
178
+ /* KEYED_FRAGMENT */
179
+ ))
180
+ ]);
181
+ }),
182
+ 128
183
+ /* KEYED_FRAGMENT */
184
+ ))
129
185
  ],
130
186
  512
131
187
  /* NEED_PATCH */
@@ -1 +1 @@
1
- {"version":3,"file":"table-head.vue2.js","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr class=\"to-table-head-row\">\n\t\t\t<template v-for=\"column in props.data\">\n\t\t\t\t<th v-if=\"column.type === 'check'\" :key=\"column.prop + 'check'\" class=\"to-table-th is-check\">\n\t\t\t\t\t<ToCheckbox :model-value=\"checkedAll\" @change=\"change\"></ToCheckbox>\n\t\t\t\t</th>\n\t\t\t\t<th v-else-if=\"column._show !== false\" :key=\"column.prop\" class=\"to-table-th\" :class=\"setThClass(column).value\" @click=\"sortClick(column)\">\n\t\t\t\t\t<span>{{ column.label }}</span>\n\t\t\t\t\t<span v-if=\"column.sortable\" class=\"to-table-sorticon\">\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item ascending\"></span>\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item descending\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</th>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { TableProvideType } from './table.vue'\n\nconst tableRef: TableProvideType = inject('TableRef')\nconst emit = defineEmits(['change'])\ninterface Props {\n\tdata?: { prop?: string; label?: string; type?: string; toggler?: boolean; _show: boolean; thWrap?: boolean; sortable?: boolean; sortType?: boolean }[]\n\tcheckedAll?: boolean\n}\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: () => [],\n\tcheckedAll: false\n})\n\nconst row = ref(null)\nconst sortSet = ref({})\n\nwatch(\n\t() => props.data,\n\tval => {\n\t\tval.forEach(item => {\n\t\t\tif (item.sortable) {\n\t\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t\t}\n\t\t})\n\t},\n\t{ deep: true }\n)\n\nonMounted(() => {\n\tprops.data.forEach(item => {\n\t\tif (item.sortable) {\n\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t}\n\t})\n})\n\nconst sortClick = column => {\n\tif (!column.sortable) return false\n\tif (sortSet.value[column.prop] === 'asc') {\n\t\tsortSet.value[column.prop] = 'desc'\n\t} else if (sortSet.value[column.prop] === 'desc') {\n\t\tsortSet.value[column.prop] = ''\n\t} else {\n\t\tsortSet.value[column.prop] = 'asc'\n\t}\n\ttableRef.handleTheadCellClick(column, sortSet.value[column.prop])\n}\nconst setThClass = column => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.thWrap) {\n\t\t\tclasses.push('is-wrap')\n\t\t} else if (column.thWrap === false) {\n\t\t\tclasses.push('is-nowrap')\n\t\t}\n\t\tif (sortSet.value[column.prop]) {\n\t\t\tclasses.push(`type-${sortSet.value[column.prop]}`)\n\t\t}\n\t\treturn classes\n\t})\n}\nfunction change(checked) {\n\temit('change', checked)\n}\n\ndefineExpose({\n\trow\n})\n</script>\n"],"names":["DO_defineComponent","inject","ref","watch","onMounted","computed","_createElementBlock","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode","checkedAll","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"table-head.vue2.js","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr v-for=\"(row, rowIndex) in headerRows\" :key=\"rowIndex\" class=\"to-table-head-row\">\n\t\t\t<template v-for=\"(cell, cellIndex) in row\" :key=\"cellIndex\">\n\t\t\t\t<th v-if=\"cell.type === 'check'\" class=\"to-table-th is-check\" :rowspan=\"cell.rowspan\">\n\t\t\t\t\t<ToCheckbox :model-value=\"checkedAll\" @change=\"change\"></ToCheckbox>\n\t\t\t\t</th>\n\t\t\t\t<th v-else-if=\"cell._show !== false\" class=\"to-table-th\" :class=\"setThClass(cell).value\" :colspan=\"cell.colspan\" :rowspan=\"cell.rowspan\" @click=\"sortClick(cell)\">\n\t\t\t\t\t<span>{{ cell.label }}</span>\n\t\t\t\t\t<span v-if=\"cell.sortable\" class=\"to-table-sorticon\">\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item ascending\"></span>\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item descending\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</th>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { TableProvideType } from './table.vue'\n\nconst tableRef: TableProvideType = inject('TableRef')\nconst emit = defineEmits(['change'])\ninterface Props {\n\tdata?: { prop?: string; label?: string; type?: string; toggler?: boolean; _show: boolean; thWrap?: boolean; sortable?: boolean; sortType?: boolean; children?: any[] }[]\n\tcheckedAll?: boolean\n}\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: () => [],\n\tcheckedAll: false\n})\n\nconst row = ref(null)\nconst sortSet = ref({})\n\nwatch(\n\t() => props.data,\n\tval => {\n\t\tval.forEach(item => {\n\t\t\tif (item.sortable) {\n\t\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t\t}\n\t\t})\n\t},\n\t{ deep: true }\n)\n\nonMounted(() => {\n\tprops.data.forEach(item => {\n\t\tif (item.sortable) {\n\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t}\n\t})\n})\n\n// 多级表头支持\nfunction getMaxDepth(columns) {\n\tlet max = 0\n\tfunction traverse(cols, depth) {\n\t\tmax = Math.max(max, depth)\n\t\tfor (const col of cols) {\n\t\t\tif (col.children && col.children.length > 0) {\n\t\t\t\ttraverse(col.children, depth + 1)\n\t\t\t}\n\t\t}\n\t}\n\ttraverse(columns, 1)\n\treturn max\n}\n\nfunction countLeaves(col) {\n\tif (!col.children || col.children.length === 0) return 1\n\treturn col.children.reduce((sum, child) => sum + countLeaves(child), 0)\n}\n\nfunction buildHeaderRows(columns, maxDepth) {\n\tconst rows = Array.from({ length: maxDepth }, () => [])\n\tfunction traverse(cols, depth) {\n\t\tfor (const col of cols) {\n\t\t\tif (col.children && col.children.length > 0) {\n\t\t\t\tconst leafCount = countLeaves(col)\n\t\t\t\trows[depth].push({ ...col, colspan: leafCount, rowspan: 1 })\n\t\t\t\ttraverse(col.children, depth + 1)\n\t\t\t} else {\n\t\t\t\tconst rowspan = maxDepth - depth\n\t\t\t\trows[depth].push({ ...col, colspan: 1, rowspan })\n\t\t\t}\n\t\t}\n\t}\n\ttraverse(columns, 0)\n\treturn rows\n}\n\nconst headerRows = computed(() => {\n\tconst maxDepth = getMaxDepth(props.data)\n\tif (maxDepth <= 1) {\n\t\treturn [props.data.map(col => ({ ...col, colspan: 1, rowspan: 1 }))]\n\t}\n\treturn buildHeaderRows(props.data, maxDepth)\n})\n\nconst sortClick = column => {\n\tif (!column.sortable) return false\n\tif (sortSet.value[column.prop] === 'asc') {\n\t\tsortSet.value[column.prop] = 'desc'\n\t} else if (sortSet.value[column.prop] === 'desc') {\n\t\tsortSet.value[column.prop] = ''\n\t} else {\n\t\tsortSet.value[column.prop] = 'asc'\n\t}\n\ttableRef.handleTheadCellClick(column, sortSet.value[column.prop])\n}\nconst setThClass = column => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.thWrap) {\n\t\t\tclasses.push('is-wrap')\n\t\t} else if (column.thWrap === false) {\n\t\t\tclasses.push('is-nowrap')\n\t\t}\n\t\tif (sortSet.value[column.prop]) {\n\t\t\tclasses.push(`type-${sortSet.value[column.prop]}`)\n\t\t}\n\t\treturn classes\n\t})\n}\nfunction change(checked) {\n\temit('change', checked)\n}\n\ndefineExpose({\n\trow\n})\n</script>\n"],"names":["DO_defineComponent","inject","ref","watch","onMounted","computed","_createElementBlock","_openBlock","_Fragment","_renderList","row","_createVNode","checkedAll","_createElementVNode","_toDisplayString"],"mappings":"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"}