import type { InjectionKey, Ref } from 'vue'; import { inject, provide } from 'vue'; import type { OnSelect, PanelMode } from './interface'; export type ContextOperationRefProps = { onKeydown?: (e: KeyboardEvent) => boolean; onClose?: () => void; }; export type PanelContextProps = { operationRef?: Ref; /** Only work with time panel */ hideHeader?: Ref; panelRef?: Ref; hidePrevBtn?: Ref; hideNextBtn?: Ref; onDateMouseenter?: (date: any) => void; onDateMouseleave?: (date: any) => void; onSelect?: OnSelect; hideRanges?: Ref; open?: Ref; mode?: Ref; /** Only used for TimePicker and this is a deprecated prop */ defaultOpenValue?: Ref; }; const PanelContextKey: InjectionKey = Symbol('PanelContextProps'); export const useProvidePanel = (props: PanelContextProps) => { provide(PanelContextKey, props); }; export const useInjectPanel = () => { return inject(PanelContextKey, {}); }; export default PanelContextKey;