{"version":3,"file":"popper.mjs","sources":["../../../../../../packages/components/popper/src/popper.ts"],"sourcesContent":["import { buildProps, definePropType } from '@vuesax-alpha/utils'\nimport {\n  createModelToggleComposable,\n  useDelayedToggleProps,\n} from '@vuesax-alpha/hooks'\nimport { popperContentProps } from './content'\nimport { popperTriggerProps } from './trigger'\nimport type { Placement } from '@vuesax-alpha/hooks/use-floating/vue'\nimport type { EmitFn } from '@vuesax-alpha/utils'\nimport type Popper from './popper.vue'\n\nimport type { ExtractPropTypes } from 'vue'\n\nexport const {\n  useModelToggleProps: usePopperModelToggleProps,\n  useModelToggleEmits: usePopperModelToggleEmits,\n  useModelToggle: usePopperModelToggle,\n} = createModelToggleComposable('visible' as const)\n\nexport const popperProps = buildProps({\n  ...useDelayedToggleProps,\n  ...popperContentProps,\n  ...popperTriggerProps,\n  ...usePopperModelToggleProps,\n\n  /**\n   * Return false if cancled open\n   */\n  processBeforeOpen: {\n    type: definePropType<() => boolean>(Function),\n    default: () => true,\n  },\n\n  /**\n   * Return false if cancled close\n   */\n  processBeforeClose: {\n    type: definePropType<() => boolean>(Function),\n    default: () => true,\n  },\n\n  showArrow: {\n    type: Boolean,\n    default: true,\n  },\n\n  loading: {\n    type: Boolean,\n  },\n})\n\nexport type PopperProps = ExtractPropTypes<typeof popperProps>\n\nexport const popperEmits = [\n  ...usePopperModelToggleEmits,\n  'before-show',\n  'show',\n  'before-hide',\n  'hide',\n]\n\nexport type PopperEmits = typeof popperEmits\n\nexport type PopperEmitFn = EmitFn<PopperEmits>\n\nexport type PopperInstance = InstanceType<typeof Popper>\n\nexport type PopperExpose = {\n  triggerRef: HTMLElement | undefined\n  contentRef: HTMLElement | undefined\n  isFocusInsideContent: () => boolean\n  updatePopper: (shouldUpdateZIndex?: boolean) => void\n  onOpen: (event?: Event | undefined) => void\n  onClose: (event?: Event | undefined) => void\n  hide: (event?: Event | undefined) => void\n  popperPlacement: Placement\n}\n"],"names":[],"mappings":";;;;;;;;AAaa,MAAA;AAAA,EACX,mBAAqB,EAAA,yBAAA;AAAA,EACrB,mBAAqB,EAAA,yBAAA;AAAA,EACrB,cAAgB,EAAA,oBAAA;AAClB,CAAA,GAAI,4BAA4B,SAAkB,EAAA;AAE3C,MAAM,cAAc,UAAW,CAAA;AAAA,EACpC,GAAG,qBAAA;AAAA,EACH,GAAG,kBAAA;AAAA,EACH,GAAG,kBAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EAKH,iBAAmB,EAAA;AAAA,IACjB,IAAA,EAAM,eAA8B,QAAQ,CAAA;AAAA,IAC5C,SAAS,MAAM,IAAA;AAAA,GACjB;AAAA,EAKA,kBAAoB,EAAA;AAAA,IAClB,IAAA,EAAM,eAA8B,QAAQ,CAAA;AAAA,IAC5C,SAAS,MAAM,IAAA;AAAA,GACjB;AAAA,EAEA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAEA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,GACR;AACF,CAAC,EAAA;AAIM,MAAM,WAAc,GAAA;AAAA,EACzB,GAAG,yBAAA;AAAA,EACH,aAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AACF;;;;"}