Files
simpleidp/wwwroot/lib/popper.js/esm/modifiers/arrow.min.js
2025-08-19 16:58:51 +02:00

1 line
1.7 KiB
JavaScript

import getBasePlacement from"../utils/getBasePlacement.js";import getLayoutRect from"../dom-utils/getLayoutRect.js";import contains from"../dom-utils/contains.js";import getOffsetParent from"../dom-utils/getOffsetParent.js";import getMainAxisFromPlacement from"../utils/getMainAxisFromPlacement.js";import{within}from"../utils/within.js";import mergePaddingObject from"../utils/mergePaddingObject.js";import expandToHashMap from"../utils/expandToHashMap.js";import{left,right,basePlacements,top,bottom}from"../enums.js";import{isHTMLElement}from"../dom-utils/instanceOf.js";var toPaddingObject=function(e,t){return e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,mergePaddingObject("number"!=typeof e?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,r,o,n,i=e.state,s=e.name,e=e.options,a=i.elements.arrow,m=i.modifiersData.popperOffsets,f=getBasePlacement(i.placement),p=getMainAxisFromPlacement(f),f=0<=[left,right].indexOf(f)?"height":"width";a&&m&&(e=toPaddingObject(e.padding,i),t=getLayoutRect(a),o="y"===p?top:left,n="y"===p?bottom:right,r=i.rects.reference[f]+i.rects.reference[p]-m[p]-i.rects.popper[f],m=m[p]-i.rects.reference[p],a=(a=getOffsetParent(a))?"y"===p?a.clientHeight||0:a.clientWidth||0:0,o=e[o],e=a-t[f]-e[n],n=a/2-t[f]/2+(r/2-m/2),a=within(o,n,e),i.modifiersData[s]=((t={})[p]=a,t.centerOffset=a-n,t))}function effect(e){var t=e.state,e=e.options.element,e=void 0===e?"[data-popper-arrow]":e;null!=e&&("string"!=typeof e||(e=t.elements.popper.querySelector(e)))&&contains(t.elements.popper,e)&&(t.elements.arrow=e)}export default{name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};