{"version":3,"file":"dropdown.mjs","sources":["../../../../../packages/components/dropdown/src/dropdown.ts"],"sourcesContent":["import { iconPropType } from '@element-ultra/utils'\nimport { ComponentSize, EVENT_CODE } from '@element-ultra/shared'\nimport { createCollectionWithScope } from '@element-ultra/components/collection'\nimport {\n  useTooltipTriggerProps,\n  useTooltipContentProps\n} from '@element-ultra/components/tooltip'\nimport type { Options } from '@popperjs/core'\n\nimport type { ButtonType } from '@element-ultra/components/button'\nimport type { Placement } from '@element-ultra/components/popper'\nimport type { ComponentInternalInstance, ComputedRef, PropType } from 'vue'\nimport type { Nullable } from '@element-ultra/utils'\n\nexport interface IElDropdownInstance {\n  instance?: ComponentInternalInstance\n  dropdownSize?: ComputedRef<string>\n  handleClick?: () => void\n  commandHandler?: (...arg: any[]) => void\n  show?: () => void\n  hide?: () => void\n  trigger?: ComputedRef<string>\n  hideOnClick?: ComputedRef<boolean>\n  triggerElm?: ComputedRef<Nullable<HTMLButtonElement>>\n}\n\nexport const dropdownProps = {\n  trigger: useTooltipTriggerProps.trigger,\n  effect: {\n    ...useTooltipContentProps.effect,\n    default: 'light'\n  },\n  type: {\n    type: String as PropType<ButtonType>\n  },\n  placement: {\n    type: String as PropType<Placement>,\n    default: 'bottom'\n  },\n  popperOptions: {\n    type: Object as PropType<Partial<Options>>,\n    default: () => ({})\n  },\n  size: {\n    type: String as PropType<ComponentSize>\n  },\n  splitButton: Boolean,\n  hideOnClick: {\n    type: Boolean,\n    default: true\n  },\n  loop: {\n    type: Boolean\n  },\n  showTimeout: {\n    type: Number,\n    default: 150\n  },\n  hideTimeout: {\n    type: Number,\n    default: 150\n  },\n  tabindex: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0\n  },\n  maxHeight: {\n    type: [Number, String] as PropType<number | string>,\n    default: ''\n  },\n  popperClass: {\n    type: String,\n    default: ''\n  }\n}\n\nexport const dropdownItemProps = {\n  command: {\n    type: [Object, String, Number],\n    default: () => ({})\n  },\n  disabled: Boolean,\n  divided: Boolean,\n  textValue: String,\n  icon: {\n    type: iconPropType\n  }\n}\n\nexport const dropdownMenuProps = {\n  onKeydown: { type: Function as PropType<(e: KeyboardEvent) => void> }\n}\n\nexport const FIRST_KEYS = [\n  EVENT_CODE.down,\n  EVENT_CODE.pageDown,\n  EVENT_CODE.home\n]\n\nexport const LAST_KEYS = [EVENT_CODE.up, EVENT_CODE.pageUp, EVENT_CODE.end]\n\nexport const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS]\n\nconst {\n  ElCollection,\n  ElCollectionItem,\n  COLLECTION_INJECTION_KEY,\n  COLLECTION_ITEM_INJECTION_KEY\n} = createCollectionWithScope('Dropdown')\n\nexport {\n  ElCollection,\n  ElCollectionItem,\n  COLLECTION_INJECTION_KEY as DROPDOWN_COLLECTION_INJECTION_KEY,\n  COLLECTION_ITEM_INJECTION_KEY as DROPDOWN_COLLECTION_ITEM_INJECTION_KEY\n}\n"],"names":[],"mappings":";;;;;;;;;AA0BO,MAAM,aAAgB,GAAA;AAAA,EAC3B,SAAS,sBAAuB,CAAA,OAAA;AAAA,EAChC,MAAQ,EAAA;AAAA,IACN,GAAG,sBAAuB,CAAA,MAAA;AAAA,IAC1B,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,GACR;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,QAAA;AAAA,GACX;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,GACR;AAAA,EACA,WAAa,EAAA,OAAA;AAAA,EACb,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,GACR;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,EAAA;AAEO,MAAM,iBAAoB,GAAA;AAAA,EAC/B,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,CAAC,MAAQ,EAAA,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC7B,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,QAAU,EAAA,OAAA;AAAA,EACV,OAAS,EAAA,OAAA;AAAA,EACT,SAAW,EAAA,MAAA;AAAA,EACX,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,YAAA;AAAA,GACR;AACF,EAAA;AAEO,MAAM,iBAAoB,GAAA;AAAA,EAC/B,SAAA,EAAW,EAAE,IAAA,EAAM,QAAiD,EAAA;AACtE,EAAA;AAEO,MAAM,UAAa,GAAA;AAAA,EACxB,UAAW,CAAA,IAAA;AAAA,EACX,UAAW,CAAA,QAAA;AAAA,EACX,UAAW,CAAA,IAAA;AACb,EAAA;AAEO,MAAM,YAAY,CAAC,UAAA,CAAW,IAAI,UAAW,CAAA,MAAA,EAAQ,WAAW,GAAG,EAAA;AAEnE,MAAM,eAAkB,GAAA,CAAC,GAAG,UAAA,EAAY,GAAG,SAAS,EAAA;AAErD,MAAA;AAAA,EACJ,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,wBAAA;AAAA,EACA,6BAAA;AACF,CAAA,GAAI,0BAA0B,UAAU;;;;"}