You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
9.4 KiB
1 line
9.4 KiB
{"ast":null,"code":"import \"core-js/modules/es.array.push.js\";\nimport { defineComponent, h } from 'vue';\nimport '../../../../hooks/index.mjs';\nimport useStyle from './style-helper.mjs';\nimport { useNamespace } from '../../../../hooks/use-namespace/index.mjs';\nvar TableFooter = defineComponent({\n name: \"ElTableFooter\",\n props: {\n fixed: {\n type: String,\n default: \"\"\n },\n store: {\n required: true,\n type: Object\n },\n summaryMethod: Function,\n sumText: String,\n border: Boolean,\n defaultSort: {\n type: Object,\n default: () => {\n return {\n prop: \"\",\n order: \"\"\n };\n }\n }\n },\n setup(props) {\n const {\n getCellClasses,\n getCellStyles,\n columns\n } = useStyle(props);\n const ns = useNamespace(\"table\");\n return {\n ns,\n getCellClasses,\n getCellStyles,\n columns\n };\n },\n render() {\n const {\n columns,\n getCellStyles,\n getCellClasses,\n summaryMethod,\n sumText\n } = this;\n const data = this.store.states.data.value;\n let sums = [];\n if (summaryMethod) {\n sums = summaryMethod({\n columns,\n data\n });\n } else {\n columns.forEach((column, index) => {\n if (index === 0) {\n sums[index] = sumText;\n return;\n }\n const values = data.map(item => Number(item[column.property]));\n const precisions = [];\n let notNumber = true;\n values.forEach(value => {\n if (!Number.isNaN(+value)) {\n notNumber = false;\n const decimal = `${value}`.split(\".\")[1];\n precisions.push(decimal ? decimal.length : 0);\n }\n });\n const precision = Math.max.apply(null, precisions);\n if (!notNumber) {\n sums[index] = values.reduce((prev, curr) => {\n const value = Number(curr);\n if (!Number.isNaN(+value)) {\n return Number.parseFloat((prev + curr).toFixed(Math.min(precision, 20)));\n } else {\n return prev;\n }\n }, 0);\n } else {\n sums[index] = \"\";\n }\n });\n }\n return h(h(\"tfoot\", [h(\"tr\", {}, [...columns.map((column, cellIndex) => h(\"td\", {\n key: cellIndex,\n colspan: column.colSpan,\n rowspan: column.rowSpan,\n class: getCellClasses(columns, cellIndex),\n style: getCellStyles(column, cellIndex)\n }, [h(\"div\", {\n class: [\"cell\", column.labelClassName]\n }, [sums[cellIndex]])]))])]));\n }\n});\nexport { TableFooter as default };","map":{"version":3,"names":["TableFooter","defineComponent","name","props","fixed","type","String","default","store","required","Object","summaryMethod","Function","sumText","border","Boolean","defaultSort","prop","order","setup","getCellClasses","getCellStyles","columns","useStyle","ns","useNamespace","render","data","states","value","sums","forEach","column","index","values","map","item","Number","property","precisions","notNumber","isNaN","decimal","split","push","length","precision","Math","max","apply","reduce","prev","curr","parseFloat","toFixed","min","h","cellIndex","key","colspan","colSpan","rowspan","rowSpan","class","style","labelClassName"],"sources":["../../../../../../../packages/components/table/src/table-footer/index.ts"],"sourcesContent":["// @ts-nocheck\nimport { defineComponent, h } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useStyle from './style-helper'\nimport type { Store } from '../store'\n\nimport type { PropType } from 'vue'\nimport type { DefaultRow, Sort, SummaryMethod } from '../table/defaults'\nexport interface TableFooter<T> {\n fixed: string\n store: Store<T>\n summaryMethod: SummaryMethod<T>\n sumText: string\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'ElTableFooter',\n\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableFooter<DefaultRow>['store']>,\n },\n summaryMethod: Function as PropType<\n TableFooter<DefaultRow>['summaryMethod']\n >,\n sumText: String,\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableFooter<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props) {\n const { getCellClasses, getCellStyles, columns } = useStyle(\n props as TableFooter<DefaultRow>\n )\n const ns = useNamespace('table')\n return {\n ns,\n getCellClasses,\n getCellStyles,\n columns,\n }\n },\n render() {\n const { columns, getCellStyles, getCellClasses, summaryMethod, sumText } =\n this\n const data = this.store.states.data.value\n let sums = []\n if (summaryMethod) {\n sums = summaryMethod({\n columns,\n data,\n })\n } else {\n columns.forEach((column, index) => {\n if (index === 0) {\n sums[index] = sumText\n return\n }\n const values = data.map((item) => Number(item[column.property]))\n const precisions = []\n let notNumber = true\n values.forEach((value) => {\n if (!Number.isNaN(+value)) {\n notNumber = false\n const decimal = `${value}`.split('.')[1]\n precisions.push(decimal ? decimal.length : 0)\n }\n })\n const precision = Math.max.apply(null, precisions)\n if (!notNumber) {\n sums[index] = values.reduce((prev, curr) => {\n const value = Number(curr)\n if (!Number.isNaN(+value)) {\n return Number.parseFloat(\n (prev + curr).toFixed(Math.min(precision, 20))\n )\n } else {\n return prev\n }\n }, 0)\n } else {\n sums[index] = ''\n }\n })\n }\n return h(\n h('tfoot', [\n h('tr', {}, [\n ...columns.map((column, cellIndex) =>\n h(\n 'td',\n {\n key: cellIndex,\n colspan: column.colSpan,\n rowspan: column.rowSpan,\n class: getCellClasses(columns, cellIndex),\n style: getCellStyles(column, cellIndex),\n },\n [\n h(\n 'div',\n {\n class: ['cell', column.labelClassName],\n },\n [sums[cellIndex]]\n ),\n ]\n )\n ),\n ]),\n ])\n )\n },\n})\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |