1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[281],{14413:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(14232),a=r(37876);function i(e){return e.naturalHeight/e.naturalWidth}var o=e=>{let{aspectRatio:t="taller",handle:r=null,handleSize:o=40,hover:l=!1,leftImage:s,leftImageAlt:u="",leftImageCss:c={},leftImageLabel:d=null,onSliderPositionChange:p,rightImage:f,rightImageAlt:m="",rightImageCss:h={},rightImageLabel:b=null,skeleton:g=null,sliderLineColor:y="#ffffff",sliderLineWidth:x=2,sliderPositionPercentage:v=.5,vertical:w=!1}=e,_=!w,[O,j]=(0,n.useState)(v),[P,C]=(0,n.useState)(!1),[E,S]=(0,n.useState)(0),[k,A]=(0,n.useState)(0),I=function(e){let t=(0,n.useRef)(null);return(0,n.useLayoutEffect)(()=>{if(!t.current)return;let r=new ResizeObserver(t=>{(function(e,t){if(!e)throw Error("Invariant failed")})(t[0],0),e(t[0].contentRect.width)});return r.observe(t.current),e(t.current.getBoundingClientRect().width),()=>{r.disconnect()}},[e]),t}(e=>S(e)),L=(0,n.useRef)(null),$=(0,n.useRef)(null),[D,R]=(0,n.useState)(!1),T=(0,n.useCallback)(()=>{$.current?.complete&&L.current?.complete&&R(!0)},[]);(0,n.useEffect)(()=>(T(),()=>{R(!1)}),[s,f,T]),(0,n.useEffect)(()=>{$.current&&L.current&&0!==E&&D&&A(function(e,t,r,n){return e*("taller"===n?Math.max(t,r):Math.min(t,r))}(E,i($.current),i(L.current),t))},[E,D,t]),(0,n.useEffect)(()=>{if(!I.current||!D)return;let e=e=>{if(!I.current)return;let t=I.current.getBoundingClientRect(),r=_?e.clientX-t.left:e.clientY-t.top,n=x/2,a=_?E-n:k-n,i=Math.min(Math.max(r,n),a)/(_?E:k);j(i),p?.(i)},t=t=>{C(!0),t.preventDefault(),a.setPointerCapture(t.pointerId),e(t)},r=t=>{(a.hasPointerCapture(t.pointerId)||l)&&e(t)},n=()=>{C(!1)},a=I.current;return a.addEventListener("pointerdown",t),a.addEventListener("pointermove",r),a.addEventListener("pointerup",n),()=>{a.removeEventListener("pointerdown",t),a.removeEventListener("pointermove",r),a.removeEventListener("pointerup",n)}},[D,t,k,E,_,l,x,I]);let F={container:{boxSizing:"border-box",position:"relative",width:"100%",height:`${k}px`,overflow:"hidden",touchAction:_?"pan-y":"pan-x"},rightImage:{clipPath:_?`inset(0px 0px 0px ${E*O}px)`:`inset(${k*O}px 0px 0px 0px)`,display:"block",height:"100%",objectFit:"cover",position:"absolute",width:"100%",...h},leftImage:{clipPath:_?`inset(0px ${E*(1-O)}px 0px 0px)`:`inset(0px 0px ${k*(1-O)}px 0px)`,display:"block",height:"100%",objectFit:"cover",position:"absolute",width:"100%",...c},slider:{alignItems:"center",display:"flex",justifyContent:"center",position:"absolute",..._?{cursor:"ew-resize",flexDirection:"column",height:"100%",left:`${E*O-o/2}px`,top:0,width:`${o}px`}:{cursor:"ns-resize",flexDirection:"row",height:`${o}px`,left:0,top:`${k*O-o/2}px`,width:"100%"}},line:{background:y,boxShadow:"0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)",flex:"0 1 auto",height:_?"100%":`${x}px`,width:_?`${x}px`:"100%"},handleCustom:{alignItems:"center",boxSizing:"border-box",display:"flex",flex:"1 0 auto",height:"auto",justifyContent:"center",width:"auto"},handleDefault:{alignItems:"center",border:`${x}px solid ${y}`,borderRadius:"100%",boxShadow:"0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)",boxSizing:"border-box",display:"flex",flex:"1 0 auto",height:`${o}px`,justifyContent:"center",width:`${o}px`,transform:_?"none":"rotate(90deg)"},leftArrow:{border:`inset ${.15*o}px rgba(0,0,0,0)`,borderRight:`${.15*o}px solid ${y}`,height:"0px",marginLeft:`-${.25*o}px`,marginRight:`${.25*o}px`,width:"0px"},rightArrow:{border:`inset ${.15*o}px rgba(0,0,0,0)`,borderLeft:`${.15*o}px solid ${y}`,height:"0px",marginRight:`-${.25*o}px`,width:"0px"},leftLabel:{background:"rgba(0, 0, 0, 0.5)",color:"white",left:_?"5%":"50%",opacity:+!P,padding:"10px 20px",position:"absolute",top:_?"50%":"3%",transform:_?"translate(0,-50%)":"translate(-50%, 0)",transition:"opacity 0.1s ease-out"},rightLabel:{background:"rgba(0, 0, 0, 0.5)",color:"white",opacity:+!P,padding:"10px 20px",position:"absolute",..._?{right:"5%",top:"50%",transform:"translate(0,-50%)"}:{left:"50%",bottom:"3%",transform:"translate(-50%, 0)"},transition:"opacity 0.1s ease-out"},leftLabelContainer:{clipPath:_?`inset(0px ${E*(1-O)}px 0px 0px)`:`inset(0px 0px ${k*(1-O)}px 0px)`,height:"100%",position:"absolute",width:"100%"},rightLabelContainer:{clipPath:_?`inset(0px 0px 0px ${E*O}px)`:`inset(${k*O}px 0px 0px 0px)`,height:"100%",position:"absolute",width:"100%"}};return(0,a.jsxs)(a.Fragment,{children:[g&&!D&&(0,a.jsx)("div",{style:{...F.container},children:g}),(0,a.jsxs)("div",{style:{...F.container,display:D?"block":"none"},ref:I,"data-testid":"container",children:[(0,a.jsx)("img",{onLoad:()=>T(),alt:m,"data-testid":"right-image",ref:L,src:f,style:F.rightImage}),(0,a.jsx)("img",{onLoad:()=>T(),alt:u,"data-testid":"left-image",ref:$,src:s,style:F.leftImage}),(0,a.jsxs)("div",{style:F.slider,children:[(0,a.jsx)("div",{style:F.line}),r?(0,a.jsx)("div",{style:F.handleCustom,children:r}):(0,a.jsxs)("div",{style:F.handleDefault,children:[(0,a.jsx)("div",{style:F.leftArrow}),(0,a.jsx)("div",{style:F.rightArrow})]}),(0,a.jsx)("div",{style:F.line})]}),d&&(0,a.jsx)("div",{style:F.leftLabelContainer,children:(0,a.jsx)("div",{style:F.leftLabel,children:d})}),b&&(0,a.jsx)("div",{style:F.rightLabelContainer,children:(0,a.jsx)("div",{style:F.rightLabel,children:b})})]})]})}},18847:(e,t,r)=>{e.exports=r(55172)},55172:(e,t,r)=>{"use strict";var n=r(83095);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
1t%2?a(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return c},noSSR:function(){return u}});var o=r(64252);r(37876),r(14232);var l=o._(r(79507));function s(e){return{default:(null==e?void 0:e.default)||e}}function u(e,t){return delete t.webpack,delete t.modules,e(t)}function c(e,t){var r=l.default,n={loading:function(e){return e.error,e.isLoading,e.pastDelay,null}};e instanceof Promise?n.loader=function(){return e}:"function"==typeof e?n.loader=e:"object"==typeof e&&(n=i(i({},n),e));var a=(n=i(i({},n),t)).loader;return(n.loadableGenerated&&(n=i(i({},n),n.loadableGenerated),delete n.loadableGenerated),"boolean"!=typeof n.ssr||n.ssr)?r(i(i({},n),{},{loader:function(){return null!=a?a().then(s):Promise.resolve(s(function(){return null}))}})):(delete n.webpack,delete n.modules,u(r,n))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},55941:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});
1class n{saveToCookie(e,t,r){let n=JSON.stringify({beforeImage:e,afterImage:t,combinedImage:r}),a=new Date().setFullYear(new Date().getFullYear()+1);document.cookie=`simulationImages=${n};expires=${a}`}processCable(e,t){return new Promise((r,n)=>{try{let a=new WebSocket(e.cableSvcUrl,["actioncable-v1-json"]),i=!1,o=window.setTimeout(()=>{o=null,i=!0,n(Error("Timeout websocket!"))},6e4),l=JSON.stringify({command:"subscribe",identifier:JSON.stringify({channel:"SimulationChannel",simulation_id:t})});a.onmessage=t=>{if(i)return void a.close(1e3,"Timeout expired!");let s=JSON.parse(t.data),u=s.message&&s.message.message&&s.message.message.state,c=s.message&&s.message.message&&s.message.message.message,d=e.myInvisalignUrl;if("welcome"===s.type&&a.send(l),"completed"===u){let{after_file_link:e,before_file_link:t,combined_file_link:n,combined_file_link_img:l}=s.message.message,u=d+t,c=d+e,p=d+n;document&&this.saveToCookie(u,c,p),a.close(1e3,"Completed"),o&&(clearTimeout(o),o=null,i=!1),r({beforeImage:u,afterImage:c,combinedImage:p,combinedImageImg:d+l})}"FAILED"===u&&(a.close(1e3,"Failed"),n(Error(`Oops something went wrong: ${c}`)))}}catch(e){cable.close(1e3,`Error: ${e}`),clearTm(),n(e)}})}async uploadSimulation(e,t,r,n){let a=new FormData;a.append("simulation_id",n),a.append("session_id",r),a.append("country_code",t.country),a.append("file",e),t.practiceAccount&&a.append("keep_for_research","true"),t.siteId&&a.append("site_id",t.siteId);let i=await (await fetch(t.simulationSvcUrl,{method:"POST",body:a})).json();return i.error?i:await this.processCable(t,n)}}class a{async getImage(e){return await this.fileFromBase64(e)}async fileFromBase64(e){return new Promise(t=>{let r,{attachment:n}=e,a=n.split(","),i=a[0].split(":")[1].split(";")[0];a[0].indexOf("base64")>=0&&(r=atob(n.split(",")[1]));let o=new Uint8Array(r.length);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);t(new File([o],e.name,{type:i}))})}async FileReaderReadArray(e){return new Promise((t,r)=>{try{let r=new FileReader;r.onloadend=e=>{t(e.target)},r.readAsArrayBuffer(e)}catch(e){return r(e)}})}async processImage(e){if(!e)return;let t=await this.FileReaderReadArray(e),r="data:"+e.type+";base64,"+(e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let e=0;e<n;e++)t+=String.fromCharCode(r[e]);return window.btoa(t)})(t.result),n=new DataView(t.result),a=0,i=1;if(t.result.byteLength<2||65496!==n.getUint16(a))return{preview:r,orientation:i};a+=2;let o=n.byteLength,l=!1;for(;a<o-2;){let e=n.getUint16(a,l);switch(a+=2,e){case 65505:18761===n.getUint16(a+8)&&(l=!0),o=n.getUint16(a,l)-a,a+=2;break;case 274:console.log("orientation: "+(i=n.getUint16(a+6,l))),o=0}}return{preview:r,orientation:i}}}let i=async(e,t,r,a)=>{if(!e)throw Error("Image is mandatory for start the visualization!");return await new n().uploadSimulation(e,t,r,a)},o=async(e,t,r,n)=>{if(!e)throw Error("Image is mandatory for upload the image!");try{if(e.attachment){let o=await new a().getImage(e);return await i(o,t,r,n)}return await i(e,t,r,n)}catch(e){return console.log(e),Error(e)}}},57441:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"LoadableContext",{enumerable:!0,get:function(){return n}});var n=r(64252)._(r(14232)).default.createContext(null)},67835:(e,t,r)=>{"use strict";r.d(t,{A:()=>h});var n=r(44501),a=r(40670),i=r(15039),o=r.n(i),l=r(14232),s=r(44515),u=r(80116),c=["min","now","max","label","srOnly","striped","animated","className","style","variant","bsPrefix"],d=["isChild"],p=["min","now","max","label","srOnly","striped","animated","bsPrefix","variant","className","children"];function f(e,t){var r,i=e.min,s=e.now,u=e.max,d=e.label,p=e.srOnly,f=e.striped,m=e.animated,h=e.className,b=e.style,g=e.variant,y=e.bsPrefix,x=(0,a.A)(e,c);return l.createElement("div",(0,n.A)({ref:t},x,{role:"progressbar",className:o()(h,y+"-bar",((r={})["bg-"+g]=g,r[y+"-bar-animated"]=m,r[y+"-bar-striped"]=m||f,r)),style:(0,n.A)({width:Math.round((s-i)/(u-i)*1e5)/1e3+"%"},b),"aria-valuenow":s,"aria-valuemin":i,"aria-valuemax":u}),p?l.createElement("span",{className:"sr-only"},d):d)}var m=l.forwardRef(function(e,t){var r=e.isChild,i=(0,a.A)(e,d);if(i.bsPrefix=(0,s.oU)(i.bsPrefix,"progress"),r)return f(i,t);var c=i.min,m=i.now,h=i.max,b=i.label,g=i.srOnly,y=i.striped,x=i.animated,v=i.bsPrefix,w=i.variant,_=i.className,O=i.children,j=(0,a.A)(i,p);return l.createElement("div",(0,n.A)({ref:t},j,{className:o()(_,v)}),O?(0,u.T)(O,function(e){return(0,l.cloneElement)(e,{isChild:!0})}):f({min:c,now:m,max:h,label:b,srOnly:g,striped:y,animated:x,bsPrefix:v,variant:w},t))});m.displayName="ProgressBar",m.defaultProps={min:0,max:100,animated:!1,isChild:!1,srOnly:!1,striped:!1};let h=m},79507:(e,t,r)=>{"use strict";var n=r(83095),a=r(26097),i=r(95835);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
1t%2?o(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return y}});var u=r(64252)._(r(14232)),c=r(57441),d=[],p=[],f=!1;function m(e){var t=e(),r={loading:!0,loaded:null,error:null};return r.promise=t.then(function(e){return r.loading=!1,r.loaded=e,e}).catch(function(e){throw r.loading=!1,r.error=e,e}),r}var h=i(function e(t,r){a(this,e),this._loadFn=t,this._opts=r,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()},[{key:"promise",value:function(){return this._res.promise}},{key:"retry",value:function(){var e=this;this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};var t=this._res,r=this._opts;t.loading&&("number"==typeof r.delay&&(0===r.delay?this._state.pastDelay=!0:this._delay=setTimeout(function(){e._update({pastDelay:!0})},r.delay)),"number"==typeof r.timeout&&(this._timeout=setTimeout(function(){e._update({timedOut:!0})},r.timeout))),this._res.promise.then(function(){e._update({}),e._clearTimeouts()}).catch(function(t){e._update({}),e._clearTimeouts()}),this._update({})}},{key:"_update",value:function(e){this._state=l(l({},this._state),{},{error:this._res.error,loaded:this._res.loaded,loading:this._res.loading},e),this._callbacks.forEach(function(e){return e()})}},{key:"_clearTimeouts",value:function(){clearTimeout(this._delay),clearTimeout(this._timeout)}},{key:"getCurrentValue",value:function(){return this._state}},{key:"subscribe",value:function(e){var t=this;return this._callbacks.add(e),function(){t._callbacks.delete(e)}}}]);function b(e){return function(e,t){var r=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),n=null;function a(){if(!n){var t=new h(e,r);n={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return n.promise()}if(!f){var i=r.webpack&&1?r.webpack():r.modules;i&&p.push(function(e){var t,r=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return s(e,void 0);var r=({}).toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(e))){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(l)throw i}}}}(i);try{for(r.s();!(t=r.n()).done;){var n=t.value;if(e.includes(n))return a()}}catch(e){r.e(e)}finally{r.f()}})}function o(e,t){a(),(i=u.default.useContext(c.LoadableContext))&&Array.isArray(r.modules)&&r.modules.forEach(function(e){i(e)});var i,o=u.default.useSyncExternalStore(n.subscribe,n.getCurrentValue,n.getCurrentValue);return u.default.useImperativeHandle(t,function(){return{retry:n.retry}},[]),u.default.useMemo(function(){var t;return o.loading||o.error?u.default.createElement(r.loading,{isLoading:o.loading,pastDelay:o.pastDelay,timedOut:o.timedOut,error:o.error,retry:n.retry}):o.loaded?u.default.createElement((t=o.loaded)&&t.default?t.default:t,e):null},[e,o])}return o.preload=function(){return a()},o.displayName="LoadableComponent",u.default.forwardRef(o)}(m,e)}function g(e,t){for(var r=[];e.length;){var n=e.pop();r.push(n(t))}return Promise.all(r).then(function(){if(e.length)return g(e,t)})}b.preloadAll=function(){return new Promise(function(e,t){g(d).then(e,t)})},b.preloadReady=function(e){return void 0===e&&(e=[]),new Promise(function(t){var r=function(){return f=!0,t()};g(p,e).then(r,r)})},window.__NEXT_PRELOADREADY=b.preloadReady;var y=b},80116:(e,t,r)=>{"use strict";r.d(t,{T:()=>a,j:()=>i});var n=r(14232);function a(e,t){var r=0;return n.Children.map(e,function(e){return n.isValidElement(e)?t(e,r++):e})}function i(e,t){var r=0;
1n.Children.forEach(e,function(e){n.isValidElement(e)&&t(e,r++)})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.