element-plus
Version:
A Component Library for Vue 3
1 lines • 3.21 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/popper/src/utils.ts"],"sourcesContent":["import { unrefElement } from '@vueuse/core'\nimport { isClient } from '@element-plus/utils'\n\nimport type { ComponentPublicInstance } from 'vue'\nimport type { MaybeRef } from '@vueuse/core'\nimport type { Modifier } from '@popperjs/core'\nimport type { Measurable } from './constants'\nimport type { PopperCoreConfigProps } from './content'\n\nexport const buildPopperOptions = (\n props: PopperCoreConfigProps,\n modifiers: Modifier<any, any>[] = []\n) => {\n const { placement, strategy, popperOptions } = props\n const options = {\n placement,\n strategy,\n ...popperOptions,\n modifiers: [...genModifiers(props), ...modifiers],\n }\n\n deriveExtraModifiers(options, popperOptions?.modifiers)\n return options\n}\n\nexport const unwrapMeasurableEl = (\n $el: MaybeRef<Measurable | undefined | ComponentPublicInstance>\n) => {\n if (!isClient) return\n return unrefElement($el as HTMLElement)\n}\n\nfunction genModifiers(options: PopperCoreConfigProps) {\n const { offset, gpuAcceleration, fallbackPlacements } = options\n return [\n {\n name: 'offset',\n options: {\n offset: [0, offset ?? 12],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n padding: {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n },\n },\n {\n name: 'flip',\n options: {\n padding: 5,\n fallbackPlacements,\n },\n },\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration,\n },\n },\n ]\n}\n\nfunction deriveExtraModifiers(\n options: any,\n modifiers: NonNullable<PopperCoreConfigProps['popperOptions']>['modifiers']\n) {\n if (modifiers) {\n options.modifiers = [...options.modifiers, ...(modifiers ?? [])]\n }\n}\n"],"names":[],"mappings":";;AASO,MAAM,kBAAA,GAAqB,CAChC,KAAA,EACA,SAAA,GAAkC,EAAC,KAChC;AACH,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,aAAA,EAAc,GAAI,KAAA;AAC/C,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG,aAAA;AAAA,IACH,WAAW,CAAC,GAAG,aAAa,KAAK,CAAA,EAAG,GAAG,SAAS;AAAA,GAClD;AAEA,EAAA,oBAAA,CAAqB,OAAA,EAAS,+CAAe,SAAS,CAAA;AACtD,EAAA,OAAO,OAAA;AACT;AAEO,MAAM,kBAAA,GAAqB,CAChC,GAAA,KACG;AACH,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,OAAO,aAAa,GAAkB,CAAA;AACxC;AAEA,SAAS,aAAa,OAAA,EAAgC;AACpD,EAAA,MAAM,EAAE,MAAA,EAAQ,eAAA,EAAiB,kBAAA,EAAmB,GAAI,OAAA;AACxD,EAAA,OAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,CAAC,CAAA,EAAG,MAAA,IAAA,IAAA,GAAA,MAAA,GAAU,EAAE;AAAA;AAC1B,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,iBAAA;AAAA,MACN,OAAA,EAAS;AAAA,QACP,OAAA,EAAS;AAAA,UACP,GAAA,EAAK,CAAA;AAAA,UACL,MAAA,EAAQ,CAAA;AAAA,UACR,IAAA,EAAM,CAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,CAAA;AAAA,QACT;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,OAAA,EAAS;AAAA,QACP;AAAA;AACF;AACF,GACF;AACF;AAEA,SAAS,oBAAA,CACP,SACA,SAAA,EACA;AACA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,OAAA,CAAQ,SAAA,GAAY,CAAC,GAAG,OAAA,CAAQ,WAAW,GAAI,SAAA,IAAA,IAAA,GAAA,SAAA,GAAa,EAAG,CAAA;AAAA,EACjE;AACF;;;;"}