{"version":3,"file":"columnTooitlp.mjs","sources":["../../../../../../packages/components/cig-table/src/columnTooitlp.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defaultRenderCell } from '@park-ui/components/table/src/config'\nimport { TableColumnCtx } from '@park-ui/components/table/src/table-column/defaults'\nimport { TABLE_INJECTION_KEY } from '@park-ui/components/table/src/tokens'\nimport ElTooltip from '@park-ui/components/tooltip'\nimport { hasClass } from '@park-ui/utils'\nimport { defineComponent, h, inject, PropType, reactive, ref } from 'vue'\n\ntype ColumnRowType<T> = {\n  row: T\n  column: TableColumnCtx<T>\n  $index: number\n  placeholder: string\n}\n\nexport default defineComponent({\n  props: {\n    index: {\n      type: Number,\n    },\n    pageSize: {\n      type: Number,\n    },\n    showOverflowTooltip: {\n      type: Boolean,\n      default: false,\n    },\n    tooltipWidth: {\n      type: [Number, String],\n    },\n    data: {\n      type: Object as PropType<ColumnRowType<any>>,\n    },\n  },\n  setup(props, ctx) {\n    const propConfig = reactive(props)\n    const index = propConfig.data!.$index\n    const pageSize = propConfig.pageSize! / 2\n    const prefix = index > pageSize ? 'top' : 'bottom'\n    const disabled = ref(!propConfig.showOverflowTooltip)\n    const parent = inject(TABLE_INJECTION_KEY)\n    function onTooltipMouseenter(event: {\n      [x: string]: any\n      target: HTMLElement\n    }) {\n      onMaxWidthChange()\n      const namespace = parent?.vnode.el?.dataset.prefix\n      const target = event.target as HTMLElement\n      const cellChild = target.parentElement?.parentElement!.querySelector(\n        '.cell'\n      ) as HTMLElement\n      if (!hasClass(cellChild, `${namespace}-tooltip`)) {\n        // 24是固定值，不可取\n        if (target.scrollWidth + 24 < maxWidth.value) {\n          disabled.value = true\n        }\n      } else {\n        disabled.value = false\n      }\n    }\n    const maxWidth = ref<number>(0)\n    function onMaxWidthChange() {\n      maxWidth.value = propConfig.tooltipWidth! as number\n      if (!propConfig.tooltipWidth) {\n        const dom: Array<any> = document.getElementsByClassName(\n          propConfig.data!.column.id\n        ) as any\n        if (dom.length > 0) {\n          maxWidth.value = dom[0].offsetWidth\n        }\n      }\n    }\n    return {\n      propConfig,\n      disabled,\n      prefix,\n      onTooltipMouseenter,\n      maxWidth,\n    }\n  },\n  render() {\n    const content = defaultRenderCell(this.propConfig.data!)\n    return h(\n      'div',\n      {\n        onmouseover: this.onTooltipMouseenter,\n      },\n      [\n        h(\n          ElTooltip,\n          {\n            placement: this.prefix,\n            disabled: this.disabled,\n          } as any,\n          {\n            content: () =>\n              h(\n                'div',\n                {\n                  style: {\n                    maxWidth: this.maxWidth + 'px',\n                  },\n                },\n                [content]\n              ),\n            default: () => [content],\n          }\n        ),\n      ]\n    )\n  },\n})\n</script>\n"],"names":[],"mappings":"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"}