ivue-material-plus
Version:
A high quality UI components Library with Vue.js
1 lines • 4.78 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../src/components/ivue-table/table-body/index.ts"],"sourcesContent":["import {\r\n defineComponent,\r\n h,\r\n getCurrentInstance,\r\n inject,\r\n onUnmounted,\r\n onUpdated,\r\n watch,\r\n} from 'vue';\r\nimport defaultProps from './defaults';\r\nimport useRender from './render';\r\nimport useTableLayoutObserver from '../table-layout-observer';\r\n\r\nimport { removePopper } from '../utils';\r\nimport { addClass, removeClass } from '../../../utils/assist';\r\n\r\n// ts\r\nimport type { VNode } from 'vue';\r\nimport type { TableBodyProps } from './defaults';\r\nimport { TableContextKey } from '../table/defaults';\r\n\r\nconst prefixCls = 'ivue-table-body';\r\n\r\nexport default defineComponent({\r\n name: prefixCls,\r\n props: defaultProps,\r\n setup(props: TableBodyProps) {\r\n // vm\r\n const vm = getCurrentInstance();\r\n\r\n // inject\r\n const IvueTable = inject(TableContextKey);\r\n\r\n const { wrappedRowRender } = useRender(props);\r\n\r\n const { handleColumnsChange, handleScrollableWidthChange } =\r\n useTableLayoutObserver(IvueTable);\r\n\r\n // methods\r\n\r\n // 渲染行数据\r\n const renderRow = () => {\r\n const list = props.store.states.data.value || [];\r\n\r\n return list.reduce((prev: VNode[], row) => {\r\n return prev.concat(wrappedRowRender(row, prev.length));\r\n }, []);\r\n };\r\n\r\n // watch\r\n watch(props.store.states.hoverRow, (newVal: number, oldVal: number) => {\r\n // 没有固定列\r\n if (!props.store.states.isFixedColumns.value) {\r\n return;\r\n }\r\n\r\n // 延迟执行\r\n let raf = window.requestAnimationFrame;\r\n if (!raf) {\r\n raf = (fn) => window.setTimeout(fn, 16);\r\n }\r\n\r\n raf(() => {\r\n const rows = vm?.vnode.el?.querySelectorAll('.ivue-table-row');\r\n\r\n const oldRow = rows[oldVal];\r\n const newRow = rows[newVal];\r\n\r\n // 删除之前的hover\r\n if (oldRow) {\r\n removeClass(oldRow, 'hover-row');\r\n }\r\n\r\n // 添加hover\r\n if (newRow) {\r\n addClass(newRow, 'hover-row');\r\n }\r\n });\r\n });\r\n\r\n // onUnmounted\r\n onUnmounted(() => {\r\n // tooltip显示时 删除popper\r\n removePopper?.();\r\n });\r\n\r\n // onUpdated\r\n onUpdated(() => {\r\n // tooltip显示时 删除popper\r\n removePopper?.();\r\n });\r\n\r\n return {\r\n // methods\r\n renderRow,\r\n handleColumnsChange,\r\n handleScrollableWidthChange,\r\n };\r\n },\r\n render() {\r\n return h('tbody', {}, [this.renderRow()]);\r\n },\r\n});\r\n"],"names":["useTableLayoutObserver"],"mappings":";;;;;;;;AAqBA,MAAM,SAAY,GAAA,iBAAA,CAAA;AAElB,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,SAAA;AAAA,EACN,KAAO,EAAA,YAAA;AAAA,EACP,MAAM,KAAuB,EAAA;AAE3B,IAAA,MAAM,KAAK,kBAAmB,EAAA,CAAA;AAG9B,IAAM,MAAA,SAAA,GAAY,OAAO,eAAe,CAAA,CAAA;AAExC,IAAA,MAAM,EAAE,gBAAA,EAAqB,GAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAE5C,IAAA,MAAM,EAAE,mBAAA,EAAqB,2BAA4B,EAAA,GACvDA,kBAAuB,SAAS,CAAA,CAAA;AAKlC,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,MAAM,OAAO,KAAM,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,SAAS,EAAC,CAAA;AAE/C,MAAA,OAAO,IAAK,CAAA,MAAA,CAAO,CAAC,IAAA,EAAe,GAAQ,KAAA;AACzC,QAAA,OAAO,KAAK,MAAO,CAAA,gBAAA,CAAiB,GAAK,EAAA,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA;AAAA,OACvD,EAAG,EAAE,CAAA,CAAA;AAAA,KACP,CAAA;AAGA,IAAA,KAAA,CAAM,MAAM,KAAM,CAAA,MAAA,CAAO,QAAU,EAAA,CAAC,QAAgB,MAAmB,KAAA;AAErE,MAAA,IAAI,CAAC,KAAA,CAAM,KAAM,CAAA,MAAA,CAAO,eAAe,KAAO,EAAA;AAC5C,QAAA,OAAA;AAAA,OACF;AAGA,MAAA,IAAI,MAAM,MAAO,CAAA,qBAAA,CAAA;AACjB,MAAA,IAAI,CAAC,GAAK,EAAA;AACR,QAAA,GAAA,GAAM,CAAC,EAAA,KAAO,MAAO,CAAA,UAAA,CAAW,IAAI,EAAE,CAAA,CAAA;AAAA,OACxC;AAEA,MAAA,GAAA,CAAI,MAAM;AA9DhB,QAAA,IAAA,EAAA,CAAA;AA+DQ,QAAA,MAAM,IAAO,GAAA,CAAA,EAAA,GAAA,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAI,KAAM,CAAA,EAAA,KAAV,mBAAc,gBAAiB,CAAA,iBAAA,CAAA,CAAA;AAE5C,QAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAA;AACpB,QAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAA;AAGpB,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,WAAA,CAAY,QAAQ,WAAW,CAAA,CAAA;AAAA,SACjC;AAGA,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,QAAA,CAAS,QAAQ,WAAW,CAAA,CAAA;AAAA,SAC9B;AAAA,OACD,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAGD,IAAA,WAAA,CAAY,MAAM;AAjFtB,MAAA,IAAA,EAAA,CAAA;AAmFM,MAAA,CAAA,EAAA,GAAA,YAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,EAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAGD,IAAA,SAAA,CAAU,MAAM;AAvFpB,MAAA,IAAA,EAAA,CAAA;AAyFM,MAAA,CAAA,EAAA,GAAA,YAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,EAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MAEL,SAAA;AAAA,MACA,mBAAA;AAAA,MACA,2BAAA;AAAA,KACF,CAAA;AAAA,GACF;AAAA,EACA,MAAS,GAAA;AACP,IAAO,OAAA,CAAA,CAAE,SAAS,EAAC,EAAG,CAAC,IAAK,CAAA,SAAA,EAAW,CAAC,CAAA,CAAA;AAAA,GAC1C;AACF,CAAC,CAAA;;;;"}