{"version":3,"file":"symbol.mjs","sources":["../../../components/layout/symbol.ts"],"sourcesContent":["import type { ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { Router } from 'vue-router'\nimport type { IconMinorProps } from '@/components/icon'\nimport type { MenuExposed, MenuGroupType, MenuMarkerType } from '@/components/menu'\nimport type { NativeScrollExposed } from '@/components/native-scroll'\nimport type { ClassType } from '@vexip-ui/config'\nimport type { BreakPoint } from '@/components/grid'\n\nexport type LayoutSignType = 'aside' | 'header'\nexport type LayoutConfig = 'nav' | 'color' | 'theme'\nexport type LayoutSection =\n  | 'wrapper'\n  | 'section'\n  | 'header'\n  | 'headerLeft'\n  | 'headerMain'\n  | 'headerRight'\n  | 'headerUser'\n  | 'sidebar'\n  | 'aside'\n  | 'asideTop'\n  | 'asideMain'\n  | 'asideBottom'\n  | 'expandHandler'\n  | 'main'\n  | 'footer'\n  | 'footerLinks'\n  | 'copyright'\n  | 'scrollbar'\n\nexport type LayoutInnerClass = Partial<Record<LayoutSection, ClassType>>\nexport type LayoutMediaJudger = (breakpoint: BreakPoint) => boolean\n\nexport interface LayoutMenuProps {\n  active?: string,\n  accordion?: boolean,\n  markerType?: MenuMarkerType,\n  groupType?: MenuGroupType,\n  tooltipReverse?: boolean,\n  router?: Router,\n  manualRoute?: boolean,\n  onExpand?: (label: string, meta: Record<string, any>) => void,\n  onReduce?: (label: string, meta: Record<string, any>) => void\n}\n\nexport interface LayoutHeaderAction {\n  label: string,\n  icon?: Record<string, any>,\n  iconProps?: IconMinorProps,\n  name?: string,\n  disabled?: boolean,\n  divided?: boolean,\n  hidden?: boolean,\n  meta?: Record<string, any>\n}\n\nexport interface LayoutUser {\n  name: string,\n  email?: string,\n  avatar?: string | Record<string, any>\n}\n\nexport interface LayoutFooterLink {\n  name: string,\n  subname?: string,\n  icon?: Record<string, any>,\n  iconProps?: IconMinorProps,\n  to?: string,\n  target?: string,\n  children?: Array<Omit<LayoutFooterLink, 'children'>>\n}\n\nexport interface LayoutState {\n  isLayout: boolean,\n  locked: boolean,\n  affixed: boolean,\n  scrollY: number,\n  affixMatched: boolean,\n  expandMatched: boolean,\n  useExpand: boolean,\n  expanded: boolean,\n  reduced: boolean,\n  navConfig: boolean,\n  classes: LayoutInnerClass,\n  changeInLock: (doChange: () => void) => void\n}\n\nexport interface LayoutSlotParams {\n  expanded: boolean,\n  reduced: boolean,\n  toggleExpanded: (expanded?: boolean) => void,\n  toggleReduced: (reduced: boolean) => void\n}\n\nexport interface LayoutHeaderSlotParams extends LayoutSlotParams {\n  handleColorChange: (color: string) => void,\n  toggleUserDropped: (dropped?: boolean) => void\n}\n\nexport interface LayoutExposed extends ComponentPublicInstance {\n  scroll?: NativeScrollExposed,\n  menu?: MenuExposed,\n  toggleExpanded: (expanded?: boolean) => void,\n  toggleReduced: (reduced?: boolean) => void,\n  expandMenuByLabel: (label: string) => void\n}\n\nexport interface LayoutHeaderExposed extends ComponentPublicInstance {\n  menu?: MenuExposed,\n  toggleExpanded: (expanded?: boolean) => void,\n  toggleReduced: (reduced?: boolean) => void,\n  expandMenuByLabel: (label: string) => void,\n  toggleUserDropped: (dropped: boolean) => void\n}\n\nexport interface LayoutMainExposed extends ComponentPublicInstance {}\n\nexport interface LayoutAsideExposed extends ComponentPublicInstance {\n  menu?: MenuExposed,\n  toggleExpanded: (expanded?: boolean) => void,\n  toggleReduced: (reduced?: boolean) => void,\n  expandMenuByLabel: (label: string) => void\n}\n\nexport const LAYOUT_STATE = '___VXP_LAYOUT_STATE' as unknown as InjectionKey<LayoutState>\n"],"names":["LAYOUT_STATE"],"mappings":"AA4HO,MAAMA,IAAe;"}