UNPKG

hongluan-ui

Version:
1 lines 3.36 kB
{"version":3,"file":"use-tooltip.mjs","sources":["../../../../../../../packages/components/simple-table/src/composables/use-tooltip.ts"],"sourcesContent":["import { ref } from 'vue'\nimport { getStyle } from '@hongluan-ui/utils'\n\nimport type { ComputedRef } from 'vue'\nimport type { ColumnType } from '../simple-table'\nimport type { Indexable } from '@hongluan-ui/utils'\n\nfunction useTooltip(cols: ComputedRef<{ realCols: ColumnType[]; }>) {\n const isShowTooltipMap = ref<Indexable<boolean>>({})\n\n const clearTooltip = () => {\n isShowTooltipMap.value = {}\n }\n\n const tdMouseover = (e: Event, rowIndex: number, colIndex: number) => {\n if (!cols.value.realCols[colIndex].showTooltip) {\n return\n }\n const cell = e.target as HTMLElement\n const cellChild = cell.querySelector(\n '.cell',\n ) as HTMLElement\n if (!cellChild) return\n\n const range = document.createRange()\n range.setStart(cellChild, 0)\n range.setEnd(cellChild, cellChild.childNodes.length)\n const rangeWidth = range.getBoundingClientRect().width\n const padding =\n (Number.parseInt(getStyle(cellChild, 'paddingLeft'), 10) || 0) +\n (Number.parseInt(getStyle(cellChild, 'paddingRight'), 10) || 0)\n\n const isTextOverflow = getStyle(cellChild, 'textOverflow') === 'ellipsis'\n const shouldShow = isTextOverflow ?\n rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth :\n cellChild.scrollHeight > cellChild.offsetHeight // css line-clamp\n\n if (shouldShow) {\n clearTooltip()\n isShowTooltipMap.value[rowIndex + '/' + colIndex] = true\n }\n }\n const tdMouseleave = () => {\n clearTooltip()\n }\n\n return {\n isShowTooltipMap,\n clearTooltip,\n tdMouseover,\n tdMouseleave,\n }\n}\n\nexport { useTooltip }\n"],"names":[],"mappings":";;;;AAEA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,EAAE,MAAM,gBAAgB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM,YAAY,GAAG,MAAM;AAC7B,IAAI,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;AAChC,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACjD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AACpD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1B,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,SAAS;AAClB,MAAM,OAAO;AACb,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACjC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACzD,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAC3D,IAAI,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrJ,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,UAAU,CAAC;AAC9E,IAAI,MAAM,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;AACxL,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,YAAY,EAAE,CAAC;AACrB,MAAM,gBAAgB,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC/D,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,MAAM;AAC7B,IAAI,YAAY,EAAE,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,GAAG,CAAC;AACJ;;;;"}