{"version":3,"file":"useColumnAutoWidth2.mjs","sources":["../../../../../../../../packages/components/table/src/hooks/useColumnAutoWidth.ts"],"sourcesContent":["import { MAX_ACTION_NUMBER } from '../const'\nimport type { ActionItem } from '../types/tableAction'\n\nconst containDotTextWidth = 12 * 2 + 7.5\nconst textWidth = (n: number) => 12 * n\nconst dividerWidth = 17\nconst padding = 10 * 2\nconst moreBtnWidth = 13.5 + 10\nconst maxWidth = containDotTextWidth * 3 + dividerWidth * 2\nconst minWidth = 60\n\n/**\n * @description 如果内容长度大于3，则修改为 xx.. 基于字体是12px的基础之下长度为32px。\n * @param actions\n * @param labelMaxLength\n * @returns\n */\nexport function limitActionLabel(actions: ActionItem[], labelMaxLength = 3) {\n  return actions.map((action) => {\n    const { label } = action\n    if (label && label.length > labelMaxLength) {\n      action.tooltip = label\n      action.label = `${label.substring(0, 2)}..`\n    }\n    return action\n  })\n}\n\nexport function isOverMaxWidth(actions: ActionItem[] | null) {\n  if (!actions) return false\n\n  const getTotal = (_actions: ActionItem[]) => {\n    return _actions.reduce((total, action, idx) => {\n      if (action.label) {\n        total += textWidth(action.label.length)\n      } else {\n        total += 0\n      }\n\n      if (idx !== _actions.length - 1) {\n        total += dividerWidth\n      }\n      return total\n    }, 0)\n  }\n\n  const result = getTotal(actions) > maxWidth\n  return result\n}\n\nexport function useColumnActionAutoWidth(actions: ActionItem[] | null, handleLimit = true) {\n  if (!actions) return undefined\n\n  const getTotal = (_actions: ActionItem[]) => {\n    return _actions.reduce((total, action, idx) => {\n      if (action.label) {\n        if (action.label.includes('..')) {\n          total += containDotTextWidth\n        } else {\n          total += textWidth(action.label.length)\n        }\n      } else {\n        total += 0\n      }\n\n      if (idx !== _actions.length - 1) {\n        total += dividerWidth\n      } else {\n        total += padding\n      }\n      return total\n    }, 0)\n  }\n\n  const handledActions = handleLimit\n    ? limitActionLabel(JSON.parse(JSON.stringify(actions)))\n    : JSON.parse(JSON.stringify(actions))\n  if (handledActions.length <= MAX_ACTION_NUMBER) {\n    const total = getTotal(handledActions)\n    return total < minWidth ? minWidth : total\n  } else {\n    const contentActions = handledActions.slice(0, 2)\n    let total = getTotal(contentActions)\n    total += moreBtnWidth\n    return total < minWidth ? minWidth : total\n  }\n}\n"],"names":[],"mappings":"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"}