react-tooltip
Advanced tools
Comparing version 5.17.0 to 5.18.0
@@ -108,2 +108,3 @@ import React, { ElementType, ReactNode, CSSProperties, PropsWithChildren } from 'react'; | ||
border?: CSSProperties['border'] | ||
opacity?: CSSProperties['opacity'] | ||
setIsOpen?: (value: boolean) => void | ||
@@ -156,3 +157,3 @@ afterShow?: () => void | ||
declare const TooltipController: ({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant, place, offset, wrapper, children, events, openOnClick, positionStrategy, middlewares, delayShow, delayHide, float, hidden, noArrow, clickable, closeOnEsc, closeOnScroll, closeOnResize, style, position, isOpen, border, setIsOpen, afterShow, afterHide, }: ITooltipController) => JSX.Element; | ||
declare const TooltipController: ({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant, place, offset, wrapper, children, events, openOnClick, positionStrategy, middlewares, delayShow, delayHide, float, hidden, noArrow, clickable, closeOnEsc, closeOnScroll, closeOnResize, style, position, isOpen, border, opacity, setIsOpen, afterShow, afterHide, }: ITooltipController) => JSX.Element; | ||
@@ -159,0 +160,0 @@ /** |
@@ -312,3 +312,3 @@ | ||
// props handled by controller | ||
content, contentWrapperRef, isOpen, setIsOpen, activeAnchor, setActiveAnchor, border, }) => { | ||
content, contentWrapperRef, isOpen, setIsOpen, activeAnchor, setActiveAnchor, border, opacity, }) => { | ||
const tooltipRef = React.useRef(null); | ||
@@ -812,3 +812,7 @@ const tooltipArrowRef = React.useRef(null); | ||
[coreStyles['clickable']]: clickable, | ||
}), style: { ...externalStyles, ...inlineStyles }, ref: tooltipRef }, | ||
}), style: { | ||
...externalStyles, | ||
...inlineStyles, | ||
opacity: opacity !== undefined && canShow ? opacity : undefined, | ||
}, ref: tooltipRef }, | ||
content, | ||
@@ -829,3 +833,3 @@ React__default["default"].createElement(WrapperElement, { className: classNames__default["default"]('react-tooltip-arrow', coreStyles['arrow'], styles['arrow'], classNameArrow, { | ||
const TooltipController = ({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant = 'dark', place = 'top', offset = 10, wrapper = 'div', children = null, events = ['hover'], openOnClick = false, positionStrategy = 'absolute', middlewares, delayShow = 0, delayHide = 0, float = false, hidden = false, noArrow = false, clickable = false, closeOnEsc = false, closeOnScroll = false, closeOnResize = false, style, position, isOpen, border, setIsOpen, afterShow, afterHide, }) => { | ||
const TooltipController = ({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant = 'dark', place = 'top', offset = 10, wrapper = 'div', children = null, events = ['hover'], openOnClick = false, positionStrategy = 'absolute', middlewares, delayShow = 0, delayHide = 0, float = false, hidden = false, noArrow = false, clickable = false, closeOnEsc = false, closeOnScroll = false, closeOnResize = false, style, position, isOpen, border, opacity, setIsOpen, afterShow, afterHide, }) => { | ||
const [tooltipContent, setTooltipContent] = React.useState(content); | ||
@@ -1008,2 +1012,10 @@ const [tooltipHtml, setTooltipHtml] = React.useState(html); | ||
} | ||
if (style === null || style === void 0 ? void 0 : style.opacity) { | ||
// eslint-disable-next-line no-console | ||
console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.'); | ||
} | ||
if (opacity && !CSS.supports('opacity', `${opacity}`)) { | ||
// eslint-disable-next-line no-console | ||
console.warn(`[react-tooltip] "${opacity}" is not a valid \`opacity\`.`); | ||
} | ||
}, []); | ||
@@ -1055,2 +1067,3 @@ /** | ||
border, | ||
opacity, | ||
setIsOpen, | ||
@@ -1057,0 +1070,0 @@ afterShow, |
@@ -7,3 +7,3 @@ /* | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("classnames"),require("@floating-ui/dom")):"function"==typeof define&&define.amd?define(["exports","react","classnames","@floating-ui/dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactTooltip={},e.React,e.classNames,e.FloatingUIDOM)}(this,(function(e,t,r,o){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=n(t),s=n(r);const c="react-tooltip-core-styles",a="react-tooltip-base-styles";function i({css:e,id:t=a,type:r="base",ref:o}){var n,l;if("core"===r&&"undefined"!=typeof process&&(null===(n=null===process||void 0===process?void 0:process.env)||void 0===n?void 0:n.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("core"!==r&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===r&&(t=c),o||(o={});const{insertAt:s}=o;if(!e||"undefined"==typeof document||document.getElementById(t))return;const i=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.id=t,u.type="text/css","top"===s&&i.firstChild?i.insertBefore(u,i.firstChild):i.appendChild(u),u.styleSheet?u.styleSheet.cssText=e:u.appendChild(document.createTextNode(e))}const u=(e,t,r)=>{let o=null;return function(...n){const l=()=>{o=null,r||e.apply(this,n)};r&&!o&&(e.apply(this,n),o=setTimeout(l,t)),r||(o&&clearTimeout(o),o=setTimeout(l,t))}},d="DEFAULT_TOOLTIP_ID",f={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},p={getTooltipData:()=>f},v=t.createContext(p);function m(e=d){return t.useContext(v).getTooltipData(e)}const y="undefined"!=typeof window?t.useLayoutEffect:t.useEffect,h=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const r=t.getPropertyValue(e);return"auto"===r||"scroll"===r}))},w=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(h(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},E=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:r=null,place:n="top",offset:l=10,strategy:s="absolute",middlewares:c=[o.offset(Number(l)),o.flip(),o.shift({padding:5})],border:a})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const i=c;return r?(i.push(o.arrow({element:r,padding:5})),o.computePosition(e,t,{placement:n,strategy:s,middleware:i}).then((({x:e,y:t,placement:r,middlewareData:o})=>{var n,l;const s={left:`${e}px`,top:`${t}px`,border:a},{x:c,y:i}=null!==(n=o.arrow)&&void 0!==n?n:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[r.split("-")[0]])&&void 0!==l?l:"bottom",d=a&&{top:{borderBottom:a,borderRight:a},right:{borderBottom:a,borderLeft:a},bottom:{borderTop:a,borderLeft:a},left:{borderTop:a,borderRight:a}}[r.split("-")[0]];let f=0;if(a){const e=`${a}`.match(/(\d+)px/);f=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:s,tooltipArrowStyles:{left:null!=c?`${c}px`:"",top:null!=i?`${i}px`:"",right:"",bottom:"",...d,[u]:`-${4+f}px`},place:r}}))):o.computePosition(e,t,{placement:"bottom",strategy:s,middleware:i}).then((({x:e,y:t,placement:r})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:r})))};var S="core-styles-module_tooltip__3vRRp",b="core-styles-module_fixed__pcSol",g="core-styles-module_arrow__cvMwQ",_="core-styles-module_noArrow__xock6",T="core-styles-module_clickable__ZuTTB",A="core-styles-module_show__Nt9eE",R={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const O=({id:e,className:r,classNameArrow:o,variant:n="dark",anchorId:c,anchorSelect:a,place:i="top",offset:d=10,events:f=["hover"],openOnClick:p=!1,positionStrategy:v="absolute",middlewares:h,wrapper:O,delayShow:L=0,delayHide:x=0,float:N=!1,hidden:k=!1,noArrow:C=!1,clickable:$=!1,closeOnEsc:I=!1,closeOnScroll:B=!1,closeOnResize:j=!1,style:q,position:D,afterShow:H,afterHide:M,content:P,contentWrapperRef:W,isOpen:z,setIsOpen:F,activeAnchor:K,setActiveAnchor:U,border:X})=>{const Y=t.useRef(null),V=t.useRef(null),Z=t.useRef(null),G=t.useRef(null),[J,Q]=t.useState(i),[ee,te]=t.useState({}),[re,oe]=t.useState({}),[ne,le]=t.useState(!1),[se,ce]=t.useState(!1),ae=t.useRef(!1),ie=t.useRef(null),{anchorRefs:ue,setActiveAnchor:de}=m(e),fe=t.useRef(!1),[pe,ve]=t.useState([]),me=t.useRef(!1),ye=p||f.includes("click");y((()=>(me.current=!0,()=>{me.current=!1})),[]),t.useEffect((()=>{if(!ne){const e=setTimeout((()=>{ce(!1)}),150);return()=>{clearTimeout(e)}}return()=>null}),[ne]);const he=e=>{me.current&&(e&&ce(!0),setTimeout((()=>{me.current&&(null==F||F(e),void 0===z&&le(e))}),10))};t.useEffect((()=>{if(void 0===z)return()=>null;z&&ce(!0);const e=setTimeout((()=>{le(z)}),10);return()=>{clearTimeout(e)}}),[z]),t.useEffect((()=>{ne!==ae.current&&(ae.current=ne,ne?null==H||H():null==M||M())}),[ne]);const we=(e=x)=>{G.current&&clearTimeout(G.current),G.current=setTimeout((()=>{fe.current||he(!1)}),e)},Ee=e=>{var t;if(!e)return;const r=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==r?void 0:r.isConnected))return U(null),void de({current:null});L?(Z.current&&clearTimeout(Z.current),Z.current=setTimeout((()=>{he(!0)}),L)):he(!0),U(r),de({current:r}),G.current&&clearTimeout(G.current)},Se=()=>{$?we(x||100):x?we():he(!1),Z.current&&clearTimeout(Z.current)},be=({x:e,y:t})=>{E({place:i,offset:d,elementReference:{getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})},tooltipReference:Y.current,tooltipArrowReference:V.current,strategy:v,middlewares:h,border:X}).then((e=>{Object.keys(e.tooltipStyles).length&&te(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&oe(e.tooltipArrowStyles),Q(e.place)}))},ge=e=>{if(!e)return;const t=e,r={x:t.clientX,y:t.clientY};be(r),ie.current=r},_e=e=>{Ee(e),x&&we()},Te=e=>{var t;[document.querySelector(`[id='${c}']`),...pe].some((t=>null==t?void 0:t.contains(e.target)))||(null===(t=Y.current)||void 0===t?void 0:t.contains(e.target))||(he(!1),Z.current&&clearTimeout(Z.current))},Ae=u(Ee,50,!0),Re=u(Se,50,!0);t.useEffect((()=>{var e,t;const r=new Set(ue);pe.forEach((e=>{r.add({current:e})}));const o=document.querySelector(`[id='${c}']`);o&&r.add({current:o});const n=()=>{he(!1)},l=w(K),s=w(Y.current);B&&(window.addEventListener("scroll",n),null==l||l.addEventListener("scroll",n),null==s||s.addEventListener("scroll",n)),j&&window.addEventListener("resize",n);const a=e=>{"Escape"===e.key&&he(!1)};I&&window.addEventListener("keydown",a);const i=[];ye?(window.addEventListener("click",Te),i.push({event:"click",listener:_e})):(i.push({event:"mouseenter",listener:Ae},{event:"mouseleave",listener:Re},{event:"focus",listener:Ae},{event:"blur",listener:Re}),N&&i.push({event:"mousemove",listener:ge}));const u=()=>{fe.current=!0},d=()=>{fe.current=!1,Se()};return $&&!ye&&(null===(e=Y.current)||void 0===e||e.addEventListener("mouseenter",u),null===(t=Y.current)||void 0===t||t.addEventListener("mouseleave",d)),i.forEach((({event:e,listener:t})=>{r.forEach((r=>{var o;null===(o=r.current)||void 0===o||o.addEventListener(e,t)}))})),()=>{var e,t;B&&(window.removeEventListener("scroll",n),null==l||l.removeEventListener("scroll",n),null==s||s.removeEventListener("scroll",n)),j&&window.removeEventListener("resize",n),ye&&window.removeEventListener("click",Te),I&&window.removeEventListener("keydown",a),$&&!ye&&(null===(e=Y.current)||void 0===e||e.removeEventListener("mouseenter",u),null===(t=Y.current)||void 0===t||t.removeEventListener("mouseleave",d)),i.forEach((({event:e,listener:t})=>{r.forEach((r=>{var o;null===(o=r.current)||void 0===o||o.removeEventListener(e,t)}))}))}}),[se,ue,pe,I,f]),t.useEffect((()=>{let t=null!=a?a:"";!t&&e&&(t=`[data-tooltip-id='${e}']`);const r=new MutationObserver((r=>{const o=[];r.forEach((r=>{if("attributes"===r.type&&"data-tooltip-id"===r.attributeName){r.target.getAttribute("data-tooltip-id")===e&&o.push(r.target)}if("childList"===r.type&&(K&&[...r.removedNodes].some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,K))&&(ce(!1),he(!1),U(null),Z.current&&clearTimeout(Z.current),G.current&&clearTimeout(G.current),!0)})),t))try{const e=[...r.addedNodes].filter((e=>1===e.nodeType));o.push(...e.filter((e=>e.matches(t)))),o.push(...e.flatMap((e=>[...e.querySelectorAll(t)])))}catch(e){}})),o.length&&ve((e=>[...e,...o]))}));return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"]}),()=>{r.disconnect()}}),[e,a,K]);const Oe=()=>{D?be(D):N?ie.current&&be(ie.current):E({place:i,offset:d,elementReference:K,tooltipReference:Y.current,tooltipArrowReference:V.current,strategy:v,middlewares:h,border:X}).then((e=>{me.current&&(Object.keys(e.tooltipStyles).length&&te(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&oe(e.tooltipArrowStyles),Q(e.place))}))};t.useEffect((()=>{Oe()}),[ne,K,P,q,i,d,v,D]),t.useEffect((()=>{if(!(null==W?void 0:W.current))return()=>null;const e=new ResizeObserver((()=>{Oe()}));return e.observe(W.current),()=>{e.disconnect()}}),[P,null==W?void 0:W.current]),t.useEffect((()=>{var e;const t=document.querySelector(`[id='${c}']`),r=[...pe,t];K&&r.includes(K)||U(null!==(e=pe[0])&&void 0!==e?e:t)}),[c,pe,K]),t.useEffect((()=>()=>{Z.current&&clearTimeout(Z.current),G.current&&clearTimeout(G.current)}),[]),t.useEffect((()=>{let t=a;if(!t&&e&&(t=`[data-tooltip-id='${e}']`),t)try{const e=Array.from(document.querySelectorAll(t));ve(e)}catch(e){ve([])}}),[e,a]);const Le=!k&&P&&ne&&Object.keys(ee).length>0;return se?l.default.createElement(O,{id:e,role:"tooltip",className:s.default("react-tooltip",S,R.tooltip,R[n],r,`react-tooltip__place-${J}`,{[A]:Le,[b]:"fixed"===v,[T]:$}),style:{...q,...ee},ref:Y},P,l.default.createElement(O,{className:s.default("react-tooltip-arrow",g,R.arrow,o,{[_]:C}),style:re,ref:V})):null},L=({content:e})=>l.default.createElement("span",{dangerouslySetInnerHTML:{__html:e}});i({css:`:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9}.core-styles-module_tooltip__3vRRp{visibility:hidden;position:absolute;top:0;left:0;pointer-events:none;opacity:0;transition:opacity 0.3s ease-out;will-change:opacity,visibility}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{visibility:visible;opacity:var(--rt-opacity)}`,type:"core"}),i({css:` | ||
.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px;transform:rotate(45deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`}),e.Tooltip=({id:e,anchorId:r,anchorSelect:o,content:n,html:s,render:c,className:a,classNameArrow:i,variant:u="dark",place:d="top",offset:f=10,wrapper:p="div",children:v=null,events:y=["hover"],openOnClick:h=!1,positionStrategy:w="absolute",middlewares:E,delayShow:S=0,delayHide:b=0,float:g=!1,hidden:_=!1,noArrow:T=!1,clickable:A=!1,closeOnEsc:R=!1,closeOnScroll:x=!1,closeOnResize:N=!1,style:k,position:C,isOpen:$,border:I,setIsOpen:B,afterShow:j,afterHide:q})=>{const[D,H]=t.useState(n),[M,P]=t.useState(s),[W,z]=t.useState(d),[F,K]=t.useState(u),[U,X]=t.useState(f),[Y,V]=t.useState(S),[Z,G]=t.useState(b),[J,Q]=t.useState(g),[ee,te]=t.useState(_),[re,oe]=t.useState(p),[ne,le]=t.useState(y),[se,ce]=t.useState(w),[ae,ie]=t.useState(null),{anchorRefs:ue,activeAnchor:de}=m(e),fe=e=>null==e?void 0:e.getAttributeNames().reduce(((t,r)=>{var o;if(r.startsWith("data-tooltip-")){t[r.replace(/^data-tooltip-/,"")]=null!==(o=null==e?void 0:e.getAttribute(r))&&void 0!==o?o:null}return t}),{}),pe=e=>{const t={place:e=>{var t;z(null!==(t=e)&&void 0!==t?t:d)},content:e=>{H(null!=e?e:n)},html:e=>{P(null!=e?e:s)},variant:e=>{var t;K(null!==(t=e)&&void 0!==t?t:u)},offset:e=>{X(null===e?f:Number(e))},wrapper:e=>{var t;oe(null!==(t=e)&&void 0!==t?t:p)},events:e=>{const t=null==e?void 0:e.split(" ");le(null!=t?t:y)},"position-strategy":e=>{var t;ce(null!==(t=e)&&void 0!==t?t:w)},"delay-show":e=>{V(null===e?S:Number(e))},"delay-hide":e=>{G(null===e?b:Number(e))},float:e=>{Q(null===e?g:"true"===e)},hidden:e=>{te(null===e?_:"true"===e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,r])=>{var o;null===(o=t[e])||void 0===o||o.call(t,r)}))};t.useEffect((()=>{H(n)}),[n]),t.useEffect((()=>{P(s)}),[s]),t.useEffect((()=>{z(d)}),[d]),t.useEffect((()=>{K(u)}),[u]),t.useEffect((()=>{X(f)}),[f]),t.useEffect((()=>{V(S)}),[S]),t.useEffect((()=>{G(b)}),[b]),t.useEffect((()=>{Q(g)}),[g]),t.useEffect((()=>{te(_)}),[_]),t.useEffect((()=>{ce(w)}),[w]),t.useEffect((()=>{var t;const n=new Set(ue);let l=o;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{n.add({current:e})}))}catch(e){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const s=document.querySelector(`[id='${r}']`);if(s&&n.add({current:s}),!n.size)return()=>null;const c=null!==(t=null!=ae?ae:s)&&void 0!==t?t:de.current,a=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const r=fe(c);pe(r)}))})),i={attributes:!0,childList:!1,subtree:!1};if(c){const e=fe(c);pe(e),a.observe(c,i)}return()=>{a.disconnect()}}),[ue,de,ae,r,o]),t.useEffect((()=>{(null==k?void 0:k.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),I&&!CSS.supports("border",`${I}`)&&console.warn(`[react-tooltip] "${I}" is not a valid \`border\`.`)}),[]);let ve=v;const me=t.useRef(null);if(c){const e=c({content:null!=D?D:null,activeAnchor:ae});ve=e?l.default.createElement("div",{ref:me,className:"react-tooltip-content-wrapper"},e):null}else D&&(ve=D);M&&(ve=l.default.createElement(L,{content:M}));const ye={id:e,anchorId:r,anchorSelect:o,className:a,classNameArrow:i,content:ve,contentWrapperRef:me,place:W,variant:F,offset:U,wrapper:re,events:ne,openOnClick:h,positionStrategy:se,middlewares:E,delayShow:Y,delayHide:Z,float:J,hidden:ee,noArrow:T,clickable:A,closeOnEsc:R,closeOnScroll:x,closeOnResize:N,style:k,position:C,isOpen:$,border:I,setIsOpen:B,afterShow:j,afterHide:q,activeAnchor:ae,setActiveAnchor:e=>ie(e)};return l.default.createElement(O,{...ye})},e.TooltipProvider=({children:e})=>{const[r,o]=t.useState({[d]:new Set}),[n,s]=t.useState({[d]:{current:null}}),c=(e,...t)=>{o((r=>{var o;const n=null!==(o=r[e])&&void 0!==o?o:new Set;return t.forEach((e=>n.add(e))),{...r,[e]:new Set(n)}}))},a=(e,...t)=>{o((r=>{const o=r[e];return o?(t.forEach((e=>o.delete(e))),{...r}):r}))},i=t.useCallback(((e=d)=>{var t,o;return{anchorRefs:null!==(t=r[e])&&void 0!==t?t:new Set,activeAnchor:null!==(o=n[e])&&void 0!==o?o:{current:null},attach:(...t)=>c(e,...t),detach:(...t)=>a(e,...t),setActiveAnchor:t=>((e,t)=>{s((r=>{var o;return(null===(o=r[e])||void 0===o?void 0:o.current)===t.current?r:{...r,[e]:t}}))})(e,t)}}),[r,n,c,a]),u=t.useMemo((()=>({getTooltipData:i})),[i]);return l.default.createElement(v.Provider,{value:u},e)},e.TooltipWrapper=({tooltipId:e,children:r,className:o,place:n,content:c,html:a,variant:i,offset:u,wrapper:d,events:f,positionStrategy:p,delayShow:v,delayHide:y})=>{const{attach:h,detach:w}=m(e),E=t.useRef(null);return t.useEffect((()=>(h(E),()=>{w(E)})),[]),l.default.createElement("span",{ref:E,className:s.default("react-tooltip-wrapper",o),"data-tooltip-place":n,"data-tooltip-content":c,"data-tooltip-html":a,"data-tooltip-variant":i,"data-tooltip-offset":u,"data-tooltip-wrapper":d,"data-tooltip-events":f,"data-tooltip-position-strategy":p,"data-tooltip-delay-show":v,"data-tooltip-delay-hide":y},r)},e.removeStyle=function({type:e="base",id:t=a}={}){"core"===e&&(t=c);const r=document.getElementById(t);null==r||r.remove()},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("classnames"),require("@floating-ui/dom")):"function"==typeof define&&define.amd?define(["exports","react","classnames","@floating-ui/dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactTooltip={},e.React,e.classNames,e.FloatingUIDOM)}(this,(function(e,t,o,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=n(t),s=n(o);const c="react-tooltip-core-styles",a="react-tooltip-base-styles";function i({css:e,id:t=a,type:o="base",ref:r}){var n,l;if("core"===o&&"undefined"!=typeof process&&(null===(n=null===process||void 0===process?void 0:process.env)||void 0===n?void 0:n.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("core"!==o&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t=c),r||(r={});const{insertAt:s}=r;if(!e||"undefined"==typeof document||document.getElementById(t))return;const i=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.id=t,u.type="text/css","top"===s&&i.firstChild?i.insertBefore(u,i.firstChild):i.appendChild(u),u.styleSheet?u.styleSheet.cssText=e:u.appendChild(document.createTextNode(e))}const u=(e,t,o)=>{let r=null;return function(...n){const l=()=>{r=null,o||e.apply(this,n)};o&&!r&&(e.apply(this,n),r=setTimeout(l,t)),o||(r&&clearTimeout(r),r=setTimeout(l,t))}},d="DEFAULT_TOOLTIP_ID",p={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},f={getTooltipData:()=>p},v=t.createContext(f);function m(e=d){return t.useContext(v).getTooltipData(e)}const y="undefined"!=typeof window?t.useLayoutEffect:t.useEffect,h=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},w=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(h(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},S=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:n="top",offset:l=10,strategy:s="absolute",middlewares:c=[r.offset(Number(l)),r.flip(),r.shift({padding:5})],border:a})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const i=c;return o?(i.push(r.arrow({element:o,padding:5})),r.computePosition(e,t,{placement:n,strategy:s,middleware:i}).then((({x:e,y:t,placement:o,middlewareData:r})=>{var n,l;const s={left:`${e}px`,top:`${t}px`,border:a},{x:c,y:i}=null!==(n=r.arrow)&&void 0!==n?n:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==l?l:"bottom",d=a&&{top:{borderBottom:a,borderRight:a},right:{borderBottom:a,borderLeft:a},bottom:{borderTop:a,borderLeft:a},left:{borderTop:a,borderRight:a}}[o.split("-")[0]];let p=0;if(a){const e=`${a}`.match(/(\d+)px/);p=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:s,tooltipArrowStyles:{left:null!=c?`${c}px`:"",top:null!=i?`${i}px`:"",right:"",bottom:"",...d,[u]:`-${4+p}px`},place:o}}))):r.computePosition(e,t,{placement:"bottom",strategy:s,middleware:i}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})))};var E="core-styles-module_tooltip__3vRRp",b="core-styles-module_fixed__pcSol",g="core-styles-module_arrow__cvMwQ",_="core-styles-module_noArrow__xock6",T="core-styles-module_clickable__ZuTTB",A="core-styles-module_show__Nt9eE",R={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const O=({id:e,className:o,classNameArrow:r,variant:n="dark",anchorId:c,anchorSelect:a,place:i="top",offset:d=10,events:p=["hover"],openOnClick:f=!1,positionStrategy:v="absolute",middlewares:h,wrapper:O,delayShow:L=0,delayHide:x=0,float:N=!1,hidden:k=!1,noArrow:$=!1,clickable:C=!1,closeOnEsc:I=!1,closeOnScroll:B=!1,closeOnResize:D=!1,style:j,position:q,afterShow:H,afterHide:M,content:P,contentWrapperRef:W,isOpen:z,setIsOpen:U,activeAnchor:F,setActiveAnchor:K,border:X,opacity:Y})=>{const V=t.useRef(null),Z=t.useRef(null),G=t.useRef(null),J=t.useRef(null),[Q,ee]=t.useState(i),[te,oe]=t.useState({}),[re,ne]=t.useState({}),[le,se]=t.useState(!1),[ce,ae]=t.useState(!1),ie=t.useRef(!1),ue=t.useRef(null),{anchorRefs:de,setActiveAnchor:pe}=m(e),fe=t.useRef(!1),[ve,me]=t.useState([]),ye=t.useRef(!1),he=f||p.includes("click");y((()=>(ye.current=!0,()=>{ye.current=!1})),[]),t.useEffect((()=>{if(!le){const e=setTimeout((()=>{ae(!1)}),150);return()=>{clearTimeout(e)}}return()=>null}),[le]);const we=e=>{ye.current&&(e&&ae(!0),setTimeout((()=>{ye.current&&(null==U||U(e),void 0===z&&se(e))}),10))};t.useEffect((()=>{if(void 0===z)return()=>null;z&&ae(!0);const e=setTimeout((()=>{se(z)}),10);return()=>{clearTimeout(e)}}),[z]),t.useEffect((()=>{le!==ie.current&&(ie.current=le,le?null==H||H():null==M||M())}),[le]);const Se=(e=x)=>{J.current&&clearTimeout(J.current),J.current=setTimeout((()=>{fe.current||we(!1)}),e)},Ee=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return K(null),void pe({current:null});L?(G.current&&clearTimeout(G.current),G.current=setTimeout((()=>{we(!0)}),L)):we(!0),K(o),pe({current:o}),J.current&&clearTimeout(J.current)},be=()=>{C?Se(x||100):x?Se():we(!1),G.current&&clearTimeout(G.current)},ge=({x:e,y:t})=>{S({place:i,offset:d,elementReference:{getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})},tooltipReference:V.current,tooltipArrowReference:Z.current,strategy:v,middlewares:h,border:X}).then((e=>{Object.keys(e.tooltipStyles).length&&oe(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&ne(e.tooltipArrowStyles),ee(e.place)}))},_e=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};ge(o),ue.current=o},Te=e=>{Ee(e),x&&Se()},Ae=e=>{var t;[document.querySelector(`[id='${c}']`),...ve].some((t=>null==t?void 0:t.contains(e.target)))||(null===(t=V.current)||void 0===t?void 0:t.contains(e.target))||(we(!1),G.current&&clearTimeout(G.current))},Re=u(Ee,50,!0),Oe=u(be,50,!0);t.useEffect((()=>{var e,t;const o=new Set(de);ve.forEach((e=>{o.add({current:e})}));const r=document.querySelector(`[id='${c}']`);r&&o.add({current:r});const n=()=>{we(!1)},l=w(F),s=w(V.current);B&&(window.addEventListener("scroll",n),null==l||l.addEventListener("scroll",n),null==s||s.addEventListener("scroll",n)),D&&window.addEventListener("resize",n);const a=e=>{"Escape"===e.key&&we(!1)};I&&window.addEventListener("keydown",a);const i=[];he?(window.addEventListener("click",Ae),i.push({event:"click",listener:Te})):(i.push({event:"mouseenter",listener:Re},{event:"mouseleave",listener:Oe},{event:"focus",listener:Re},{event:"blur",listener:Oe}),N&&i.push({event:"mousemove",listener:_e}));const u=()=>{fe.current=!0},d=()=>{fe.current=!1,be()};return C&&!he&&(null===(e=V.current)||void 0===e||e.addEventListener("mouseenter",u),null===(t=V.current)||void 0===t||t.addEventListener("mouseleave",d)),i.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.addEventListener(e,t)}))})),()=>{var e,t;B&&(window.removeEventListener("scroll",n),null==l||l.removeEventListener("scroll",n),null==s||s.removeEventListener("scroll",n)),D&&window.removeEventListener("resize",n),he&&window.removeEventListener("click",Ae),I&&window.removeEventListener("keydown",a),C&&!he&&(null===(e=V.current)||void 0===e||e.removeEventListener("mouseenter",u),null===(t=V.current)||void 0===t||t.removeEventListener("mouseleave",d)),i.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.removeEventListener(e,t)}))}))}}),[ce,de,ve,I,p]),t.useEffect((()=>{let t=null!=a?a:"";!t&&e&&(t=`[data-tooltip-id='${e}']`);const o=new MutationObserver((o=>{const r=[];o.forEach((o=>{if("attributes"===o.type&&"data-tooltip-id"===o.attributeName){o.target.getAttribute("data-tooltip-id")===e&&r.push(o.target)}if("childList"===o.type&&(F&&[...o.removedNodes].some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,F))&&(ae(!1),we(!1),K(null),G.current&&clearTimeout(G.current),J.current&&clearTimeout(J.current),!0)})),t))try{const e=[...o.addedNodes].filter((e=>1===e.nodeType));r.push(...e.filter((e=>e.matches(t)))),r.push(...e.flatMap((e=>[...e.querySelectorAll(t)])))}catch(e){}})),r.length&&me((e=>[...e,...r]))}));return o.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"]}),()=>{o.disconnect()}}),[e,a,F]);const Le=()=>{q?ge(q):N?ue.current&&ge(ue.current):S({place:i,offset:d,elementReference:F,tooltipReference:V.current,tooltipArrowReference:Z.current,strategy:v,middlewares:h,border:X}).then((e=>{ye.current&&(Object.keys(e.tooltipStyles).length&&oe(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&ne(e.tooltipArrowStyles),ee(e.place))}))};t.useEffect((()=>{Le()}),[le,F,P,j,i,d,v,q]),t.useEffect((()=>{if(!(null==W?void 0:W.current))return()=>null;const e=new ResizeObserver((()=>{Le()}));return e.observe(W.current),()=>{e.disconnect()}}),[P,null==W?void 0:W.current]),t.useEffect((()=>{var e;const t=document.querySelector(`[id='${c}']`),o=[...ve,t];F&&o.includes(F)||K(null!==(e=ve[0])&&void 0!==e?e:t)}),[c,ve,F]),t.useEffect((()=>()=>{G.current&&clearTimeout(G.current),J.current&&clearTimeout(J.current)}),[]),t.useEffect((()=>{let t=a;if(!t&&e&&(t=`[data-tooltip-id='${e}']`),t)try{const e=Array.from(document.querySelectorAll(t));me(e)}catch(e){me([])}}),[e,a]);const xe=!k&&P&&le&&Object.keys(te).length>0;return ce?l.default.createElement(O,{id:e,role:"tooltip",className:s.default("react-tooltip",E,R.tooltip,R[n],o,`react-tooltip__place-${Q}`,{[A]:xe,[b]:"fixed"===v,[T]:C}),style:{...j,...te,opacity:void 0!==Y&&xe?Y:void 0},ref:V},P,l.default.createElement(O,{className:s.default("react-tooltip-arrow",g,R.arrow,r,{[_]:$}),style:re,ref:Z})):null},L=({content:e})=>l.default.createElement("span",{dangerouslySetInnerHTML:{__html:e}});i({css:`:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9}.core-styles-module_tooltip__3vRRp{visibility:hidden;position:absolute;top:0;left:0;pointer-events:none;opacity:0;transition:opacity 0.3s ease-out;will-change:opacity,visibility}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{visibility:visible;opacity:var(--rt-opacity)}`,type:"core"}),i({css:` | ||
.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px;transform:rotate(45deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`}),e.Tooltip=({id:e,anchorId:o,anchorSelect:r,content:n,html:s,render:c,className:a,classNameArrow:i,variant:u="dark",place:d="top",offset:p=10,wrapper:f="div",children:v=null,events:y=["hover"],openOnClick:h=!1,positionStrategy:w="absolute",middlewares:S,delayShow:E=0,delayHide:b=0,float:g=!1,hidden:_=!1,noArrow:T=!1,clickable:A=!1,closeOnEsc:R=!1,closeOnScroll:x=!1,closeOnResize:N=!1,style:k,position:$,isOpen:C,border:I,opacity:B,setIsOpen:D,afterShow:j,afterHide:q})=>{const[H,M]=t.useState(n),[P,W]=t.useState(s),[z,U]=t.useState(d),[F,K]=t.useState(u),[X,Y]=t.useState(p),[V,Z]=t.useState(E),[G,J]=t.useState(b),[Q,ee]=t.useState(g),[te,oe]=t.useState(_),[re,ne]=t.useState(f),[le,se]=t.useState(y),[ce,ae]=t.useState(w),[ie,ue]=t.useState(null),{anchorRefs:de,activeAnchor:pe}=m(e),fe=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var r;if(o.startsWith("data-tooltip-")){t[o.replace(/^data-tooltip-/,"")]=null!==(r=null==e?void 0:e.getAttribute(o))&&void 0!==r?r:null}return t}),{}),ve=e=>{const t={place:e=>{var t;U(null!==(t=e)&&void 0!==t?t:d)},content:e=>{M(null!=e?e:n)},html:e=>{W(null!=e?e:s)},variant:e=>{var t;K(null!==(t=e)&&void 0!==t?t:u)},offset:e=>{Y(null===e?p:Number(e))},wrapper:e=>{var t;ne(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(" ");se(null!=t?t:y)},"position-strategy":e=>{var t;ae(null!==(t=e)&&void 0!==t?t:w)},"delay-show":e=>{Z(null===e?E:Number(e))},"delay-hide":e=>{J(null===e?b:Number(e))},float:e=>{ee(null===e?g:"true"===e)},hidden:e=>{oe(null===e?_:"true"===e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var r;null===(r=t[e])||void 0===r||r.call(t,o)}))};t.useEffect((()=>{M(n)}),[n]),t.useEffect((()=>{W(s)}),[s]),t.useEffect((()=>{U(d)}),[d]),t.useEffect((()=>{K(u)}),[u]),t.useEffect((()=>{Y(p)}),[p]),t.useEffect((()=>{Z(E)}),[E]),t.useEffect((()=>{J(b)}),[b]),t.useEffect((()=>{ee(g)}),[g]),t.useEffect((()=>{oe(_)}),[_]),t.useEffect((()=>{ae(w)}),[w]),t.useEffect((()=>{var t;const n=new Set(de);let l=r;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{n.add({current:e})}))}catch(e){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const s=document.querySelector(`[id='${o}']`);if(s&&n.add({current:s}),!n.size)return()=>null;const c=null!==(t=null!=ie?ie:s)&&void 0!==t?t:pe.current,a=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=fe(c);ve(o)}))})),i={attributes:!0,childList:!1,subtree:!1};if(c){const e=fe(c);ve(e),a.observe(c,i)}return()=>{a.disconnect()}}),[de,pe,ie,o,r]),t.useEffect((()=>{(null==k?void 0:k.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),I&&!CSS.supports("border",`${I}`)&&console.warn(`[react-tooltip] "${I}" is not a valid \`border\`.`),(null==k?void 0:k.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),B&&!CSS.supports("opacity",`${B}`)&&console.warn(`[react-tooltip] "${B}" is not a valid \`opacity\`.`)}),[]);let me=v;const ye=t.useRef(null);if(c){const e=c({content:null!=H?H:null,activeAnchor:ie});me=e?l.default.createElement("div",{ref:ye,className:"react-tooltip-content-wrapper"},e):null}else H&&(me=H);P&&(me=l.default.createElement(L,{content:P}));const he={id:e,anchorId:o,anchorSelect:r,className:a,classNameArrow:i,content:me,contentWrapperRef:ye,place:z,variant:F,offset:X,wrapper:re,events:le,openOnClick:h,positionStrategy:ce,middlewares:S,delayShow:V,delayHide:G,float:Q,hidden:te,noArrow:T,clickable:A,closeOnEsc:R,closeOnScroll:x,closeOnResize:N,style:k,position:$,isOpen:C,border:I,opacity:B,setIsOpen:D,afterShow:j,afterHide:q,activeAnchor:ie,setActiveAnchor:e=>ue(e)};return l.default.createElement(O,{...he})},e.TooltipProvider=({children:e})=>{const[o,r]=t.useState({[d]:new Set}),[n,s]=t.useState({[d]:{current:null}}),c=(e,...t)=>{r((o=>{var r;const n=null!==(r=o[e])&&void 0!==r?r:new Set;return t.forEach((e=>n.add(e))),{...o,[e]:new Set(n)}}))},a=(e,...t)=>{r((o=>{const r=o[e];return r?(t.forEach((e=>r.delete(e))),{...o}):o}))},i=t.useCallback(((e=d)=>{var t,r;return{anchorRefs:null!==(t=o[e])&&void 0!==t?t:new Set,activeAnchor:null!==(r=n[e])&&void 0!==r?r:{current:null},attach:(...t)=>c(e,...t),detach:(...t)=>a(e,...t),setActiveAnchor:t=>((e,t)=>{s((o=>{var r;return(null===(r=o[e])||void 0===r?void 0:r.current)===t.current?o:{...o,[e]:t}}))})(e,t)}}),[o,n,c,a]),u=t.useMemo((()=>({getTooltipData:i})),[i]);return l.default.createElement(v.Provider,{value:u},e)},e.TooltipWrapper=({tooltipId:e,children:o,className:r,place:n,content:c,html:a,variant:i,offset:u,wrapper:d,events:p,positionStrategy:f,delayShow:v,delayHide:y})=>{const{attach:h,detach:w}=m(e),S=t.useRef(null);return t.useEffect((()=>(h(S),()=>{w(S)})),[]),l.default.createElement("span",{ref:S,className:s.default("react-tooltip-wrapper",r),"data-tooltip-place":n,"data-tooltip-content":c,"data-tooltip-html":a,"data-tooltip-variant":i,"data-tooltip-offset":u,"data-tooltip-wrapper":d,"data-tooltip-events":p,"data-tooltip-position-strategy":f,"data-tooltip-delay-show":v,"data-tooltip-delay-hide":y},o)},e.removeStyle=function({type:e="base",id:t=a}={}){"core"===e&&(t=c);const o=document.getElementById(t);null==o||o.remove()},Object.defineProperty(e,"__esModule",{value:!0})})); |
{ | ||
"name": "react-tooltip", | ||
"version": "5.17.0", | ||
"version": "5.18.0", | ||
"description": "react tooltip component", | ||
@@ -5,0 +5,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
668369
4127