monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 1.8 kB
JavaScript
import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useRef as c,useState as a,useCallback as r,forwardRef as o,cloneElement as n}from"react";import i from"classnames";import s from"../../hooks/useResizeObserver.js";import l from"./LabelCelebrationAnimation.module.scss.js";var m=4,d=1;function h(h){var u=h.children,f=h.onAnimationEnd,v=c(),p=c(),b=a(),E=e(b,2),k=E[0],A=E[1],g=r((function(e){var t=e.borderBoxSize||{},c=t.blockSize,a=t.inlineSize;if(v.current){var r=function(e){var t=e.width,c=e.height,a=e.borderRadius,r=void 0===a?m:a,o=e.strokeWidth,n=void 0===o?d:o,i=n/2;return"M ".concat(t-n/2,", ").concat(r," V ").concat(c-r," A ").concat(r," ").concat(r," 0 0 1 ").concat(t-r," ").concat(c-n/2," H ").concat(r+i," A ").concat(r," ").concat(r," 0 0 1 ").concat(n/2," ").concat(c-r," V ").concat(r+i," A ").concat(r," ").concat(r," 0 0 1 ").concat(r," ").concat(n/2," L ").concat(t-r,", ").concat(n/2," A ").concat(r," ").concat(r," 0 0 1 ").concat(t-n/2," ").concat(r," Z")}({width:a,height:c});A(r);var o=function(e){var t=e.width,c=e.height,a=e.borderRadius,r=void 0===a?m:a,o=t-2*r,n=c-2*r;return 2*Math.PI*r+2*o+2*n}({width:a,height:c});v.current.style.setProperty("--container-perimeter",o+"")}}),[]);s({ref:v,callback:g,debounceTime:0});var N=o((function(e,t){return n(u,{ref:t})}));return t.createElement("div",{className:l.celebration,ref:v},t.createElement("svg",{className:l.svg},t.createElement("path",{className:i(l.stroke,l.base),d:k}),t.createElement("path",{className:i(l.stroke,l.first),d:k}),t.createElement("path",{className:i(l.stroke,l.second),d:k}),t.createElement("path",{className:i(l.stroke,l.third),d:k,onAnimationEnd:f})),t.createElement(N,{ref:p}))}export{h as default};
//# sourceMappingURL=LabelCelebrationAnimation.js.map