{"version":3,"file":"content.mjs","names":[],"sources":["../../../../../../packages/components/popper/src/content.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { buildProps, definePropType } from '@element-plus/utils'\nimport { useAriaProps } from '@element-plus/hooks'\nimport { popperArrowProps, popperArrowPropsDefaults } from './arrow'\n\nimport type { PopperEffect } from './popper'\nimport type { ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type { Options, Placement } from '@popperjs/core'\nimport type { Measurable } from './constants'\nimport type Content from './content.vue'\nimport type { PopperArrowProps } from './arrow'\n\ntype ClassObjectType = Record<string, boolean>\ntype ClassType = string | ClassObjectType | ClassType[]\n\nconst POSITIONING_STRATEGIES = ['fixed', 'absolute'] as const\n\nexport interface CreatePopperInstanceParams {\n  referenceEl: Measurable\n  popperContentEl: HTMLElement\n  arrowEl: HTMLElement | undefined\n}\n\nexport interface PopperCoreConfigProps {\n  boundariesPadding?: number\n  fallbackPlacements?: Placement[]\n  gpuAcceleration?: boolean\n  /**\n   * @description offset of the Tooltip\n   */\n  offset?: number\n  /**\n   * @description position of Tooltip\n   */\n  placement?: Placement\n  /**\n   * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n   */\n  popperOptions?: Partial<Options>\n  strategy?: (typeof POSITIONING_STRATEGIES)[number]\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `PopperCoreConfigProps` instead.\n */\nexport const popperCoreConfigProps = buildProps({\n  boundariesPadding: {\n    type: Number,\n    default: 0,\n  },\n  fallbackPlacements: {\n    type: definePropType<Placement[]>(Array),\n    default: undefined,\n  },\n  gpuAcceleration: {\n    type: Boolean,\n    default: true,\n  },\n  /**\n   * @description offset of the Tooltip\n   */\n  offset: {\n    type: Number,\n    default: 12,\n  },\n  /**\n   * @description position of Tooltip\n   */\n  placement: {\n    type: String,\n    values: placements,\n    default: 'bottom',\n  },\n  /**\n   * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n   */\n  popperOptions: {\n    type: definePropType<Partial<Options>>(Object),\n    default: () => ({}),\n  },\n  strategy: {\n    type: String,\n    values: POSITIONING_STRATEGIES,\n    default: 'absolute',\n  },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `PopperCoreConfigProps` instead.\n */\nexport type PopperCoreConfigPropsPublic = ExtractPublicPropTypes<\n  typeof popperCoreConfigProps\n>\n\nexport interface PopperContentProps\n  extends PopperCoreConfigProps, PopperArrowProps {\n  id?: string\n  style?: StyleValue\n  className?: ClassType\n  effect?: PopperEffect\n  visible?: boolean\n  enterable?: boolean\n  pure?: boolean\n  focusOnShow?: boolean\n  trapping?: boolean\n  popperClass?: ClassType\n  popperStyle?: StyleValue\n  referenceEl?: HTMLElement\n  triggerTargetEl?: HTMLElement\n  stopPopperMouseEvent?: boolean\n  virtualTriggering?: boolean\n  zIndex?: number\n  ariaLabel?: string\n  loop?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `PopperContentProps` instead.\n */\nexport const popperContentProps = buildProps({\n  ...popperCoreConfigProps,\n  ...popperArrowProps,\n  id: String,\n  style: {\n    type: definePropType<StyleValue>([String, Array, Object]),\n  },\n  className: {\n    type: definePropType<ClassType>([String, Array, Object]),\n  },\n  effect: {\n    type: definePropType<PopperEffect>(String),\n    default: 'dark',\n  },\n  visible: Boolean,\n  enterable: {\n    type: Boolean,\n    default: true,\n  },\n  pure: Boolean,\n  focusOnShow: Boolean,\n  trapping: Boolean,\n  popperClass: {\n    type: definePropType<ClassType>([String, Array, Object]),\n  },\n  popperStyle: {\n    type: definePropType<StyleValue>([String, Array, Object]),\n  },\n  referenceEl: {\n    type: definePropType<HTMLElement>(Object),\n  },\n  triggerTargetEl: {\n    type: definePropType<HTMLElement>(Object),\n  },\n  stopPopperMouseEvent: {\n    type: Boolean,\n    default: true,\n  },\n  virtualTriggering: Boolean,\n  zIndex: Number,\n  ...useAriaProps(['ariaLabel']),\n  loop: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `PopperContentProps` instead.\n */\nexport type PopperContentPropsPublic = ExtractPublicPropTypes<\n  typeof popperContentProps\n>\n\nexport const popperCoreConfigPropsDefaults = {\n  boundariesPadding: 0,\n  gpuAcceleration: true,\n  offset: 12,\n  placement: 'bottom',\n  popperOptions: () => ({}),\n  strategy: 'absolute',\n} as const\n\nexport const popperContentPropsDefaults = {\n  ...popperCoreConfigPropsDefaults,\n  ...popperArrowPropsDefaults,\n  effect: 'dark',\n  enterable: true,\n  stopPopperMouseEvent: true,\n  visible: false,\n  pure: false,\n  focusOnShow: false,\n  trapping: false,\n  virtualTriggering: false,\n  loop: false,\n  style: undefined,\n  popperStyle: undefined,\n} as const\n\nexport const popperContentEmits = {\n  mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n  mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n  focus: () => true,\n  blur: () => true,\n  close: () => true,\n}\nexport type PopperContentEmits = typeof popperContentEmits\n\nexport type PopperContentInstance = InstanceType<typeof Content> & unknown\n\n/** @deprecated use `popperCoreConfigProps` instead, and it will be deprecated in the next major version */\nexport const usePopperCoreConfigProps = popperCoreConfigProps\n\n/** @deprecated use `popperContentProps` instead, and it will be deprecated in the next major version */\nexport const usePopperContentProps = popperContentProps\n\n/** @deprecated use `popperContentEmits` instead, and it will be deprecated in the next major version */\nexport const usePopperContentEmits = popperContentEmits\n\n/** @deprecated use `PopperCoreConfigProps` instead, and it will be deprecated in the next major version */\nexport type UsePopperCoreConfigProps = PopperCoreConfigProps\n\n/** @deprecated use `PopperContentProps` instead, and it will be deprecated in the next major version */\nexport type UsePopperContentProps = PopperContentProps\n\n/** @deprecated use `PopperContentInstance` instead, and it will be deprecated in the next major version */\nexport type ElPopperArrowContent = PopperContentInstance\n"],"mappings":";;;;;;AAeA,MAAM,yBAAyB,CAAC,SAAS,WAAW;;;;AA8BpD,MAAa,wBAAwB,WAAW;CAC9C,mBAAmB;EACjB,MAAM;EACN,SAAS;EACV;CACD,oBAAoB;EAClB,MAAM,eAA4B,MAAM;EACxC,SAAS;EACV;CACD,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CAID,QAAQ;EACN,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACV;CAID,eAAe;EACb,MAAM,eAAiC,OAAO;EAC9C,gBAAgB,EAAE;EACnB;CACD,UAAU;EACR,MAAM;EACN,QAAQ;EACR,SAAS;EACV;CACF,CAAU;;;;AAkCX,MAAa,qBAAqB,WAAW;CAC3C,GAAG;CACH,GAAG;CACH,IAAI;CACJ,OAAO,EACL,MAAM,eAA2B;EAAC;EAAQ;EAAO;EAAO,CAAC,EAC1D;CACD,WAAW,EACT,MAAM,eAA0B;EAAC;EAAQ;EAAO;EAAO,CAAC,EACzD;CACD,QAAQ;EACN,MAAM,eAA6B,OAAO;EAC1C,SAAS;EACV;CACD,SAAS;CACT,WAAW;EACT,MAAM;EACN,SAAS;EACV;CACD,MAAM;CACN,aAAa;CACb,UAAU;CACV,aAAa,EACX,MAAM,eAA0B;EAAC;EAAQ;EAAO;EAAO,CAAC,EACzD;CACD,aAAa,EACX,MAAM,eAA2B;EAAC;EAAQ;EAAO;EAAO,CAAC,EAC1D;CACD,aAAa,EACX,MAAM,eAA4B,OAAO,EAC1C;CACD,iBAAiB,EACf,MAAM,eAA4B,OAAO,EAC1C;CACD,sBAAsB;EACpB,MAAM;EACN,SAAS;EACV;CACD,mBAAmB;CACnB,QAAQ;CACR,GAAG,aAAa,CAAC,YAAY,CAAC;CAC9B,MAAM;CACP,CAAU;AASX,MAAa,gCAAgC;CAC3C,mBAAmB;CACnB,iBAAiB;CACjB,QAAQ;CACR,WAAW;CACX,sBAAsB,EAAE;CACxB,UAAU;CACX;AAED,MAAa,6BAA6B;CACxC,GAAG;CACH,GAAG;CACH,QAAQ;CACR,WAAW;CACX,sBAAsB;CACtB,SAAS;CACT,MAAM;CACN,aAAa;CACb,UAAU;CACV,mBAAmB;CACnB,MAAM;CACN,OAAO;CACP,aAAa;CACd;AAED,MAAa,qBAAqB;CAChC,aAAa,QAAoB,eAAe;CAChD,aAAa,QAAoB,eAAe;CAChD,aAAa;CACb,YAAY;CACZ,aAAa;CACd;;AAMD,MAAa,2BAA2B;;AAGxC,MAAa,wBAAwB;;AAGrC,MAAa,wBAAwB"}