{"version":3,"file":"dropdown2.mjs","sources":["../../../../../../packages/components/dropdown/src/dropdown.ts"],"sourcesContent":["import { buildProps, definePropType, iconPropType } from '@bigin/utils'\nimport { EVENT_CODE } from '@bigin/constants'\nimport { createCollectionWithScope } from '@bigin/components/collection'\nimport {\n  useTooltipContentProps,\n  useTooltipTriggerProps,\n} from '@bigin/components/tooltip'\n\nimport type { Options } from '@bigin/popperjs-es'\nimport type { ButtonProps, ButtonType } from '@bigin/components/button'\nimport type { Placement } from '@bigin/components/popper'\nimport type { ComponentInternalInstance, ComputedRef } from 'vue'\nimport type { Nullable } from '@bigin/utils'\n\nexport interface IBDropdownInstance {\n  instance?: ComponentInternalInstance\n  dropdownSize?: ComputedRef<string>\n  handleClick?: () => void\n  commandHandler?: (...arg) => 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 = buildProps({\n  trigger: useTooltipTriggerProps.trigger,\n  effect: {\n    ...useTooltipContentProps.effect,\n    default: 'light',\n  },\n  type: {\n    type: definePropType<ButtonType>(String),\n  },\n  placement: {\n    type: definePropType<Placement>(String),\n    default: 'bottom',\n  },\n  popperOptions: {\n    type: definePropType<Partial<Options>>(Object),\n    default: () => ({}),\n  },\n  id: String,\n  size: {\n    type: String,\n    default: '',\n  },\n  splitButton: Boolean,\n  hideOnClick: {\n    type: Boolean,\n    default: true,\n  },\n  loop: {\n    type: Boolean,\n    default: true,\n  },\n  showTimeout: {\n    type: Number,\n    default: 150,\n  },\n  hideTimeout: {\n    type: Number,\n    default: 150,\n  },\n  tabindex: {\n    type: definePropType<number | string>([Number, String]),\n    default: 0,\n  },\n  maxHeight: {\n    type: definePropType<number | string>([Number, String]),\n    default: '',\n  },\n  popperClass: {\n    type: String,\n    default: '',\n  },\n  disabled: {\n    type: Boolean,\n    default: false,\n  },\n  role: {\n    type: String,\n    default: 'menu',\n  },\n  buttonProps: {\n    type: definePropType<ButtonProps>(Object),\n  },\n  rounded: {\n    type: Boolean,\n    default: false,\n  },\n  primary: {\n    type: Boolean,\n    default: false,\n  },\n  secondary: {\n    type: Boolean,\n    default: false,\n  },\n  ghost: {\n    type: Boolean,\n    default: false,\n  },\n  danger: {\n    type: Boolean,\n    default: false,\n  },\n  semiDanger: {\n    type: Boolean,\n    default: false,\n  },\n} as const)\n\nexport const dropdownItemProps = buildProps({\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} as const)\n\nexport const dropdownMenuProps = buildProps({\n  onKeydown: { type: definePropType<(e: KeyboardEvent) => void>(Function) },\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  BCollection,\n  BCollectionItem,\n  COLLECTION_INJECTION_KEY,\n  COLLECTION_ITEM_INJECTION_KEY,\n} = createCollectionWithScope('Dropdown')\n\nexport {\n  BCollection,\n  BCollectionItem,\n  COLLECTION_INJECTION_KEY as DROPDOWN_COLLECTION_INJECTION_KEY,\n  COLLECTION_ITEM_INJECTION_KEY as DROPDOWN_COLLECTION_ITEM_INJECTION_KEY,\n}\n"],"names":[],"mappings":"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"}