23 lines
		
	
	
		
			701 B
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			701 B
		
	
	
	
		
			Vue
		
	
	
| import type { InjectionKey } from 'vue';
 | |
| import { inject, provide } from 'vue';
 | |
| import type { ColumnType, StickyOffsets } from '../interface';
 | |
| 
 | |
| export type FlattenColumns<RecordType> = readonly (ColumnType<RecordType> & {
 | |
|   scrollbar?: boolean;
 | |
| })[];
 | |
| type SummaryContextProps = {
 | |
|   stickyOffsets?: StickyOffsets;
 | |
|   scrollColumnIndex?: number;
 | |
|   flattenColumns?: FlattenColumns<any>;
 | |
| };
 | |
| 
 | |
| export const SummaryContextKey: InjectionKey<SummaryContextProps> = Symbol('SummaryContextProps');
 | |
| 
 | |
| export const useProvideSummary = (props: SummaryContextProps) => {
 | |
|   provide(SummaryContextKey, props);
 | |
| };
 | |
| 
 | |
| export const useInjectSummary = () => {
 | |
|   return inject(SummaryContextKey, {} as SummaryContextProps);
 | |
| };
 |