UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.44 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-body/index.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n h,\n watch,\n onUnmounted,\n onUpdated,\n} from 'vue'\nimport { addClass, removeClass } from '@element-plus/utils/dom'\nimport isServer from '@element-plus/utils/isServer'\nimport { hColgroup } from '../h-helper'\nimport useLayoutObserver from '../layout-observer'\nimport { removePopper } from '../util'\nimport useRender from './render-helper'\nimport defaultProps from './defaults'\n\nimport type { VNode } from 'vue'\nimport type { DefaultRow, Table } from '../table/defaults'\n\nexport default defineComponent({\n name: 'ElTableBody',\n props: defaultProps,\n setup(props) {\n const instance = getCurrentInstance()\n const parent = instance.parent as Table<DefaultRow>\n\n const { wrappedRowRender, tooltipContent, tooltipTrigger } =\n useRender(props)\n const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent)\n\n watch(props.store.states.hoverRow, (newVal: any, oldVal: any) => {\n if (!props.store.states.isComplex.value || isServer) return\n let raf = window.requestAnimationFrame\n if (!raf) {\n raf = (fn) => window.setTimeout(fn, 16)\n }\n raf(() => {\n const rows = instance.vnode.el.querySelectorAll('.el-table__row')\n const oldRow = rows[oldVal]\n const newRow = rows[newVal]\n if (oldRow) {\n removeClass(oldRow, 'hover-row')\n }\n if (newRow) {\n addClass(newRow, 'hover-row')\n }\n })\n })\n\n onUnmounted(() => {\n removePopper?.()\n })\n onUpdated(() => {\n removePopper?.()\n })\n\n return {\n onColumnsChange,\n onScrollableChange,\n wrappedRowRender,\n tooltipContent,\n tooltipTrigger,\n }\n },\n render() {\n const data = this.store.states.data.value || []\n return h(\n 'table',\n {\n class: 'el-table__body',\n cellspacing: '0',\n cellpadding: '0',\n border: '0',\n },\n [\n hColgroup(this.store.states.columns.value),\n h('tbody', {}, [\n data.reduce((acc: VNode[], row) => {\n return acc.concat(this.wrappedRowRender(row, acc.length))\n }, []),\n ]),\n ]\n )\n },\n})\n"],"names":[],"mappings":";;;;;;;;;AAmBA,gBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM,OAAO;AACX,UAAM,WAAW;AACjB,UAAM,SAAS,SAAS;AAExB,UAAM,EAAE,kBAAkB,gBAAgB,mBACxC,UAAU;AACZ,UAAM,EAAE,iBAAiB,uBAAuB,kBAAkB;AAElE,UAAM,MAAM,MAAM,OAAO,UAAU,CAAC,QAAa,WAAgB;AAC/D,UAAI,CAAC,MAAM,MAAM,OAAO,UAAU,SAAS;AAAU;AACrD,UAAI,MAAM,OAAO;AACjB,UAAI,CAAC,KAAK;AACR,cAAM,CAAC,OAAO,OAAO,WAAW,IAAI;AAAA;AAEtC,UAAI,MAAM;AACR,cAAM,OAAO,SAAS,MAAM,GAAG,iBAAiB;AAChD,cAAM,SAAS,KAAK;AACpB,cAAM,SAAS,KAAK;AACpB,YAAI,QAAQ;AACV,sBAAY,QAAQ;AAAA;AAEtB,YAAI,QAAQ;AACV,mBAAS,QAAQ;AAAA;AAAA;AAAA;AAKvB,gBAAY,MAAM;AAjDtB;AAkDM;AAAA;AAEF,cAAU,MAAM;AApDpB;AAqDM;AAAA;AAGF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,EAGJ,SAAS;AACP,UAAM,OAAO,KAAK,MAAM,OAAO,KAAK,SAAS;AAC7C,WAAO,EACL,SACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,MACb,QAAQ;AAAA,OAEV;AAAA,MACE,UAAU,KAAK,MAAM,OAAO,QAAQ;AAAA,MACpC,EAAE,SAAS,IAAI;AAAA,QACb,KAAK,OAAO,CAAC,KAAc,QAAQ;AACjC,iBAAO,IAAI,OAAO,KAAK,iBAAiB,KAAK,IAAI;AAAA,WAChD;AAAA;AAAA;AAAA;AAAA;;;;"}