@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
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, ref, watch, onMounted, resolveComponent, openBlock, createElementBlock, createElementVNode, Fragment, renderList, createVNode, normalizeClass, toDisplayString, createCommentVNode, computed } from 'vue';
1
+ import { defineComponent, inject, ref, watch, onMounted, computed, resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from 'vue';
2
2
 
3
3
  const __default__ = defineComponent({
4
4
  name: "ToTableHead"
@@ -34,6 +34,48 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
34
34
  }
35
35
  });
36
36
  });
37
+ function getMaxDepth(columns) {
38
+ let max = 0;
39
+ function traverse(cols, depth) {
40
+ max = Math.max(max, depth);
41
+ for (const col of cols) {
42
+ if (col.children && col.children.length > 0) {
43
+ traverse(col.children, depth + 1);
44
+ }
45
+ }
46
+ }
47
+ traverse(columns, 1);
48
+ return max;
49
+ }
50
+ function countLeaves(col) {
51
+ if (!col.children || col.children.length === 0)
52
+ return 1;
53
+ return col.children.reduce((sum, child) => sum + countLeaves(child), 0);
54
+ }
55
+ function buildHeaderRows(columns, maxDepth) {
56
+ const rows = Array.from({ length: maxDepth }, () => []);
57
+ function traverse(cols, depth) {
58
+ for (const col of cols) {
59
+ if (col.children && col.children.length > 0) {
60
+ const leafCount = countLeaves(col);
61
+ rows[depth].push({ ...col, colspan: leafCount, rowspan: 1 });
62
+ traverse(col.children, depth + 1);
63
+ } else {
64
+ const rowspan = maxDepth - depth;
65
+ rows[depth].push({ ...col, colspan: 1, rowspan });
66
+ }
67
+ }
68
+ }
69
+ traverse(columns, 0);
70
+ return rows;
71
+ }
72
+ const headerRows = computed(() => {
73
+ const maxDepth = getMaxDepth(props.data);
74
+ if (maxDepth <= 1) {
75
+ return [props.data.map((col) => ({ ...col, colspan: 1, rowspan: 1 }))];
76
+ }
77
+ return buildHeaderRows(props.data, maxDepth);
78
+ });
37
79
  const sortClick = (column) => {
38
80
  if (!column.sortable)
39
81
  return false;
@@ -76,52 +118,66 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
76
118
  class: "to-table-head"
77
119
  },
78
120
  [
79
- createElementVNode("tr", { class: "to-table-head-row" }, [
80
- (openBlock(true), createElementBlock(
81
- Fragment,
82
- null,
83
- renderList(props.data, (column) => {
84
- return openBlock(), createElementBlock(
121
+ (openBlock(true), createElementBlock(
122
+ Fragment,
123
+ null,
124
+ renderList(headerRows.value, (row2, rowIndex) => {
125
+ return openBlock(), createElementBlock("tr", {
126
+ key: rowIndex,
127
+ class: "to-table-head-row"
128
+ }, [
129
+ (openBlock(true), createElementBlock(
85
130
  Fragment,
86
131
  null,
87
- [
88
- column.type === "check" ? (openBlock(), createElementBlock("th", {
89
- key: column.prop + "check",
90
- class: "to-table-th is-check"
91
- }, [
92
- createVNode(_component_ToCheckbox, {
93
- "model-value": _ctx.checkedAll,
94
- onChange: change
95
- }, null, 8, ["model-value"])
96
- ])) : column._show !== false ? (openBlock(), createElementBlock("th", {
97
- key: column.prop,
98
- class: normalizeClass(["to-table-th", setThClass(column).value]),
99
- onClick: ($event) => sortClick(column)
100
- }, [
101
- createElementVNode(
102
- "span",
103
- null,
104
- toDisplayString(column.label),
105
- 1
106
- /* TEXT */
107
- ),
108
- column.sortable ? (openBlock(), createElementBlock("span", {
109
- key: 0,
110
- class: "to-table-sorticon"
111
- }, [
112
- createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
113
- createElementVNode("span", { class: "to-table-sorticon-item descending" })
114
- ])) : createCommentVNode("v-if", true)
115
- ], 10, ["onClick"])) : createCommentVNode("v-if", true)
116
- ],
117
- 64
118
- /* STABLE_FRAGMENT */
119
- );
120
- }),
121
- 256
122
- /* UNKEYED_FRAGMENT */
123
- ))
124
- ])
132
+ renderList(row2, (cell, cellIndex) => {
133
+ return openBlock(), createElementBlock(
134
+ Fragment,
135
+ { key: cellIndex },
136
+ [
137
+ cell.type === "check" ? (openBlock(), createElementBlock("th", {
138
+ key: 0,
139
+ class: "to-table-th is-check",
140
+ rowspan: cell.rowspan
141
+ }, [
142
+ createVNode(_component_ToCheckbox, {
143
+ "model-value": _ctx.checkedAll,
144
+ onChange: change
145
+ }, null, 8, ["model-value"])
146
+ ], 8, ["rowspan"])) : cell._show !== false ? (openBlock(), createElementBlock("th", {
147
+ key: 1,
148
+ class: normalizeClass(["to-table-th", setThClass(cell).value]),
149
+ colspan: cell.colspan,
150
+ rowspan: cell.rowspan,
151
+ onClick: ($event) => sortClick(cell)
152
+ }, [
153
+ createElementVNode(
154
+ "span",
155
+ null,
156
+ toDisplayString(cell.label),
157
+ 1
158
+ /* TEXT */
159
+ ),
160
+ cell.sortable ? (openBlock(), createElementBlock("span", {
161
+ key: 0,
162
+ class: "to-table-sorticon"
163
+ }, [
164
+ createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
165
+ createElementVNode("span", { class: "to-table-sorticon-item descending" })
166
+ ])) : createCommentVNode("v-if", true)
167
+ ], 10, ["colspan", "rowspan", "onClick"])) : createCommentVNode("v-if", true)
168
+ ],
169
+ 64
170
+ /* STABLE_FRAGMENT */
171
+ );
172
+ }),
173
+ 128
174
+ /* KEYED_FRAGMENT */
175
+ ))
176
+ ]);
177
+ }),
178
+ 128
179
+ /* KEYED_FRAGMENT */
180
+ ))
125
181
  ],
126
182
  512
127
183
  /* NEED_PATCH */
@@ -1 +1 @@
1
- {"version":3,"file":"table-head.vue2.mjs","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","_createElementBlock","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode","checkedAll","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"table-head.vue2.mjs","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","_createElementBlock","_openBlock","_Fragment","_renderList","row","_createVNode","checkedAll","_createElementVNode","_toDisplayString"],"mappings":"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"}