{"version":3,"file":"types.mjs","sources":["../../../../../packages/components/cascade-panel/src/types.ts"],"sourcesContent":["import type { VNode, InjectionKey } from 'vue'\nimport type { Nullable } from '@element-ultra/utils'\nimport type { default as CascadeNode } from './node'\n\nexport type { CascadeNode }\n\nexport type CascadeNodeValue = string | number\nexport type CascadeNodePathValue = CascadeNodeValue[]\nexport type CascadeValue =\n  | CascadeNodeValue\n  | CascadeNodePathValue\n  | (CascadeNodeValue | CascadeNodePathValue)[]\nexport type CascadeConfig = Required<CascadeProps>\nexport type isDisabled = (data: CascadeOption, node: CascadeNode) => boolean\nexport type isLeaf = (data: CascadeOption, node: CascadeNode) => boolean\nexport type Resolve = (dataList?: CascadeOption[]) => void\nexport type LazyLoad = (node: CascadeNode, resolve: Resolve) => void\nexport type RenderLabel = ({\n  node: CascadeNode,\n  data: CascadeOption,\n}) => VNode | VNode[]\n\nexport enum ExpandTrigger {\n  CLICK = 'click',\n  HOVER = 'hover',\n}\n\nexport interface CascadeOption extends Record<string, unknown> {\n  label?: string\n  value?: CascadeNodeValue\n  children?: CascadeOption[]\n  disabled?: boolean\n  leaf?: boolean\n}\n\nexport interface CascadeProps {\n  expandTrigger?: ExpandTrigger\n  multiple?: boolean\n  checkStrictly?: boolean\n  emitPath?: boolean\n  lazy?: boolean\n  lazyLoad?: LazyLoad\n  value?: string\n  label?: string\n  children?: string\n  disabled?: string | isDisabled\n  leaf?: string | isLeaf\n  hoverThreshold?: number\n}\n\nexport interface Tag {\n  node?: CascadeNode\n  key: number\n  text: string\n  hitState?: boolean\n  closable: boolean\n}\n\nexport interface ElCascadePanelContext {\n  config: CascadeConfig\n  expandingNode: Nullable<CascadeNode>\n  checkedNodes: CascadeNode[]\n  isHoverMenu: boolean\n  initialLoaded: boolean\n  renderLabelFn: RenderLabel\n  lazyLoad: (\n    node?: CascadeNode,\n    cb?: (dataList: CascadeOption[]) => void\n  ) => void\n  expandNode: (node: CascadeNode, silent?: boolean) => void\n  handleCheckChange: (\n    node: CascadeNode,\n    checked: boolean,\n    emitClose?: boolean\n  ) => void\n}\n\nexport const Cascade_PANEL_INJECTION_KEY: InjectionKey<ElCascadePanelContext> =\n  Symbol()\n"],"names":["ExpandTrigger"],"mappings":"AAsBY,IAAA,aAAA,qBAAAA,cAAL,KAAA;AACL,EAAAA,eAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,eAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AAFE,EAAAA,OAAAA,cAAAA,CAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA,EAAA;AAuDL,MAAM,8BACX,MAAO;;;;"}