rb-tippyjs-react
Version:
React component for Tippy.js
3 lines (2 loc) • 6.57 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("tippy.js"),require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","tippy.js","react","react-dom"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).Tippy={},e.tippy,e.React,e.ReactDOM)}(this,(function(e,n,t,r){"use strict";function i(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;t[r]=e[r]}return t}var o="undefined"!=typeof window&&"undefined"!=typeof document;function c(e,n){e&&("function"==typeof e?e(n):e.hasOwnProperty("current")&&(e.current=n))}function s(){return o&&document.createElement("div")}function a(e,n){if(e===n)return!0;if("object"==typeof e&&null!=e&&"object"==typeof n&&null!=n){if(Object.keys(e).length!==Object.keys(n).length)return!1;for(var t in e){if(!n.hasOwnProperty(t))return!1;if(!a(e[t],n[t]))return!1}return!0}return!1}function u(e){var n=[];return e.forEach((function(e){n.find((function(n){return a(e,n)}))||n.push(e)})),n}function p(e,n){var t,r;return Object.assign({},n,{popperOptions:Object.assign({},e.popperOptions,n.popperOptions,{modifiers:u([].concat((null==(t=e.popperOptions)?void 0:t.modifiers)||[],(null==(r=n.popperOptions)?void 0:r.modifiers)||[]))})})}var f=o?t.useLayoutEffect:t.useEffect;function l(e){var n=t.useRef();return n.current||(n.current="function"==typeof e?e():e),n.current}function d(e,n,t){t.split(/\s+/).forEach((function(t){t&&e.classList[n](t)}))}var v={name:"className",defaultValue:"",fn:function(e){var n=e.popper.firstElementChild,t=function(){var n;return!(null==(n=e.props.render)||!n.$$tippy)};function r(){e.props.className&&!t()||d(n,"add",e.props.className)}return{onCreate:r,onBeforeUpdate:function(){t()&&d(n,"remove",e.props.className)},onAfterUpdate:r}}},h=["children","content","visible","singleton","render","reference","disabled","ignoreAttributes","__source","__self"];function m(e){return function(n){var o=n.children,a=n.content,u=n.visible,d=n.singleton,m=n.render,g=n.reference,b=n.disabled,y=void 0!==b&&b,O=n.ignoreAttributes,j=void 0===O||O;n.__source,n.__self;var S=i(n,h),E=void 0!==u,P=void 0!==d,$=t.useState(!1),_=$[0],w=$[1],C=t.useState({}),D=C[0],R=C[1],k=t.useState(),H=k[0],I=k[1],T=l((function(){return{container:s(),renders:1}})),q=Object.assign({ignoreAttributes:j},S,{content:T.container});E&&(q.trigger="manual",q.hideOnClick=!1),P&&(y=!0);var x=q,A=q.plugins||[];m&&(x=Object.assign({},q,{plugins:P&&null!=d.data?[].concat(A,[{fn:function(){return{onTrigger:function(e,n){var t=d.data.children.find((function(e){return e.instance.reference===n.currentTarget}));e.state.$$activeSingletonInstance=t.instance,I(t.content)}}}}]):A,render:function(){return{popper:T.container}}}));var M=[g].concat(o?[o.type]:[]);return f((function(){var n=g;g&&g.hasOwnProperty("current")&&(n=g.current);var t=e(n||T.ref||s(),Object.assign({},x,{plugins:[v].concat(q.plugins||[])}));return T.instance=t,y&&t.disable(),u&&t.show(),P&&d.hook({instance:t,content:a,props:x,setSingletonContent:I}),w(!0),function(){t.destroy(),null==d||d.cleanup(t)}}),M),f((function(){var e;if(1!==T.renders){var n=T.instance;n.setProps(p(n.props,x)),null==(e=n.popperInstance)||e.forceUpdate(),y?n.disable():n.enable(),E&&(u?n.show():n.hide()),P&&d.hook({instance:n,content:a,props:x,setSingletonContent:I})}else T.renders++})),f((function(){var e;if(m){var n=T.instance;n.setProps({popperOptions:Object.assign({},n.props.popperOptions,{modifiers:[].concat(((null==(e=n.props.popperOptions)?void 0:e.modifiers)||[]).filter((function(e){return"$$tippyReact"!==e.name})),[{name:"$$tippyReact",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var n,t=e.state,r=null==(n=t.modifiersData)?void 0:n.hide;D.placement===t.placement&&D.referenceHidden===(null==r?void 0:r.isReferenceHidden)&&D.escaped===(null==r?void 0:r.hasPopperEscaped)||R({placement:t.placement,referenceHidden:null==r?void 0:r.isReferenceHidden,escaped:null==r?void 0:r.hasPopperEscaped}),t.attributes.popper={}}}])})})}}),[D.placement,D.referenceHidden,D.escaped].concat(M)),t.createElement(t.Fragment,null,o?t.cloneElement(o,{ref:function(e){T.ref=e,o.props&&o.props.ref&&c(o.props.ref,e)}}):null,_&&r.createPortal(m?m(function(e){var n={"data-placement":e.placement};return e.referenceHidden&&(n["data-reference-hidden"]=""),e.escaped&&(n["data-escaped"]=""),n}(D),H,T.instance):a,T.container))}}var g=["content"];function b(e){return function(n){var r=void 0===n?{}:n,o=r.disabled,c=void 0!==o&&o,s=r.overrides,a=void 0===s?[]:s,u=t.useState(!1),d=u[0],h=u[1],m=l({children:[],renders:1});return f((function(){if(d){var n=m.children,t=m.sourceData;if(t){var r=e(n.map((function(e){return e.instance})),Object.assign({},t.props,{popperOptions:t.instance.props.popperOptions,overrides:a,plugins:[v].concat(t.props.plugins||[])}));return m.instance=r,c&&r.disable(),function(){r.destroy(),m.children=n.filter((function(e){return!e.instance.state.isDestroyed}))}}}else h(!0)}),[d]),f((function(){if(d)if(1!==m.renders){var e=m.children,n=m.instance,t=m.sourceData;if(n&&t){var r=t.props;r.content;var o=i(r,g);n.setProps(p(n.props,Object.assign({},o,{overrides:a}))),n.setInstances(e.map((function(e){return e.instance}))),c?n.disable():n.enable()}}else m.renders++})),t.useMemo((function(){return[{data:m,hook:function(e){m.sourceData=e,m.setSingletonContent=e.setSingletonContent},cleanup:function(){m.sourceData=null}},{hook:function(e){var n,t;m.children=m.children.filter((function(n){var t=n.instance;return e.instance!==t})),m.children.push(e),null!=(n=m.instance)&&n.state.isMounted&&(null==(t=m.instance)?void 0:t.state.$$activeSingletonInstance)===e.instance&&(null==m.setSingletonContent||m.setSingletonContent(e.content)),m.instance&&!m.instance.state.isDestroyed&&m.instance.setInstances(m.children.map((function(e){return e.instance})))},cleanup:function(e){m.children=m.children.filter((function(n){return n.instance!==e})),m.instance&&!m.instance.state.isDestroyed&&m.instance.setInstances(m.children.map((function(e){return e.instance})))}}]}),[])}}var y=["children"],O=function(e,n){return t.forwardRef((function(r,o){var s=r.children,a=i(r,y);return t.createElement(e,Object.assign({},n,a),s?t.cloneElement(s,{ref:function(e){o&&("function"==typeof o?o(e):o.current=e),s.props&&s.props.ref&&c(s.props.ref,e)}}):null)}))},j=b(n.createSingleton),S=O(m(n));e.tippy=n,e.default=S,e.useSingleton=j,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=tippy-react.umd.min.js.map