{"version":3,"file":"style.helper.mjs","sources":["../../../../../../../packages/components/table/src/table-header/style.helper.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { useGlobalConfig, useNamespace } from '@bigin/hooks'\nimport {\n  ensurePosition,\n  getFixedColumnOffset,\n  getFixedColumnsClass,\n} from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableHeaderProps } from '.'\n\nfunction useStyle<T>(props: TableHeaderProps<T>) {\n  const parent = inject(TABLE_INJECTION_KEY)\n  const ns = useNamespace('table')\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: string[] = []\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    let headerCellStyles = parent?.props.headerCellStyle ?? {}\n    if (typeof headerCellStyles === 'function') {\n      headerCellStyles = headerCellStyles.call(null, {\n        rowIndex,\n        columnIndex,\n        row,\n        column,\n      })\n    }\n    const fixedStyle = column.isSubColumn\n      ? null\n      : getFixedColumnOffset<T>(\n          columnIndex,\n          column.fixed,\n          props.store,\n          row as unknown as TableColumnCtx<T>[]\n        )\n    ensurePosition(fixedStyle, 'left')\n    ensurePosition(fixedStyle, 'right')\n    return Object.assign({}, headerCellStyles, fixedStyle)\n  }\n\n  const getHeaderCellClass = (\n    rowIndex: number,\n    columnIndex: number,\n    row: T,\n    column: TableColumnCtx<T>\n  ) => {\n    const tableConfig = useGlobalConfig('table', {\n      sort: { ascending: 'ascending', descending: 'descending' },\n    })\n    const fixedClasses = column.isSubColumn\n      ? []\n      : getFixedColumnsClass<T>(\n          ns.b(),\n          columnIndex,\n          column.fixed,\n          props.store,\n          row as unknown as TableColumnCtx<T>[]\n        )\n    const classes = [\n      column.id,\n      column.order === tableConfig.value.sort.ascending && 'ascending',\n      column.order === tableConfig.value.sort.descending && 'descending',\n      column.headerAlign,\n      column.className,\n      column.labelClassName,\n      ...fixedClasses,\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(ns.e('cell'))\n\n    return classes.filter((className) => Boolean(className)).join(' ')\n  }\n\n  return {\n    getHeaderRowStyle,\n    getHeaderRowClass,\n    getHeaderCellStyle,\n    getHeaderCellClass,\n  }\n}\n\nexport default useStyle\n"],"names":[],"mappings":";;;;;;;AAWA,SAAS,SAAY,KAA4B,EAAA;AAC/C,EAAM,MAAA,MAAA,GAAS,OAAO,mBAAmB,CAAA,CAAA;AACzC,EAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAE/B,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAAqB,KAAA;AAC9C,IAAM,MAAA,cAAA,GAAiB,QAAQ,KAAM,CAAA,cAAA,CAAA;AACrC,IAAI,IAAA,OAAO,mBAAmB,UAAY,EAAA;AACxC,MAAA,OAAO,cAAe,CAAA,IAAA,CAAK,IAAM,EAAA,EAAE,UAAU,CAAA,CAAA;AAAA,KAC/C;AACA,IAAO,OAAA,cAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAA6B,KAAA;AACtD,IAAA,MAAM,UAAoB,EAAC,CAAA;AAC3B,IAAM,MAAA,kBAAA,GAAqB,QAAQ,KAAM,CAAA,kBAAA,CAAA;AACzC,IAAI,IAAA,OAAO,uBAAuB,QAAU,EAAA;AAC1C,MAAA,OAAA,CAAQ,KAAK,kBAAkB,CAAA,CAAA;AAAA,KACjC,MAAA,IAAW,OAAO,kBAAA,KAAuB,UAAY,EAAA;AACnD,MAAA,OAAA,CAAQ,KAAK,kBAAmB,CAAA,IAAA,CAAK,MAAM,EAAE,QAAA,EAAU,CAAC,CAAA,CAAA;AAAA,KAC1D;AAEA,IAAO,OAAA,OAAA,CAAQ,KAAK,GAAG,CAAA,CAAA;AAAA,GACzB,CAAA;AAEA,EAAA,MAAM,kBAAqB,GAAA,CACzB,QACA,EAAA,WAAA,EACA,KACA,MACG,KAAA;AACH,IAAA,IAAI,gBAAmB,GAAA,MAAA,EAAQ,KAAM,CAAA,eAAA,IAAmB,EAAC,CAAA;AACzD,IAAI,IAAA,OAAO,qBAAqB,UAAY,EAAA;AAC1C,MAAmB,gBAAA,GAAA,gBAAA,CAAiB,KAAK,IAAM,EAAA;AAAA,QAC7C,QAAA;AAAA,QACA,WAAA;AAAA,QACA,GAAA;AAAA,QACA,MAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AACA,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,WAAA,GACtB,IACA,GAAA,oBAAA;AAAA,MACE,WAAA;AAAA,MACA,MAAO,CAAA,KAAA;AAAA,MACP,KAAM,CAAA,KAAA;AAAA,MACN,GAAA;AAAA,KACF,CAAA;AACJ,IAAA,cAAA,CAAe,YAAY,MAAM,CAAA,CAAA;AACjC,IAAA,cAAA,CAAe,YAAY,OAAO,CAAA,CAAA;AAClC,IAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,kBAAkB,UAAU,CAAA,CAAA;AAAA,GACvD,CAAA;AAEA,EAAA,MAAM,kBAAqB,GAAA,CACzB,QACA,EAAA,WAAA,EACA,KACA,MACG,KAAA;AACH,IAAM,MAAA,WAAA,GAAc,gBAAgB,OAAS,EAAA;AAAA,MAC3C,IAAM,EAAA,EAAE,SAAW,EAAA,WAAA,EAAa,YAAY,YAAa,EAAA;AAAA,KAC1D,CAAA,CAAA;AACD,IAAA,MAAM,YAAe,GAAA,MAAA,CAAO,WACxB,GAAA,EACA,GAAA,oBAAA;AAAA,MACE,GAAG,CAAE,EAAA;AAAA,MACL,WAAA;AAAA,MACA,MAAO,CAAA,KAAA;AAAA,MACP,KAAM,CAAA,KAAA;AAAA,MACN,GAAA;AAAA,KACF,CAAA;AACJ,IAAA,MAAM,OAAU,GAAA;AAAA,MACd,MAAO,CAAA,EAAA;AAAA,MACP,MAAO,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA,CAAM,KAAK,SAAa,IAAA,WAAA;AAAA,MACrD,MAAO,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA,CAAM,KAAK,UAAc,IAAA,YAAA;AAAA,MACtD,MAAO,CAAA,WAAA;AAAA,MACP,MAAO,CAAA,SAAA;AAAA,MACP,MAAO,CAAA,cAAA;AAAA,MACP,GAAG,YAAA;AAAA,KACL,CAAA;AAEA,IAAI,IAAA,CAAC,OAAO,QAAU,EAAA;AACpB,MAAA,OAAA,CAAQ,KAAK,SAAS,CAAA,CAAA;AAAA,KACxB;AAEA,IAAA,IAAI,OAAO,QAAU,EAAA;AACnB,MAAA,OAAA,CAAQ,KAAK,aAAa,CAAA,CAAA;AAAA,KAC5B;AAEA,IAAM,MAAA,mBAAA,GAAsB,QAAQ,KAAM,CAAA,mBAAA,CAAA;AAC1C,IAAI,IAAA,OAAO,wBAAwB,QAAU,EAAA;AAC3C,MAAA,OAAA,CAAQ,KAAK,mBAAmB,CAAA,CAAA;AAAA,KAClC,MAAA,IAAW,OAAO,mBAAA,KAAwB,UAAY,EAAA;AACpD,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,mBAAA,CAAoB,KAAK,IAAM,EAAA;AAAA,UAC7B,QAAA;AAAA,UACA,WAAA;AAAA,UACA,GAAA;AAAA,UACA,MAAA;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAEA,IAAA,OAAA,CAAQ,IAAK,CAAA,EAAA,CAAG,CAAE,CAAA,MAAM,CAAC,CAAA,CAAA;AAEzB,IAAO,OAAA,OAAA,CAAQ,OAAO,CAAC,SAAA,KAAc,QAAQ,SAAS,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,GACnE,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,kBAAA;AAAA,IACA,kBAAA;AAAA,GACF,CAAA;AACF;;;;"}