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