{"version":3,"file":"config.mjs","sources":["../../../../../../../packages/components/cascader-panel/src/config.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { NOOP, buildProps, definePropType } from '@hd-front-end/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@hd-front-end/constants'\n\nimport type { PropType } from 'vue'\nimport type {\n  CascaderConfig,\n  CascaderNodePathValue,\n  CascaderOption,\n  CascaderProps,\n  CascaderValue,\n  RenderLabel,\n} from './types'\n\nexport const CommonProps = buildProps({\n  /**\n   * @description specify which key of node object is used as the node's value\n   */\n  modelValue: {\n    type: definePropType<CascaderValue | null>([Number, String, Array, Object]),\n  },\n  /**\n   * @description data of the options, the key of `value` and `label` can be customize by `CascaderProps`.\n   */\n  options: {\n    type: definePropType<CascaderOption[]>(Array),\n    default: () => [] as CascaderOption[],\n  },\n  /**\n   * @description configuration options, see the following `CascaderProps` table.\n   */\n  props: {\n    type: definePropType<CascaderProps>(Object),\n    default: () => ({} as CascaderProps),\n  },\n} as const)\n\nexport const DefaultProps: CascaderConfig = {\n  /**\n   * @description trigger mode of expanding options\n   */\n  expandTrigger: 'click',\n  /**\n   * @description whether multiple selection is enabled\n   */\n  multiple: false,\n  /**\n   * @description whether checked state of a node not affects its parent and child nodes\n   */\n  checkStrictly: false, // whether all nodes can be selected\n  /**\n   * @description when checked nodes change, whether to emit an array of node's path, if false, only emit the value of node.\n   */\n  emitPath: true, // wether to emit an array of all levels value in which node is located\n  /**\n   * @description whether to dynamic load child nodes, use with `lazyload` attribute\n   */\n  lazy: false,\n  /**\n   * @description method for loading child nodes data, only works when `lazy` is true\n   */\n  lazyLoad: NOOP,\n  /**\n   * @description specify which key of node object is used as the node's value\n   */\n  value: 'value',\n  /**\n   * @description specify which key of node object is used as the node's label\n   */\n  label: 'label',\n  /**\n   * @description specify which key of node object is used as the node's children\n   */\n  children: 'children',\n  /**\n   * @description specify which key of node object is used as the node's leaf\n   */\n  leaf: 'leaf',\n  /**\n   * @description specify which key of node object is used as the node's disabled\n   */\n  disabled: 'disabled',\n  /**\n   * @description hover threshold of expanding options\n   */\n  hoverThreshold: 500,\n  /**\n   * @description whether to check or uncheck node when clicking on the node\n   */\n  checkOnClickNode: false,\n  /**\n   * @description whether to check or uncheck node when clicking on leaf node (last children).\n   */\n  checkOnClickLeaf: true,\n  /**\n   * @description whether to show the radio or checkbox prefix\n   */\n  showPrefix: true,\n}\n\nexport const cascaderPanelProps = buildProps({\n  ...CommonProps,\n  border: {\n    type: Boolean,\n    default: true,\n  },\n  renderLabel: {\n    type: Function as PropType<RenderLabel>,\n  },\n})\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst emitChangeFn = (value: CascaderValue | undefined | null) => true\n\nexport const cascaderPanelEmits = {\n  [UPDATE_MODEL_EVENT]: emitChangeFn,\n  [CHANGE_EVENT]: emitChangeFn,\n  close: () => true,\n  'expand-change': (value: CascaderNodePathValue) => value,\n}\n\nexport const useCascaderConfig = (props: { props: CascaderProps }) => {\n  return computed(() => ({\n    ...DefaultProps,\n    ...props.props,\n  }))\n}\n"],"names":[],"mappings":";;;;;AAcO,MAAM,cAAc,UAAW,CAAA;AAAA,EAIpC,UAAY,EAAA;AAAA,IACV,MAAM,cAAqC,CAAA,CAAC,QAAQ,MAAQ,EAAA,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,GAC5E;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAAiC,KAAK,CAAA;AAAA,IAC5C,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA8B,MAAM,CAAA;AAAA,IAC1C,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AACF,CAAU,EAAA;AAEH,MAAM,YAA+B,GAAA;AAAA,EAI1C,aAAe,EAAA,OAAA;AAAA,EAIf,QAAU,EAAA,KAAA;AAAA,EAIV,aAAe,EAAA,KAAA;AAAA,EAIf,QAAU,EAAA,IAAA;AAAA,EAIV,IAAM,EAAA,KAAA;AAAA,EAIN,QAAU,EAAA,IAAA;AAAA,EAIV,KAAO,EAAA,OAAA;AAAA,EAIP,KAAO,EAAA,OAAA;AAAA,EAIP,QAAU,EAAA,UAAA;AAAA,EAIV,IAAM,EAAA,MAAA;AAAA,EAIN,QAAU,EAAA,UAAA;AAAA,EAIV,cAAgB,EAAA,GAAA;AAAA,EAIhB,gBAAkB,EAAA,KAAA;AAAA,EAIlB,gBAAkB,EAAA,IAAA;AAAA,EAIlB,UAAY,EAAA,IAAA;AACd,EAAA;AAEO,MAAM,qBAAqB,UAAW,CAAA;AAAA,EAC3C,GAAG,WAAA;AAAA,EACH,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,QAAA;AAAA,GACR;AACF,CAAC,EAAA;AAGD,MAAM,YAAA,GAAe,CAAC,KAA4C,KAAA,IAAA,CAAA;AAE3D,MAAM,kBAAqB,GAAA;AAAA,EAChC,CAAC,kBAAqB,GAAA,YAAA;AAAA,EACtB,CAAC,YAAe,GAAA,YAAA;AAAA,EAChB,OAAO,MAAM,IAAA;AAAA,EACb,eAAA,EAAiB,CAAC,KAAiC,KAAA,KAAA;AACrD,EAAA;AAEa,MAAA,iBAAA,GAAoB,CAAC,KAAoC,KAAA;AACpE,EAAA,OAAO,SAAS,OAAO;AAAA,IACrB,GAAG,YAAA;AAAA,IACH,GAAG,KAAM,CAAA,KAAA;AAAA,GACT,CAAA,CAAA,CAAA;AACJ;;;;"}