@popperjs/core
Version:
Tooltip and Popover Positioning Engine
7 lines (5 loc) • 8.94 kB
JavaScript
/**
* @popperjs/core v2.10.2 - MIT License
*/
;!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Popper={})}(this,(function(t){function e(t,e){return{width:(t=t.getBoundingClientRect()).width/1,height:t.height/1,top:t.top/1,right:t.right/1,bottom:t.bottom/1,left:t.left/1,x:t.left/1,y:t.top/1}}function n(t){return null==t?window:"[object Window]"!==t.toString()?(t=t.ownerDocument)&&t.defaultView||window:t}function o(t){return{scrollLeft:(t=n(t)).pageXOffset,scrollTop:t.pageYOffset}}function i(t){return t instanceof n(t).Element||t instanceof Element}function r(t){return t instanceof n(t).HTMLElement||t instanceof HTMLElement}function f(t){return"undefined"!=typeof ShadowRoot&&(t instanceof n(t).ShadowRoot||t instanceof ShadowRoot)}function c(t){return t?(t.nodeName||"").toLowerCase():null}function a(t){return((i(t)?t.ownerDocument:t.document)||window.document).documentElement}function s(t){return e(a(t)).left+o(t).scrollLeft}function l(t){return n(t).getComputedStyle(t)}function u(t){return t=l(t),/auto|scroll|overlay|hidden/.test(t.overflow+t.overflowY+t.overflowX)}function d(t,i,f){void 0===f&&(f=!1);var l=r(i);r(i)&&i.getBoundingClientRect();var d=a(i);t=e(t);var p={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(l||!l&&!f)&&(("body"!==c(i)||u(d))&&(p=i!==n(i)&&r(i)?{scrollLeft:i.scrollLeft,scrollTop:i.scrollTop}:o(i)),r(i)?((h=e(i)).x+=i.clientLeft,h.y+=i.clientTop):d&&(h.x=s(d))),{x:t.left+p.scrollLeft-h.x,y:t.top+p.scrollTop-h.y,width:t.width,height:t.height}}function p(t){var n=e(t),o=t.offsetWidth,i=t.offsetHeight;return 1>=Math.abs(n.width-o)&&(o=n.width),1>=Math.abs(n.height-i)&&(i=n.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:i}}function h(t){return"html"===c(t)?t:t.assignedSlot||t.parentNode||(f(t)?t.host:null)||a(t)}function m(t){return 0<=["html","body","#document"].indexOf(c(t))?t.ownerDocument.body:r(t)&&u(t)?t:m(h(t))}function g(t,e){var o;void 0===e&&(e=[]);var i=m(t);return t=i===(null==(o=t.ownerDocument)?void 0:o.body),o=n(i),i=t?[o].concat(o.visualViewport||[],u(i)?i:[]):i,e=e.concat(i),t?e:e.concat(g(h(i)))}function v(t){return r(t)&&"fixed"!==l(t).position?t.offsetParent:null}function b(t){for(var e=n(t),o=v(t);o&&0<=["table","td","th"].indexOf(c(o))&&"static"===l(o).position;)o=v(o);if(o&&("html"===c(o)||"body"===c(o)&&"static"===l(o).position))return e;if(!o)t:{if(o=-1!==navigator.userAgent.toLowerCase().indexOf("firefox"),-1===navigator.userAgent.indexOf("Trident")||!r(t)||"fixed"!==l(t).position)for(t=h(t);r(t)&&0>["html","body"].indexOf(c(t));){var i=l(t);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||o&&"filter"===i.willChange||o&&i.filter&&"none"!==i.filter){o=t;break t}t=t.parentNode}o=null}return o||e}function y(t){function e(t){o.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){o.has(t)||(t=n.get(t))&&e(t)})),i.push(t)}var n=new Map,o=new Set,i=[];return t.forEach((function(t){n.set(t.name,t)})),t.forEach((function(t){o.has(t.name)||e(t)})),i}function w(t){var e;return function(){return e||(e=new Promise((function(n){Promise.resolve().then((function(){e=void 0,n(t())}))}))),e}}function x(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function O(t,i){if("viewport"===i){i=n(t);var f=a(t);i=i.visualViewport;var c=f.clientWidth;f=f.clientHeight;var u=0,d=0;i&&(c=i.width,f=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(u=i.offsetLeft,d=i.offsetTop)),t=x(t={width:c,height:f,x:u+s(t),y:d})}else r(i)?((t=e(i)).top+=i.clientTop,t.left+=i.clientLeft,t.bottom=t.top+i.clientHeight,t.right=t.left+i.clientWidth,t.width=i.clientWidth,t.height=i.clientHeight,t.x=t.left,t.y=t.top):(d=a(t),t=a(d),c=o(d),i=null==(f=d.ownerDocument)?void 0:f.body,f=W(t.scrollWidth,t.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),u=W(t.scrollHeight,t.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),d=-c.scrollLeft+s(d),c=-c.scrollTop,"rtl"===l(i||t).direction&&(d+=W(t.clientWidth,i?i.clientWidth:0)-f),t=x({width:f,height:u,x:d,y:c}));return t}function M(t,e,n){return e="clippingParents"===e?function(t){var e=g(h(t)),n=0<=["absolute","fixed"].indexOf(l(t).position)&&r(t)?b(t):t;return i(n)?e.filter((function(t){var e;if(e=i(t))t:if(e=n.getRootNode&&n.getRootNode(),t.contains(n))e=!0;else{if(e&&f(e)){e=n;do{if(e&&t.isSameNode(e)){e=!0;break t}e=e.parentNode||e.host}while(e)}e=!1}return e&&"body"!==c(t)})):[]}(t):[].concat(e),(n=(n=[].concat(e,[n])).reduce((function(e,n){return n=O(t,n),e.top=W(n.top,e.top),e.right=H(n.right,e.right),e.bottom=H(n.bottom,e.bottom),e.left=W(n.left,e.left),e}),O(t,n[0]))).width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function E(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function L(t){void 0===t&&(t={});var e=t.defaultModifiers,n=void 0===e?[]:e,o=void 0===(t=t.defaultOptions)?P:t;return function(t,e,r){function f(){a.forEach((function(t){return t()})),a=[]}void 0===r&&(r=o);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},P,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},a=[],s=!1,l={state:c,setOptions:function(r){return r="function"==typeof r?r(c.options):r,f(),c.options=Object.assign({},o,c.options,r),c.scrollParents={reference:i(t)?g(t):t.contextElement?g(t.contextElement):[],popper:g(e)},r=function(t){var e=y(t);return j.reduce((function(t,n){return t.concat(e.filter((function(t){return t.phase===n})))}),[])}(function(t){var e=t.reduce((function(t,e){var n=t[e.name];return t[e.name]=n?Object.assign({},n,e,{options:Object.assign({},n.options,e.options),data:Object.assign({},n.data,e.data)}):e,t}),{});return Object.keys(e).map((function(t){return e[t]}))}([].concat(n,c.options.modifiers))),c.orderedModifiers=r.filter((function(t){return t.enabled})),c.orderedModifiers.forEach((function(t){var e=t.name,n=t.options;n=void 0===n?{}:n,"function"==typeof(t=t.effect)&&(e=t({state:c,name:e,instance:l,options:n}),a.push(e||function(){}))})),l.update()},forceUpdate:function(){if(!s){var t=c.elements,e=t.reference;if(E(e,t=t.popper))for(c.rects={reference:d(e,b(t),"fixed"===c.options.strategy),popper:p(t)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach((function(t){return c.modifiersData[t.name]=Object.assign({},t.data)})),e=0;e<c.orderedModifiers.length;e++)if(!0===c.reset)c.reset=!1,e=-1;else{var n=c.orderedModifiers[e];t=n.fn;var o=n.options;o=void 0===o?{}:o,n=n.name,"function"==typeof t&&(c=t({state:c,options:o,name:n,instance:l})||c)}}},update:w((function(){return new Promise((function(t){l.forceUpdate(),t(c)}))})),destroy:function(){f(),s=!0}};return E(t,e)?(l.setOptions(r).then((function(t){!s&&r.onFirstUpdate&&r.onFirstUpdate(t)})),l):l}}var T=["top","bottom","right","left"],j="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),W=Math.max,H=Math.min,P={placement:"bottom",modifiers:[],strategy:"absolute"},R=L();t.createPopper=R,t.detectOverflow=function(t,n){void 0===n&&(n={});var o=n;n=void 0===(n=o.placement)?t.placement:n;var r=o.boundary,f=void 0===r?"clippingParents":r,c=void 0===(r=o.rootBoundary)?"viewport":r;r=void 0===(r=o.elementContext)?"popper":r;var s=o.altBoundary,l=void 0!==s&&s;o=void 0===(o=o.padding)?0:o,o=Object.assign({},{top:0,right:0,bottom:0,left:0},"number"!=typeof o?o:function(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}(o,T)),s=t.rects.popper,f=M(i(l=t.elements[l?"popper"===r?"reference":"popper":r])?l:l.contextElement||a(t.elements.popper),f,c),l=function(t){var e=t.reference,n=t.element,o=(t=t.placement)?t.split("-")[0]:null;t=t?t.split("-")[1]:null;var i=e.x+e.width/2-n.width/2,r=e.y+e.height/2-n.height/2;switch(o){case"top":i={x:i,y:e.y-n.height};break;case"bottom":i={x:i,y:e.y+e.height};break;case"right":i={x:e.x+e.width,y:r};break;case"left":i={x:e.x-n.width,y:r};break;default:i={x:e.x,y:e.y}}if(null!=(o=o?0<=["top","bottom"].indexOf(o)?"x":"y":null))switch(r="y"===o?"height":"width",t){case"start":i[o]-=e[r]/2-n[r]/2;break;case"end":i[o]+=e[r]/2-n[r]/2}return i}({reference:c=e(t.elements.reference),element:s,strategy:"absolute",placement:n}),s=x(Object.assign({},s,l)),c="popper"===r?s:c;var u={top:f.top-c.top+o.top,bottom:c.bottom-f.bottom+o.bottom,left:f.left-c.left+o.left,right:c.right-f.right+o.right};if(t=t.modifiersData.offset,"popper"===r&&t){var d=t[n];Object.keys(u).forEach((function(t){var e=0<=["right","bottom"].indexOf(t)?1:-1,n=0<=["top","bottom"].indexOf(t)?"y":"x";u[t]+=d[n]*e}))}return u},t.popperGenerator=L,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=popper-base.min.js.map