import { inject, InjectionKey, provide, Ref } 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?: boolean; panelRef?: Ref; hidePrevBtn?: boolean; hideNextBtn?: boolean; onDateMouseEnter?: (date: any) => void; onDateMouseLeave?: (date: any) => void; onSelect?: OnSelect; hideRanges?: boolean; open?: boolean; mode?: PanelMode; /** Only used for TimePicker and this is a deprecated prop */ defaultOpenValue?: any; }; const PanelContextKey: InjectionKey = Symbol('PanelContextProps'); export const useProvidePanel = (props: PanelContextProps) => { provide(PanelContextKey, props); }; export const useInjectPanel = () => { return inject(PanelContextKey); }; export default PanelContextKey;