{"version":3,"file":"types.mjs","sources":["../../../../../../packages/components/cascader-panel/src/types.ts"],"sourcesContent":["import type { VNode, InjectionKey } from 'vue'\r\nimport type { Nullable } from '@sgui-plus/utils/types'\r\nimport type { default as CascaderNode } from './node'\r\n\r\nexport type { CascaderNode }\r\n\r\nexport type CascaderNodeValue = string | number\r\nexport type CascaderNodePathValue = CascaderNodeValue[]\r\nexport type CascaderValue =\r\n  | CascaderNodeValue\r\n  | CascaderNodePathValue\r\n  | (CascaderNodeValue | CascaderNodePathValue)[]\r\nexport type CascaderConfig = Required<CascaderProps>\r\nexport type isDisabled = (data: CascaderOption, node: CascaderNode) => boolean\r\nexport type isLeaf = (data: CascaderOption, node: CascaderNode) => boolean\r\nexport type Resolve = (dataList?: CascaderOption[]) => void\r\nexport type LazyLoad = (node: CascaderNode, resolve: Resolve) => void\r\nexport type RenderLabel = ({\r\n  node,\r\n  data,\r\n}) => VNode | VNode[]\r\n\r\nexport enum ExpandTrigger {\r\n  CLICK = 'click',\r\n  HOVER = 'hover',\r\n}\r\n\r\nexport interface CascaderOption extends Record<string, unknown> {\r\n  label?: string\r\n  value?: CascaderNodeValue\r\n  children?: CascaderOption[]\r\n  disabled?: boolean\r\n  leaf?: boolean\r\n}\r\n\r\nexport interface CascaderProps {\r\n  expandTrigger?: ExpandTrigger\r\n  multiple?: boolean\r\n  checkStrictly?: boolean\r\n  emitPath?: boolean\r\n  lazy?: boolean\r\n  lazyLoad?: LazyLoad\r\n  value?: string\r\n  label?: string\r\n  children?: string\r\n  disabled?: string | isDisabled\r\n  leaf?: string | isLeaf\r\n  hoverThreshold?: number\r\n}\r\n\r\nexport interface Tag {\r\n  node?: CascaderNode\r\n  key: number\r\n  text: string\r\n  hitState?: boolean\r\n  closable: boolean\r\n  isCollapseTag: boolean,\r\n}\r\n\r\nexport interface SgCascaderPanelContext {\r\n  config: CascaderConfig\r\n  expandingNode: Nullable<CascaderNode>\r\n  checkedNodes: CascaderNode[]\r\n  isHoverMenu: boolean\r\n  initialLoaded: boolean\r\n  renderLabelFn: RenderLabel | undefined\r\n  lazyLoad: (\r\n    node?: CascaderNode,\r\n    cb?: (dataList: CascaderOption[]) => void\r\n  ) => void\r\n  expandNode: (node: CascaderNode, silent?: boolean) => void\r\n  handleCheckChange: (\r\n    node: CascaderNode,\r\n    checked: boolean,\r\n    emitClose?: boolean\r\n  ) => void\r\n}\r\n\r\nexport const CASCADER_PANEL_INJECTION_KEY: InjectionKey<SgCascaderPanelContext> =\r\n  Symbol()\r\n"],"names":[],"mappings":"AAAU,IAAC,aAAa,mBAAmB,CAAC,CAAC,cAAc,KAAK;AAChE,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACpC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACpC,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,EAAE,aAAa,IAAI,EAAE,EAAE;AACZ,MAAC,4BAA4B,GAAG,MAAM;;;;"}