{"version":3,"file":"use-column-fixed.mjs","sources":["../../../../../../../packages/components/table-bak/src/hooks/use-column-fixed.ts"],"sourcesContent":["import type { StyleValue, Ref } from 'vue'\nimport { computed } from 'vue'\nimport { addUnit, findLastIndex } from '../../../../shared/utils'\nimport type { TableColumnData } from '../types'\n\nconst getLeft = (dataColumns: TableColumnData[], index: number) => {\n  if (index === 0) return '0'\n  const res: any = []\n  dataColumns.slice(0, index).forEach((v) => {\n    res.push(addUnit(v.width) || 0)\n  })\n  return `calc(${res.join(' + ')})`\n}\n\nconst getRight = (dataColumns: TableColumnData[], index: number) => {\n  const lastIndex = dataColumns.length - 1\n  if (index === lastIndex) return '0'\n  const res: any = []\n  dataColumns.slice(index + 1, lastIndex + 1).forEach((v) => {\n    res.push(addUnit(v.width) || 0)\n  })\n  return `calc(${res.join(' + ')})`\n}\n\nexport const useColumnFixed = (\n  dataColumns: Ref<TableColumnData[]>,\n  column: Ref<TableColumnData>\n) => {\n  const leftFixedLastIndex = computed(() =>\n    findLastIndex(dataColumns.value as [], (_column) => _column.fixed === 'left')\n  )\n  const rightFixedFirstIndex = computed(() =>\n    dataColumns.value.findIndex((_column) => _column.fixed === 'right')\n  )\n\n  const fixedIndex = computed(() =>\n    dataColumns.value.findIndex((_column) => _column === column.value)\n  )\n\n  // 是否是左边固定列最后一个\n  const isLeftFixedLast = computed(\n    () => leftFixedLastIndex.value > -1 && leftFixedLastIndex.value === fixedIndex.value\n  )\n\n  // 是否是右边固定列第一个\n  const isRightFixedFirst = computed(\n    () => rightFixedFirstIndex.value > -1 && rightFixedFirstIndex.value === fixedIndex.value\n  )\n\n  const fixedStyle = computed(() => {\n    const style: StyleValue = {}\n    if (column.value.fixed === 'left') {\n      style.left = getLeft(dataColumns.value, fixedIndex.value)\n    }\n    if (column.value.fixed === 'right') {\n      style.right = getRight(dataColumns.value, fixedIndex.value)\n    }\n    return style\n  })\n\n  return {\n    fixedStyle,\n    isLeftFixedLast,\n    isRightFixedFirst\n  }\n}\n"],"names":[],"mappings":"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"}