{"version":3,"file":"popper.mjs","sources":["../../../../../../packages/components/popper/src/popper.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\r\nimport { buildProps, definePropType } from '@sgui-plus/utils/props'\r\n\r\nimport type { ExtractPropTypes, StyleValue } from 'vue'\r\nimport type { Placement, Options } from '@popperjs/core'\r\nimport type Popper from './popper.vue'\r\n\r\nconst effects = ['light', 'dark'] as const\r\nconst triggers = ['click', 'contextmenu', 'hover', 'focus'] as const\r\n\r\nexport const Effect = {\r\n  LIGHT: 'light',\r\n  DARK: 'dark',\r\n}\r\n\r\nexport type PopperEffect = typeof effects[number]\r\nexport type PopperTrigger = typeof triggers[number]\r\nexport type Measurable = {\r\n  getBoundingClientRect: () => DOMRect\r\n}\r\n\r\ntype ClassObjectType = Record<string, any>\r\ntype ClassType = string | ClassObjectType | ClassType[]\r\n\r\nexport const usePopperArrowProps = buildProps({\r\n  arrowOffset: {\r\n    type: Number,\r\n    default: 5,\r\n  },\r\n})\r\n\r\nexport const usePopperCoreConfigProps = buildProps({\r\n  boundariesPadding: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  fallbackPlacements: {\r\n    type: definePropType<Placement[]>(Array),\r\n    default: () => [],\r\n  },\r\n  gpuAcceleration: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  verticalOffset: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  offset: {\r\n    type: Number,\r\n    default: 12,\r\n  },\r\n  placement: {\r\n    type: String,\r\n    values: placements,\r\n    default: 'bottom',\r\n  },\r\n  popperOptions: {\r\n    type: definePropType<Partial<Options>>(Object),\r\n    default: () => ({}),\r\n  },\r\n  strategy: {\r\n    type: String,\r\n    values: ['fixed', 'absolute'] as const,\r\n    default: 'absolute',\r\n  },\r\n} as const)\r\n\r\nexport const usePopperProps = buildProps({\r\n  autoClose: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  cutoff: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n} as const)\r\n\r\nexport const usePopperContentProps = buildProps({\r\n  ...usePopperCoreConfigProps,\r\n  style: { type: definePropType<StyleValue>([String, Array, Object]) },\r\n  className: { type: definePropType<ClassType>([String, Array, Object]) },\r\n  effect: {\r\n    type: String,\r\n    default: 'dark',\r\n  },\r\n  enterable: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  pure: {\r\n    type: Boolean,\r\n  },\r\n  popperClass: {\r\n    type: definePropType<ClassType>([String, Array, Object]),\r\n  },\r\n  popperStyle: {\r\n    type: definePropType<StyleValue>([String, Array, Object]),\r\n  },\r\n  referenceEl: {\r\n    type: definePropType<HTMLElement>(Object),\r\n  },\r\n  stopPopperMouseEvent: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  zIndex: Number,\r\n  maxWidth: {\r\n    type: [String, Number],\r\n    default: ''\r\n  }\r\n} as const)\r\n\r\nexport const usePopperTriggerProps = buildProps({\r\n  virtualRef: { type: definePropType<Measurable>(Object) },\r\n  virtualTriggering: { type: Boolean },\r\n})\r\n\r\nexport type UsePopperProps = ExtractPropTypes<typeof usePopperProps>\r\nexport type UsePopperCoreConfigProps = ExtractPropTypes<\r\n  typeof usePopperCoreConfigProps\r\n>\r\n\r\nexport type PopperInstance = InstanceType<typeof Popper>\r\n"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,MAAC,MAAM,GAAG;AACtB,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE;AACU,MAAC,mBAAmB,GAAG,UAAU,CAAC;AAC9C,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC,EAAE;AACS,MAAC,wBAAwB,GAAG,UAAU,CAAC;AACnD,EAAE,iBAAiB,EAAE;AACrB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,QAAQ;AACrB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AACjC,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,qBAAqB,GAAG,UAAU,CAAC;AAChD,EAAE,GAAG,wBAAwB;AAC7B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1D,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AAC9D,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,OAAO;AACjB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,qBAAqB,GAAG,UAAU,CAAC;AAChD,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE;AAC9C,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC;;;;"}