{"version":3,"file":"useBinding.mjs","sources":["../../../../../../src/components/va-data-table/hooks/useBinding.ts"],"sourcesContent":["import { ExtractPropTypes, PropType } from 'vue'\n\nimport type {\n  DataTableCell,\n  DataTableRow,\n  DataTableRowBind,\n  DataTableCellBind,\n} from '../types'\n\nconst isFunction = (val: unknown): val is Function => typeof val === 'function'\nconst isObject = (val: unknown): val is Record<any, any> => val !== null && typeof val === 'object'\n\nexport const useBindingProps = {\n  rowBind: { type: null as unknown as PropType<DataTableRowBind | undefined> },\n  cellBind: { type: null as unknown as PropType<DataTableCellBind | undefined> },\n}\n\nexport const useBinding = (props: ExtractPropTypes<typeof useBindingProps>) => {\n  const getRowBind = (row: DataTableRow) => (\n    isFunction(props.rowBind)\n      ? props.rowBind(row.source, row.initialIndex)\n      : isObject(props.rowBind)\n        ? props.rowBind\n        : {}\n  ) as Record<string, string>\n\n  const getCellBind = (cell: DataTableCell, row: DataTableRow) => (\n    isFunction(props.cellBind)\n      ? props.cellBind(cell.source, row.source, cell.column, row.initialIndex)\n      : isObject(props.cellBind)\n        ? props.cellBind\n        : {}\n  ) as Record<string, string>\n\n  return {\n    getRowBind,\n    getCellBind,\n  }\n}\n"],"names":[],"mappings":"AASA,MAAM,aAAa,CAAC,QAAkC,OAAO,QAAQ;AACrE,MAAM,WAAW,CAAC,QAA0C,QAAQ,QAAQ,OAAO,QAAQ;AAEpF,MAAM,kBAAkB;AAAA,EAC7B,SAAS,EAAE,MAAM,KAA0D;AAAA,EAC3E,UAAU,EAAE,MAAM,KAA2D;AAC/E;AAEa,MAAA,aAAa,CAAC,UAAoD;AACvE,QAAA,aAAa,CAAC,QAClB,WAAW,MAAM,OAAO,IACpB,MAAM,QAAQ,IAAI,QAAQ,IAAI,YAAY,IAC1C,SAAS,MAAM,OAAO,IACpB,MAAM,UACN;AAGF,QAAA,cAAc,CAAC,MAAqB,QACxC,WAAW,MAAM,QAAQ,IACrB,MAAM,SAAS,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,YAAY,IACrE,SAAS,MAAM,QAAQ,IACrB,MAAM,WACN,CAAA;AAGD,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}