{"version":3,"file":"style.helper.mjs","sources":["../../../../../../../packages/components/table/src/table-header/style.helper.ts"],"sourcesContent":["import { getCurrentInstance } from 'vue'\n\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { Table } from '../table/defaults'\nimport type { TableHeaderProps } from '.'\n\nfunction useStyle<T>(props: TableHeaderProps<T>) {\n  const instance = getCurrentInstance()\n  const parent = instance.parent as Table<T>\n  const storeData = parent.store.states\n  const isCellHidden = (\n    index: number,\n    columns: TableColumnCtx<T>[]\n  ): boolean => {\n    let start = 0\n    for (let i = 0; i < index; i++) {\n      start += columns[i].colSpan\n    }\n    const after = start + columns[index].colSpan - 1\n    if (props.fixed === 'left') {\n      return after >= storeData.fixedLeafColumnsLength.value\n    } else if (props.fixed === 'right') {\n      return (\n        start <\n        storeData.columns.value.length -\n          storeData.rightFixedLeafColumnsLength.value\n      )\n    } else {\n      return (\n        after < storeData.fixedLeafColumnsLength.value ||\n        start >=\n          storeData.columns.value.length -\n            storeData.rightFixedLeafColumnsLength.value\n      )\n    }\n  }\n\n  const getHeaderRowStyle = (rowIndex: number) => {\n    const headerRowStyle = parent.props.headerRowStyle\n    if (typeof headerRowStyle === 'function') {\n      return headerRowStyle.call(null, { rowIndex })\n    }\n    return headerRowStyle\n  }\n\n  const getHeaderRowClass = (rowIndex: number): string => {\n    const classes = []\n    const headerRowClassName = parent.props.headerRowClassName\n    if (typeof headerRowClassName === 'string') {\n      classes.push(headerRowClassName)\n    } else if (typeof headerRowClassName === 'function') {\n      classes.push(headerRowClassName.call(null, { rowIndex }))\n    }\n\n    return classes.join(' ')\n  }\n\n  const getHeaderCellStyle = (\n    rowIndex: number,\n    columnIndex: number,\n    row: T,\n    column: TableColumnCtx<T>\n  ) => {\n    const headerCellStyle = parent.props.headerCellStyle\n    if (typeof headerCellStyle === 'function') {\n      return headerCellStyle.call(null, {\n        rowIndex,\n        columnIndex,\n        row,\n        column,\n      })\n    }\n    return headerCellStyle\n  }\n\n  const getHeaderCellClass = (\n    rowIndex: number,\n    columnIndex: number,\n    row: T,\n    column: TableColumnCtx<T>\n  ) => {\n    const classes = [\n      column.id,\n      column.order,\n      column.headerAlign,\n      column.className,\n      column.labelClassName,\n    ]\n    if (\n      rowIndex === 0 &&\n      isCellHidden(columnIndex, row as unknown as TableColumnCtx<T>[])\n    ) {\n      classes.push('is-hidden')\n    }\n\n    if (!column.children) {\n      classes.push('is-leaf')\n    }\n\n    if (column.sortable) {\n      classes.push('is-sortable')\n    }\n\n    const headerCellClassName = parent.props.headerCellClassName\n    if (typeof headerCellClassName === 'string') {\n      classes.push(headerCellClassName)\n    } else if (typeof headerCellClassName === 'function') {\n      classes.push(\n        headerCellClassName.call(null, {\n          rowIndex,\n          columnIndex,\n          row,\n          column,\n        })\n      )\n    }\n\n    classes.push('el-table__cell')\n\n    return classes.join(' ')\n  }\n\n  return {\n    getHeaderRowStyle,\n    getHeaderRowClass,\n    getHeaderCellStyle,\n    getHeaderCellClass,\n  }\n}\n\nexport default useStyle\n"],"names":[],"mappings":";;AAMA,kBAAqB,OAA4B;AAC/C,QAAM,WAAW;AACjB,QAAM,SAAS,SAAS;AACxB,QAAM,YAAY,OAAO,MAAM;AAC/B,QAAM,eAAe,CACnB,OACA,YACY;AACZ,QAAI,QAAQ;AACZ,aAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,eAAS,QAAQ,GAAG;AAAA;AAEtB,UAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/C,QAAI,MAAM,UAAU,QAAQ;AAC1B,aAAO,SAAS,UAAU,uBAAuB;AAAA,eACxC,MAAM,UAAU,SAAS;AAClC,aACE,QACA,UAAU,QAAQ,MAAM,SACtB,UAAU,4BAA4B;AAAA,WAErC;AACL,aACE,QAAQ,UAAU,uBAAuB,SACzC,SACE,UAAU,QAAQ,MAAM,SACtB,UAAU,4BAA4B;AAAA;AAAA;AAKhD,QAAM,oBAAoB,CAAC,aAAqB;AAC9C,UAAM,iBAAiB,OAAO,MAAM;AACpC,QAAI,OAAO,mBAAmB,YAAY;AACxC,aAAO,eAAe,KAAK,MAAM,EAAE;AAAA;AAErC,WAAO;AAAA;AAGT,QAAM,oBAAoB,CAAC,aAA6B;AACtD,UAAM,UAAU;AAChB,UAAM,qBAAqB,OAAO,MAAM;AACxC,QAAI,OAAO,uBAAuB,UAAU;AAC1C,cAAQ,KAAK;AAAA,eACJ,OAAO,uBAAuB,YAAY;AACnD,cAAQ,KAAK,mBAAmB,KAAK,MAAM,EAAE;AAAA;AAG/C,WAAO,QAAQ,KAAK;AAAA;AAGtB,QAAM,qBAAqB,CACzB,UACA,aACA,KACA,WACG;AACH,UAAM,kBAAkB,OAAO,MAAM;AACrC,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,KAAK,MAAM;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAGJ,WAAO;AAAA;AAGT,QAAM,qBAAqB,CACzB,UACA,aACA,KACA,WACG;AACH,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA;AAET,QACE,aAAa,KACb,aAAa,aAAa,MAC1B;AACA,cAAQ,KAAK;AAAA;AAGf,QAAI,CAAC,OAAO,UAAU;AACpB,cAAQ,KAAK;AAAA;AAGf,QAAI,OAAO,UAAU;AACnB,cAAQ,KAAK;AAAA;AAGf,UAAM,sBAAsB,OAAO,MAAM;AACzC,QAAI,OAAO,wBAAwB,UAAU;AAC3C,cAAQ,KAAK;AAAA,eACJ,OAAO,wBAAwB,YAAY;AACpD,cAAQ,KACN,oBAAoB,KAAK,MAAM;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAKN,YAAQ,KAAK;AAEb,WAAO,QAAQ,KAAK;AAAA;AAGtB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;;;;"}