import type { CSSProperties } from 'vue'; import type { VueNode } from '../../_util/type'; import useMergeProps from '../hooks/useMergeProps'; import { useInjectPanel } from '../PanelContext'; const HIDDEN_STYLE: CSSProperties = { visibility: 'hidden', }; export type HeaderProps = { prefixCls: string; // Icons prevIcon?: VueNode; nextIcon?: VueNode; superPrevIcon?: VueNode; superNextIcon?: VueNode; /** Last one step */ onPrev?: () => void; /** Next one step */ onNext?: () => void; /** Last multiple steps */ onSuperPrev?: () => void; /** Next multiple steps */ onSuperNext?: () => void; children?: VueNode; }; function Header(_props: HeaderProps, { slots }) { const props = useMergeProps(_props); const { prefixCls, prevIcon = '\u2039', nextIcon = '\u203A', superPrevIcon = '\u00AB', superNextIcon = '\u00BB', onSuperPrev, onSuperNext, onPrev, onNext, } = props; const { hideNextBtn, hidePrevBtn } = useInjectPanel(); return (
{onSuperPrev && ( )} {onPrev && ( )}
{slots.default?.()}
{onNext && ( )} {onSuperNext && ( )}
); } Header.displayName = 'Header'; Header.inheritAttrs = false; export default Header;