{"version":3,"file":"BodyContext.cjs","sources":["../../../../../../../packages/vue-components/vc-table/src/context/BodyContext.tsx"],"sourcesContent":["import type { InjectionKey } from 'vue';\nimport type {\n  ColumnsType,\n  ColumnType,\n  DefaultRecordType,\n  ExpandableType,\n  ExpandedRowRender,\n  RenderExpandIcon,\n  RowClassName,\n  TableLayout,\n  TriggerEventHandler,\n} from '../interface';\nimport { inject, provide } from 'vue';\n\nexport interface BodyContextProps<RecordType = DefaultRecordType> {\n  rowClassName: string | RowClassName<RecordType>;\n  expandedRowClassName: RowClassName<RecordType>;\n\n  columns: ColumnsType<RecordType>;\n  flattenColumns: ReadonlyArray<ColumnType<RecordType>>;\n\n  tableLayout: TableLayout;\n\n  indentSize: number;\n  expandableType: ExpandableType;\n  expandRowByClick: boolean;\n  expandedRowRender: ExpandedRowRender<RecordType>;\n  expandIcon: RenderExpandIcon<RecordType>;\n  onTriggerExpand: TriggerEventHandler<RecordType>;\n  expandIconColumnIndex: number;\n}\nexport const BodyContextKey: InjectionKey<BodyContextProps> = Symbol('BodyContextProps');\n\nexport function useProvideBody(props: BodyContextProps) {\n  provide(BodyContextKey, props);\n}\n\nexport function useInjectBody() {\n  return inject(BodyContextKey, {} as BodyContextProps);\n}\n"],"names":["BodyContextKey","Symbol","useProvideBody","props","provide","useInjectBody","inject"],"mappings":";;;;AA+BaA,MAAAA,cAAAA,GAAiDC,OAAO,kBAAkB,EAAA;AAEhF,SAASC,eAAeC,KAAyB,EAAA;AACtDC,EAAAA,WAAAA,CAAQJ,gBAAgBG,KAAK,CAAA,CAAA;AAC/B,CAAA;AAEO,SAASE,aAAgB,GAAA;AAC9B,EAAOC,OAAAA,UAAAA,CAAON,cAAgB,EAAA,EAAsB,CAAA,CAAA;AACtD;;;;;;"}