File: /var/www/html/maisonimmobiliare/wp-content/plugins/3d-viewer/dist/block.js
(()=>{"use strict";var e={812:(e,t,a)=>{a.d(t,{Z:()=>E});var l=a(174),n=a.n(l);const r=e=>{let{attributes:t}=e;const{styles:a,uniqueId:n,woo:r,progressBar:o,additional:c}=t,{progressBarColor:i,thumbSize:s="90px"}=a,[m,d]=(0,l.useState)(null);return(0,l.useEffect)((()=>{const e=`\n #${n} {\n width: ${a?.width?.desktop||a.width};\n height: calc(${a?.height?.desktop||a.height} + 100px);\n }\n .pop-up-content-wrap #${n} {\n height: ${a?.height?.desktop||a.height};\n }\n #${n} .select {display: none}\n #${n} .b3dviewer-wrapper {\n height: ${a?.height?.desktop||a.height};\n }\n\n #${n} model-viewer {\n background: ${a?.bgColor} ${a?.bgImage?`url(${a?.bgImage})`:" "} no-repeat center center; \n background-size: cover;\n }\n #${n} model-viewer::part(default-progress-bar) {\n display: ${o?"block":"none"}\n }\n @media screen and (max-width: 768px){\n #${n} {\n width: ${r?"":`${a?.width.tablet||a.width}`};\n height: ${a?.height.tablet||a.height};\n }\n }\n @media screen and (max-width: 480px){\n #${n} {\n width: ${r?"":`${a?.width.mobile||a.width}`};\n height: ${a?.height.mobile||a.height};\n }\n }\n #${n} model-viewer::part(default-progress-bar){\n background: ${i};\n }\n #${n} .slides .slide{\n width: ${s};\n height: ${s};\n padding: calc(${s} * 0.04);\n }\n #${n} .slide-number span{\n font-size: calc(${s} * 0.8);\n }\n ${c?.CSS}\n `.replaceAll(/\n?\s\s/g,"");d(e)}),[n,a,c,o]),React.createElement("style",null,m)},o=e=>{let{element:t}=e;return React.createElement("svg",{onClick:()=>{t&&t.requestFullscreen()},id:"openBtn",width:"24px",height:"24px",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:"#f2f2f2",className:"bi bi-arrows-fullscreen"},React.createElement("path",{fillRule:"evenodd",d:"M5.828 10.172a.5.5 0 0 0-.707 0l-4.096 4.096V11.5a.5.5 0 0 0-1 0v3.975a.5.5 0 0 0 .5.5H4.5a.5.5 0 0 0 0-1H1.732l4.096-4.096a.5.5 0 0 0 0-.707zm4.344 0a.5.5 0 0 1 .707 0l4.096 4.096V11.5a.5.5 0 1 1 1 0v3.975a.5.5 0 0 1-.5.5H11.5a.5.5 0 0 1 0-1h2.768l-4.096-4.096a.5.5 0 0 1 0-.707zm0-4.344a.5.5 0 0 0 .707 0l4.096-4.096V4.5a.5.5 0 1 0 1 0V.525a.5.5 0 0 0-.5-.5H11.5a.5.5 0 0 0 0 1h2.768l-4.096 4.096a.5.5 0 0 0 0 .707zm-4.344 0a.5.5 0 0 1-.707 0L1.025 1.732V4.5a.5.5 0 0 1-1 0V.525a.5.5 0 0 1 .5-.5H4.5a.5.5 0 0 1 0 1H1.732l4.096 4.096a.5.5 0 0 1 0 .707z"}))},c=()=>React.createElement("svg",{id:"closeBtn",onClick:function(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()},className:"sidebar-open",width:"34px",height:"34px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{fill:"none",stroke:"#f2f2f2",strokeWidth:"2",d:"M7,7 L17,17 M7,17 L17,7"}));var i=a(489);const s=e=>{let{currentItem:t,setCurrentItem:a,models:l}=e;return n().createElement(n().Fragment,null,n().createElement("div",{className:"slideController"},n().createElement("svg",{fill:"#000000",onClick:()=>a(t>0?t-1:t),className:"arrow-left "+(t>0?"":"disabled"),width:"24px",height:"24px",viewBox:"-78.5 0 512 512",xmlns:"http://www.w3.org/2000/svg"},n().createElement("title",null,"left"),n().createElement("path",{d:"M257 64L291 98 128 262 291 426 257 460 61 262 257 64Z"})),n().createElement("svg",{onClick:()=>a(t<l.length-1?t+1:t),fill:"#000000",className:"arrow-right "+(t<l.length-1?"":"disabled"),width:"24px",height:"24px",viewBox:"-77 0 512 512",xmlns:"http://www.w3.org/2000/svg"},n().createElement("title",null,"right"),n().createElement("path",{d:"M98 460L64 426 227 262 64 98 98 64 294 262 98 460Z"}))))},m=a.p+"public/images/envmaps/fishermans_bastion/posx.jpg",d=a.p+"public/images/envmaps/fishermans_bastion/posy.jpg",u=a.p+"public/images/envmaps/fishermans_bastion/posz.jpg",p=a.p+"public/images/envmaps/fishermans_bastion/negx.jpg",g=a.p+"public/images/envmaps/fishermans_bastion/negy.jpg",b=a.p+"public/images/envmaps/fishermans_bastion/negz.jpg";var w=a(751);const v=e=>{let{attributes:t,currentItem:a,setCurrentItem:l,isPagination:r}=e;const{multiple:o,woo:c,models:i}=t;return n().createElement(n().Fragment,null,o&&!c&&r&&n().createElement("div",{className:"slider"},n().createElement("div",{className:"slides"},i.map(((e,t)=>n().createElement("button",{key:t,className:`slide ${t===a?"selected":""} ${e.poster?"":"slide-number"}`,"data-source":e?.modelUrl,"data-poster":e?.poster,onClick:()=>l(t)},e.poster?n().createElement("img",{src:e?.poster}):n().createElement("span",null,t+1)))))))};const h=e=>React.createElement("button",e),f=e=>{const{attributes:t,currentItem:a,setCurrentItem:n,modelSrc:r,setAttributes:o,__:c}=e,{styles:i,models:f,multiple:E,O3DVSettings:R}=t,{isNavigation:y,isPagination:C,camera:_,mouseControl:S}=R,[k,x]=(0,l.useState)(!1),P=(0,l.useRef)(null),V=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(r)if(V.current?.Destroy(),V.current?.canvas?.remove(),V.current=null,null===V.current){OV.SetExternalLibLocation("../libs");const e=_&&!E?{camera:new OV.Camera(new OV.Coord3D(...Object.values(_.eye)),new OV.Coord3D(...Object.values(_.center)),new OV.Coord3D(...Object.values(_.up)),45)}:{};let t=new OV.EmbeddedViewer(P.current,{...e,backgroundColor:new OV.RGBAColor(255,255,255,255),edgeSettings:new OV.EdgeSettings(!1,new OV.RGBColor(0,0,0),1),environmentSettings:new OV.EnvironmentSettings([m,d,u,p,g,b],!1)});const a=[r];t.LoadModelFromUrlList(a),V.current=t,window.VR=t}else{V.current.LoadModelFromUrlList([r]);const e=new OV.Coord3D(0,0,0);V.current.viewer.SetCamera(new OV.Camera(new OV.Coord3D(0,0,1),e,new OV.Coord3D(0,1,0),45))}return()=>{if(null!==V.current&&null!==P.current&&k){delete V.current.model,V.current.viewer.renderer.resetState(),V.current.viewer.Clear(),V.current.viewer&&delete V.current.viewer;V.current.canvas.getContext("webgl2").getExtension("WEBGL_lose_context").loseContext();const e=V.current.canvas.cloneNode(!0);V.current.canvas.parentNode.replaceChild(e,V.current.canvas),P.current?.removeChild(P.current.children[0]),V.current.canvas?.parentNode?.removeChild(V.current.canvas),V.current.canvas.remove(),V.current=null,x(!1)}}}),[r]),(0,l.useEffect)((()=>{i.bgColor&&V.current?.viewer?.SetBackgroundColor((0,w.$W)(i.bgColor)),setTimeout((()=>{V.current?.viewer?.Resize(P.current.offsetWidth,P.current.offsetHeight)}),10),V.current.viewer.Render(),window.viewer=V.current}),[i,r]),(0,l.useEffect)((()=>{window.addEventListener("resize",(()=>{V.current?.viewer?.Resize(P.current?.offsetWidth,P.current?.offsetHeight)}))}),[]),React.createElement(React.Fragment,null,React.createElement("div",{ref:P,role:"img","aria-label":"Canvas showing the model in the 3D Viewer",className:`${S?"":"DMC"} ${V.current?.modelLoader?.inProgress} relative flex flex-col items-center justify-center p-2 h-72 w-72 border-2 border-black rounded-sm online_3d_viewer`,style:{width:i.width.desktop||i.width,height:i.height.desktop||i.height}},React.createElement(v,{attributes:t,setCurrentItem:n,currentItem:a,isPagination:C}),E&&y&&f.length>1&&React.createElement(s,{currentItem:a,setCurrentItem:n,models:f}),o&&!E&&React.createElement("div",{className:"setDefaultViewContainer"},React.createElement(h,{variant:"primary",className:"setDefaultView button button-primary",onClick:()=>{if(V.current){const t=(e=V.current?.viewer?.GetCamera(),JSON.parse(JSON.stringify(e)));o({O3DVSettings:{...R,camera:t}})}var e}},c(_?"Reset Default View":"Set Default View","model-viewer")),_&&React.createElement(React.Fragment,null,React.createElement(h,{variant:"primary",className:"setDefaultView button button-primary",onClick:()=>{V.current?.viewer.SetCamera(new OV.Camera(new OV.Coord3D(...Object.values(_.eye)),new OV.Coord3D(...Object.values(_.center)),new OV.Coord3D(...Object.values(_.up)),45))}},c("See Default View","model-viewer")),React.createElement(h,{variant:"primary",className:"setDefaultView button button-primary",onClick:()=>o({O3DVSettings:{...R,camera:null}})},c("Remove Default View","model-viewer"))))))},E=e=>{let{attributes:t,__:a,setAttributes:n}=e;const[m,d]=(0,l.useState)(!1),{loadingPercentage:u=!1,uniqueId:p,model:g,models:b,fullscreen:w,variant:v,multiple:h,additional:E,exposure:R,selectedAnimation:y,animation:C,autoRotate:_,autoplay:S,rotateAlongX:k,align:x,woo:P,rotationPerSecond:V,preload:N,isPagination:A,isNavigation:O,zoom:L,currentViewer:B="modelViewer",O3DVSettings:$={},loading:T}=t,{isFullscreen:D}=$,[F,I]=(0,l.useState)(0),[j,M]=(0,l.useState)(h?b[F]?.modelUrl:g?.modelUrl),U=(0,l.useRef)(),q=(0,l.useRef)(),z=(0,l.useRef)();(0,l.useEffect)((()=>{M(h?b[F]?.modelUrl:g?.modelUrl)}),[F,h,b,g]),(0,l.useEffect)((()=>{try{new URL(j),d(!0)}catch(e){d(!1)}setTimeout((()=>{(0,i.Z)({animation:C,variant:v,wrapper:U.current?.parentElement})}),10)}),[p,g,b,h,j]),(0,l.useEffect)((()=>{S||U.current?.pause()}),[S]),(0,l.useEffect)((()=>{setTimeout((()=>{if(U.current&&z.current){U.current.animationName=y;z.current.querySelector("select").value=y}}),10)}),[y]),(0,l.useEffect)((()=>{q.current&&(q.current.style.display=v?"inline-block":"none")}),[v]),(0,l.useEffect)((()=>{z.current&&(C&&U.current.loaded?z.current.style.display="inline-block":z.current.style.display="none")}),[C,z]),(0,l.useEffect)((()=>{U.current?.turntableRotation&&U.current.resetTurntableRotation()}),[k]),(0,l.useEffect)((()=>{setTimeout((()=>{const{mouseControl:e,autoplay:a,shadow:l,rotate:n,rotateAlongX:r,rotateAlongY:o,loading:c}=t;U.current&&(e?U.current.setAttribute("camera-controls",""):U.current.removeAttribute("camera-controls"),a?U.current.setAttribute("autoplay",""):U.current.removeAttribute("autoplay"),l?U.current.setAttribute("shadow-intensity","1"):U.current.removeAttribute("shadow-intensity"),l?U.current.setAttribute("shadow-softness","1"):U.current.removeAttribute("shadow-softness"),c?U.current.setAttribute("loading",c):U.current.removeAttribute("loading"),_?(U.current.setAttribute("auto-rotate",""),U.current.setAttribute("rotation-per-second",V+"deg")):U.current.removeAttribute("auto-rotate"),n?U.current.setAttribute("camera-orbit",`${r}deg ${o}deg 105%`):U.current.removeAttribute("camera-orbit"),U.current.setAttribute("reveal",N),U.current.dataset.animation=y,U.current.setAttribute("exposure",R),L?U.current.removeAttribute("disable-zoom"):U.current.setAttribute("disable-zoom","")),setTimeout((()=>{n?U.current?.setAttribute("camera-orbit",`${r}deg ${o}deg 105%`):U.current.removeAttribute("camera-orbit")}),500)}),10)}),[p,t]),(0,l.useEffect)((()=>{if(P){const e=document.querySelector(".variations_form .variations select");e?.addEventListener("change",(function(e){const t=b.find((t=>t.product_variant===e.target.value))||b.find((e=>"all"===e.product_variant))||b?.[0];M(t.modelUrl)})),document.querySelectorAll(".variable-items-wrapper li")?.forEach((e=>e.addEventListener("click",(function(){const t=b.find((t=>t.product_variant===e.dataset?.value))||b.find((e=>"all"===e.product_variant))||b?.[0];M(t.modelUrl)})))),setTimeout((()=>{const e=document.querySelector(".select2-selection__rendered"),t=new MutationObserver((function(t){for(const a of t)if("childList"===a.type&&a.target===e){const t=b.find((t=>t.product_variant===e.innerText))||b.find((e=>"all"===e.product_variant))||b?.[0];M(t.modelUrl)}}));if(e){const a={childList:!0,subtree:!0};t.observe(e,a)}}),1e3)}}),[P]);const H=h?b[0]?.poster:g?.poster;return React.createElement("div",{id:`${p}`,className:`modelViewerBlock b3dviewer align${x} ${P?"woocommerce":""} ${A&&h?"pagination":""}`},React.createElement("div",{id:E?.ID,className:`${E?.Class} b3dviewer-wrapper bp_model_parent `},React.createElement(r,{attributes:t}),j&&m&&React.createElement(React.Fragment,null,"modelViewer"===B?React.createElement("model-viewer",{loading:T||"auto","camera-controls":!0,ref:U,"data-js-focus-visible":!0,"data-decoder":h?b[0]?.decoder:g?.decoder,poster:H?.replace(/https?:/,window.location.protocol),src:j?.replace(/https?:/,window.location.protocol),alt:"A 3D model"},React.createElement("button",{type:"button",slot:"poster",id:"default-poster","aria-label":"A 3D model",style:{backgroundImage:` url("${H?.replace(/https?:/,window.location.protocol)}")`}}),u&&("lazy"===T||U.current)&&!U?.current?.loaded&&React.createElement("div",{className:"percentageWrapper"},React.createElement("div",{className:"overlay"}),React.createElement("span",{className:"percentage"},"0%")),React.createElement("div",{className:"variantWrapper select",ref:q},a("Variant","model-viewer")," ",React.createElement("select",{id:"variant"})),React.createElement("div",{className:"animationWrapper select",ref:z},a("Animations","model-viewer")," ",React.createElement("select",{id:"animations"})),h&&!P&&A&&React.createElement("div",{className:"slider"},React.createElement("div",{className:"slides"},b.map(((e,t)=>React.createElement("button",{key:t,className:`slide ${0===t?"selected":""} ${e.poster?"":"slide-number"}`,"data-source":e?.modelUrl,"data-poster":e?.poster,onClick:()=>I(t)},e.poster?React.createElement("img",{src:e?.poster}):React.createElement("span",null,t+1)))))),h&&O&&b.length>1&&React.createElement(s,{currentItem:F,setCurrentItem:I,models:b})):React.createElement(React.Fragment,null,React.createElement(f,{__:a,setAttributes:n,modelSrc:j,currentItem:F,setCurrentItem:I,model:j,attributes:t}))),""===j&&b[F].poster&&React.createElement(React.Fragment,null,P&&b.length>1&&React.createElement(s,{currentItem:F,setCurrentItem:I,models:b}),React.createElement("img",{src:b[F].poster})),(w&&"modelViewer"===B||"O3DViewer"===B&&D)&&React.createElement(React.Fragment,null,React.createElement(o,{element:document.querySelector(`#${p} .bp_model_parent`)}),React.createElement(c,null))),P&&A&&React.createElement("div",{className:"modelThumbs"},b.map(((e,t)=>React.createElement(React.Fragment,null,e.poster&&React.createElement("img",{className:"thumbsItem "+(t===F?"selected":""),onClick:()=>I(t),src:e.poster}))))))}},489:(e,t,a)=>{a.d(t,{Z:()=>d});var l=a(467),n=a(751),r=a(812);window.addEventListener("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/3dModelViewer.default",(function(e,t){const a=e[0].querySelector(".b3dviewer-wrapper.elementor");modelRenderer({animation:!0,variant:!0,wrapper:a})}))})),document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".modelViewerBlock");setTimeout((()=>{Object.values(e).map((e=>{const t=e.querySelectorAll("model-viewer")||e.querySelectorAll(".online_3d_viewer"),a=e.querySelector(".progress");t.forEach((e=>{const t=new URL(e?.src||e?.getAttribute("src")||e?.getAttribute("model"));if("DIV"===e.tagName);else{t?.protocol!==location?.protocol&&e?.setAttribute("src",t.href.replace(t?.protocol,location?.protocol)),a&&(e?.addEventListener("progress",(e=>{a.innerHTML=parseInt(100*e.detail.totalProgress)+"%"})),e?.addEventListener("load",(()=>{setTimeout((()=>{a.style.display="none"}),500)}))),e.dataset.items="";const l=document.querySelector(".product-modal-wrap");if(l&&!l?.nextElementSibling?.classList?.contains("entry-summary")&&!l?.nextElementSibling?.classList?.contains("mkd-single-product-summary")){l.style.width="100%";const e=document.querySelector(".showcase-inner .product-information");if(e){const t=l.querySelector("model-viewer");t&&(t.style.height=e.offsetHeight+"px")}}}}))}))}),1e3);let t=document.querySelectorAll(".bp3dmodel-carousel");Object.values(t).map((e=>{e.dataset.fullscreen}))})),jQuery(document).ready((function(e){e(".bp3dmodel-carousel")?.[0]?.slick({slidesToShow:1,slidesToScroll:1,arrows:!0})}));function o(e){return e.replace(/-\d{2,4}x\d{2,4}/g,"")}function c(e){return/\.(jpg|jpeg|png|gif|bmp|svg|webp)$/i.test(e)}document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".b3dviewer-wrapper:not(.elementor)");Object.values(e).map((e=>{m({animation:!0,variant:!0,wrapper:e})})),document.querySelectorAll(".bp3dv-model-main")?.forEach((e=>{let t=e.dataset.selector;if(!t||""===t)return!1;let a=document.querySelector(c(t)?`img[src="${t}"]`:t.includes("#")||t.includes(".")?t:`.${t}`);c(t)&&(a||(a=document.querySelector(`img[data-src="${t}"]`)),a||(a=document.querySelector(`img[data-src="${o(t)}"]`)),a||(a=document.querySelector(`img[src="${o(t)}"]`))),a?(a=function(e){let t=e.parentElement;for(;t&&1===t.children.length;)e=t,t=t.parentElement;return e}(a),a?.innerHTML?.includes("<a")&&a.classList.add("bp3dv_a_popup_opener"),a?.innerHTML?.includes("<img")&&"reintest.be"===window.location.host&&a.classList.add("bp3dv_play_icon"),a?.addEventListener("click",(t=>{t.preventDefault(),e.classList.add("model-open")})),a.style.cursor="pointer",e.querySelector(".close-btn").addEventListener("click",(()=>e.classList.remove("model-open"))),e.querySelector(".bg-overlay").addEventListener("click",(()=>e.classList.remove("model-open")))):console.warn("clickable item is not found",t)}))}));const i=e=>{let{attributes:t}=e;if(t)return React.createElement(r.Z,{attributes:t,__:function(e){return e}})};window.addEventListener("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/3dModelViewer.default",(function(e,t){const a=e[0]?.querySelectorAll(".modelViewerBlock");a?.forEach((e=>{const t={...e.dataset}||{};setTimeout((()=>{Object.keys(e.dataset).map((t=>delete e.dataset[t]))}),10);const a=(0,n.o3)(t.attributes);if(a){const n=t.selector;if(n&&document.querySelector(n)&&(e=document.querySelector(n)).setAttribute("style",`width:${e.offsetWidth}px !important;height:350px`),!a?.currentViewer||"modelViewer"===a.currentViewer){e.setAttribute("data-rendered","true"),(0,l.render)(React.createElement(i,{attributes:a}),e);if(!document.getElementById("bp3d-model-viewer-js")){const e=document.createElement("script");e.type="module",e.id="bp3d-model-viewer-js",e.src=window.bp3dBlock?.modelViewerSrc,document.head.appendChild(e)}}if("O3DViewer"===a.currentViewer)if("undefined"==typeof OV){const t=document.getElementById("bp3d-o3dviewer-js");if(t)t.addEventListener("load",(()=>{(0,l.render)(React.createElement(i,{attributes:a}),e)}));else{const t=document.createElement("script");t.id="bp3d-o3dviewer-js",t.src=window.bp3dBlock?.o3dviewerSrc,document.head.appendChild(t),t.addEventListener("load",(()=>{(0,l.render)(React.createElement(i,{attributes:a}),e)}))}}else(0,l.render)(React.createElement(i,{attributes:a}),e)}}))}))}));const s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,l=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e?.parentElement){l&&(e.parentElement.style.display="inline-block"),e.innerHTML="",!t.length&&e.parentElement&&(window.location.href.includes("wp-admin")?t[0]="not available":e.parentElement.style.display="none");for(const l of t){const t=document.createElement("option");t.value=l,t.textContent=l,e.appendChild(t),l===a&&(t.selected=!0)}}};function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{animation:t=!1,variant:a=!1,wrapper:l}=e;if(!l)return;const n=l.querySelector("model-viewer");if(!n)return!1;if(n.src)try{const e=new URL(n.src);e?.protocol!==window.location.protocol&&(n.src=e.href.replace(e.protocol,window.location.protocol))}catch(e){console.warn(e.message,n.src)}const r=n.dataset.animation,o=l.querySelector("#variant"),c=l.querySelector("#animations"),i=l.querySelector(".percentageWrapper"),m=i?.querySelector(".percentage");"interaction"===n.reveal&&i&&(i.style.display="none"),n.addEventListener("load",(()=>{s(o,n.availableVariants,"",a),s(c,n.availableAnimations,r,t),n.animationName=r,setTimeout((()=>{i&&(i.style.display="none")}),100)})),m&&n.addEventListener("progress",(e=>{i.style.display="block",m.innerHTML=parseInt(100*e.detail.totalProgress)+"%"})),o&&o.addEventListener("input",(e=>{n.variantName=e.target.value})),c&&c.addEventListener("input",(e=>{n.animationName=e.target.value}));const d=l.querySelectorAll(".slide");for(const e of d)e.addEventListener("click",(t=>{t.preventDefault(),n.src=e?.dataset?.source,n.poster=e?.dataset?.poster,d.forEach((e=>{e.classList.remove("selected")})),e.classList.add("selected"),o&&(o.innerHTML="")}));document.querySelector(".slider")?.addEventListener("beforexrselect",(e=>{e.preventDefault()}))}window.modelRenderer=m;const d=m},602:(e,t,a)=>{a.d(t,{Z:()=>r});const{useState:l,useEffect:n}=React,r=(e,t)=>{const[a,r]=l(!0),[o,c]=l(!1),[i,s]=l(!1),[m,d]=l(null),[u,p]=l(null);n((()=>{g()}),[]);const g=async()=>{const a=Object.keys(t).map((e=>`${e}=${t[e]}`)).join("&");try{const t=await fetch(`${e}?${a}`),l=await t.json();try{p(JSON.parse(l?.data))}catch(e){p(l?.data)}c(!0),r(!1)}catch(e){s(!0),d(e.message),r(!1)}};return{data:u,isLoading:a,isLoaded:o,isError:i,error:m}}},751:(e,t,a)=>{a.d(t,{$W:()=>n,o3:()=>r,Z9:()=>l.Z});var l=a(602);a(174);const n=function(e){if("transparent"===e)return{r:255,g:255,b:255,a:0};if(e.includes("rgba")){const t=e.match(/rgba?\((\d+),(\d+),(\d+)(?:,([\d.]+))?\)/);if(t){const[,e,a,l,n=1]=t.map(Number);return{r:e,g:a,b:l,a:n}}return null}var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e.replace("#",""));return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16),a:parseInt(t[4],16)?parseInt(t[4],16):0===parseInt(t[4],16)?0:255}:null},r=e=>{let t=null;try{t=JSON.parse(e)}catch(e){console.warn(e.message)}return t}},174:e=>{e.exports=React},467:e=>{e.exports=ReactDOM}},t={};function a(l){var n=t[l];if(void 0!==n)return n.exports;var r=t[l]={exports:{}};return e[l](r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var l in t)a.o(t,l)&&!a.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var l=t.getElementsByTagName("script");if(l.length)for(var n=l.length-1;n>-1&&!e;)e=l[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{const e=JSON.parse('{"apiVersion":"1","name":"b3dviewer/modelviewer","title":"Model Viewer","description":"","category":"design","icon":"visibility","keywords":["3D Viewer","3D Embedder","3D Model Viewer"],"textdomain":"model-viewer","attributes":{"uniqueId":{"type":"string","default":"uniqueId"},"multiple":{"type":"boolean","default":false},"model":{"type":"object","default":{}},"models":{"type":"array","default":[{"`modelUrl`":"","poster":"","useDecoder":"none"}]},"currentViewer":{"type":"string","default":"modelViewer"},"O3DVSettings":{"type":"object","default":{"isFullscreen":true,"isPagination":false,"isNavigation":false,"camera":null,"mouseControl":true}},"lazyLoad":{"type":"boolean","default":true},"preload":{"type":"string","default":"auto"},"autoplay":{"type":"boolean","default":true},"shadow":{"type":"boolean","default":true},"rotate":{"type":"boolean","default":false},"autoRotate":{"type":"boolean","default":false},"zoom":{"type":"boolean","default":true},"isPagination":{"type":"boolean","default":false},"isNavigation":{"type":"boolean","default":true},"rotationPerSecond":{"type":"number","default":20},"mouseControl":{"type":"boolean","default":true},"fullscreen":{"type":"boolean","default":true},"variant":{"type":"boolean","default":false},"loadingPercentage":{"type":"boolean","default":false},"progressBar":{"type":"boolean","default":true},"rotateAlongX":{"type":"number","default":"0"},"rotateAlongY":{"type":"number","default":75},"exposure":{"type":"number","default":1},"styles":{"type":"object","default":{"width":"100%","height":"300px","bgColor":"#ffffff","progressBarColor":"#666","thumbSize":"90px"}},"stylesheet":{"type":"string"},"additional":{"type":"object","default":{"ID":"","Class":"","CSS":""}},"animation":{"type":"boolean","default":false},"woo":{"type":"boolean","default":false},"selectedAnimation":{"type":"string","default":""}},"supports":{"html":false,"lock":false,"align":["left","right","center"]},"example":{"attributes":{"preview":true}},"style":["file:./../../dist/3d-viewer-frontend.css"],"viewScript":["file:./../../dist/3d-viewer-frontend.js"]}'),t=wp.i18n,l=wp.element,n=wp.data,r=wp.components;var o=a(174),c=a.n(o);const{__:i}=wp.i18n,{Fragment:s}=wp.element,{MediaUpload:m,MediaUploadCheck:d}=wp.blockEditor,{Button:u,PanelRow:p,TextControl:g}=wp.components;const b=function(e){let{value:t,type:a=[],onSelect:l,placeholder:n,label:r}=e;return React.createElement("div",{className:"bMediaUpload"},React.createElement(s,null,r&&React.createElement("label",null,r),React.createElement(p,{className:"width-100"},React.createElement(d,{fallback:React.createElement(u,{icon:"upload",className:"button button-primary",onClick:()=>{const e=wp.media({button:{text:"Select"},multiple:!1});e.open(),e.on("select",(()=>{var t=e.state().get("selection").first().toJSON();l(t.url)}))}})},React.createElement(m,{allowedTypes:a,onSelect:e=>l(e.url),render:e=>{let{open:t}=e;return React.createElement(u,{className:"button button-primary",onClick:t,icon:"upload"})}})),React.createElement(g,{value:t,onChange:e=>l(e),placeholder:n}))))},{__:w}=wp.i18n,{Fragment:v}=wp.element,{MediaUpload:h,MediaUploadCheck:f}=wp.blockEditor,{Button:E,PanelRow:R,TextControl:y}=wp.components;function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)Object.prototype.hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},C.apply(this,arguments)}const _=e=>{let{label:t,className:a,onChange:l,onSelect:n,media:r=!1,isPremium:o=!1,Component:c,setOpen:i=(()=>{}),...s}=e;return React.createElement(c,C({className:`${a} ${o?"":"bplProIdentifier"}`,label:(e=>o?e:React.createElement(React.Fragment,null,React.createElement("span",{className:"bplOpacity75"},e)," ",React.createElement("span",{className:"labelPro"},"Pro")))(t),onChange:e=>o?r?n(e):l(e):i(!0),isPremium:o},s))},S=e=>{let{attributes:a,setAttributes:l}=e;const{model:n,models:o,multiple:c,isPremium:i,currentViewer:s,O3DVSettings:m}=a,d=(e,t,a)=>{const n=[...o];n[a][e]=t,l({models:n})};["gltf","glb"].includes(n.ext||"glb");return React.createElement(r.PanelBody,{title:(0,t.__)("Model","model-viewer")},React.createElement(r.PanelRow,null,React.createElement("strong",null,(0,t.__)("3D Viewer","model-viewer")),React.createElement(r.ButtonGroup,null,React.createElement(r.Tooltip,{delay:100,text:(0,t.__)("Support only .glb, .glTF","model-viewer")},React.createElement(r.Button,{variant:"modelViewer"===s?"primary":"",onClick:()=>l({currentViewer:"modelViewer"})},(0,t.__)("Lite","model-viewer"))),React.createElement(r.Tooltip,{text:(0,t.__)("Support .obj, .3ds, .stl, .ply, .gltf, .off, .3dm, .fbx, .dae, .wrl, .3mf, amf, ifc, .brep, .step, .iges, .fcstd, and .bim file types","model-viewer"),delay:100},React.createElement(r.Button,{variant:"O3DViewer"===s?"primary":"",onClick:()=>l({currentViewer:"O3DViewer"})},(0,t.__)("Advanced","model-viewer"))))),React.createElement("p",{className:"bp3d_help components-base-control__help"},React.createElement("i",null,"The Lite Viewer prioritizes .glb and .glTF files with robust features, while the Advanced Viewer, supporting"," ",React.createElement(r.Tooltip,{delay:100,text:"obj, .3ds, .stl, .ply, .gltf, .off, .3dm, .fbx, .dae, .wrl, .3mf, amf, ifc, .brep, .step, .iges, .fcstd, .bim"},React.createElement("strong",null,React.createElement("u",null," almost every file types"))),", has a more streamlined functionality.")),React.createElement(r.PanelRow,null,React.createElement(_,{label:(0,t.__)("Use Multiple Model?","model-viewer"),isPremium:i,Component:r.ToggleControl,checked:c,onChange:()=>l({multiple:!c})})),c&&i?React.createElement(React.Fragment,null,o?.map(((e,a)=>React.createElement(r.PanelBody,{key:a,title:(0,t.__)("Model ","model-viewer")+parseInt(a+1),initialOpen:!1,className:"modelPanel"},React.createElement(b,{value:e?.modelUrl,placeholder:(0,t.__)("Model URL","model-viewer"),onSelect:e=>d("modelUrl",e,a),type:["model/gltf-binary"],label:(0,t.__)("Model URL","model-viewer")}),React.createElement(b,{value:e?.poster,placeholder:(0,t.__)("Model Poster","model-viewer"),onSelect:e=>d("poster",e,a),type:["image"],label:(0,t.__)("Model Poster","model-viewer")}),"modelViewer"===s&&React.createElement(React.Fragment,null,React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Use Decoder","model-viewer")),React.createElement(r.SelectControl,{options:[{label:"None",value:"none"},{label:"Draco",value:"draco"}],value:e?.decoder,onChange:e=>d("decoder",e,a)})),"draco"===e?.decoder&&React.createElement(React.Fragment,null,React.createElement(b,{value:e?.binFile,placeholder:(0,t.__)("Bin File","model-viewer"),onSelect:e=>d("binFile",e,a),type:["application/octet-stream"],label:(0,t.__)("Bin File","model-viewer")}))),1!==o.length&&React.createElement(r.PanelRow,{className:"modelRemover"},React.createElement(r.Button,{variant:"primary",onClick:()=>{const e=[...o];e.splice(a,1),l({models:e})}},(0,t.__)("Remove","model-viewer")))))),React.createElement(r.PanelRow,null,React.createElement(r.Button,{variant:"primary",onClick:()=>{const e=[...o];e.push({}),l({models:e})}},(0,t.__)("Add New","model-viewer")))):React.createElement(React.Fragment,null,React.createElement(b,{value:n?.modelUrl,placeholder:(0,t.__)("Model URL","model-viewer"),onSelect:e=>{l({model:{...n,modelUrl:e,ext:e.split(".")?.[e.split(".").length-1]},O3DVSettings:{...m,camera:null}})},type:["model/gltf-binary","model/obj","application/octet-stream","application/x-3ds","application/vnd.ms-pki.stl","text/vnd.in3d.3dml","application/collada+xml","model/vrml","application/vnd.ms-3mfdocument"],label:(0,t.__)("Model URL","model-viewer")}),"modelViewer"===s&&React.createElement(React.Fragment,null,React.createElement(b,{value:n?.poster,placeholder:(0,t.__)("Model Poster","model-viewer"),onSelect:e=>l({model:{...n,poster:e}}),type:["image"],label:(0,t.__)("Model Poster","model-viewer")}),React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Use Decoder","model-viewer")),React.createElement(r.SelectControl,{options:[{label:"None",value:"none"},{label:"Draco",value:"Draco"}],value:n?.decoder,onChange:e=>l({model:{...n,decoder:e}})})),"Draco"===n?.decoder&&React.createElement(React.Fragment,null,React.createElement(b,{value:n?.binFile,placeholder:(0,t.__)("Bin File","model-viewer"),onSelect:e=>l({model:{...n,binFile:e}}),type:["application/octet-stream"],label:(0,t.__)("Bin File","model-viewer")})))))},{useState:k,Fragment:x}=wp.element,{Dropdown:P,ColorPicker:V,Button:N}=wp.components,{__:A}=wp.i18n,O=e=>{const{value:t,title:a="",toolbar:l=!1,defaultColor:n,onChange:r,className:o,disableAlpha:c,boxPosition:i="top left",globalColors:s=[]}=e,[m,d]=k(t);return React.createElement("div",{className:"BColor"},React.createElement(P,{position:i,renderToggle:e=>{let{isOpen:o,onToggle:c}=e;return React.createElement("div",{style:{display:"flex"}},n&&n!=m&&React.createElement(N,{icon:"image-rotate",className:"bColorReset",onClick:()=>{r(n),d(n)}}),!l&&React.createElement("div",{className:"BColorButtonContainer"},React.createElement(N,{className:"BColorButton",title:a,onClick:c,"aria-expanded":o,style:t?{backgroundColor:t}:{backgroundColor:"transparent"}})),l&&React.createElement("div",{className:"BColorToolbar",onClick:c},React.createElement("p",null,"A"),React.createElement("p",{className:"color",style:{background:t}})))},renderContent:e=>{let{isOpen:a,onToggle:l,onClose:n}=e;return React.createElement(x,null,React.createElement(V,{color:t||"",onChangeComplete:e=>{r(e.hex),d(e.hex)}}),s.length>0&&React.createElement("div",{style:{display:"flex"},className:"globalColors"},s.map((e=>React.createElement("div",{className:"BColorButtonContainer"},React.createElement("button",{className:"BColorButton",onClick:()=>{r(e.color),d(e)},"aria-expanded":a,style:t?{backgroundColor:e.color}:{backgroundColor:"transparent"}}))))))}}))};function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)Object.prototype.hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},L.apply(this,arguments)}const{__experimentalUnitControl:B}=wp.components,$=e=>{const{units:t=[{value:"px",label:"px",default:16},{value:"em",label:"em",default:1}],value:a,onChange:l,isResetValueOnUnitChange:n=!0,...r}=e;return React.createElement("div",{id:"BUnitControl"},React.createElement(B,L({onChange:l,isResetValueOnUnitChange:n,value:a,units:t},r)))},T="#4527a4",D=React.createElement("svg",{xmlns:"https://www.w3.org/2000/svg",width:15,height:15,viewBox:"0 0 548.172 548.172"},React.createElement("path",{fill:T,d:"M534.75 49.965c-8.945-8.945-19.694-13.422-32.261-13.422H45.681c-12.562 0-23.313 4.477-32.264 13.422C4.471 58.913 0 69.663 0 82.226v310.633c0 12.566 4.471 23.315 13.417 32.265 8.951 8.945 19.702 13.414 32.264 13.414h155.318c0 7.231-1.524 14.661-4.57 22.269-3.044 7.614-6.09 14.273-9.136 19.981-3.042 5.715-4.565 9.897-4.565 12.56 0 4.948 1.807 9.24 5.424 12.847 3.615 3.621 7.898 5.435 12.847 5.435h146.179c4.949 0 9.233-1.813 12.848-5.435 3.62-3.606 5.427-7.898 5.427-12.847 0-2.468-1.526-6.611-4.571-12.415-3.046-5.801-6.092-12.566-9.134-20.267-3.046-7.71-4.569-15.085-4.569-22.128h155.318c12.56 0 23.309-4.469 32.254-13.414 8.949-8.949 13.422-19.698 13.422-32.265V82.226c.003-12.563-4.474-23.313-13.423-32.261zm-23.123 269.803c0 2.475-.903 4.613-2.711 6.424-1.81 1.804-3.952 2.707-6.427 2.707H45.681c-2.473 0-4.615-.903-6.423-2.707-1.807-1.817-2.712-3.949-2.712-6.424V82.226c0-2.475.902-4.615 2.712-6.423 1.809-1.805 3.951-2.712 6.423-2.712h456.815c2.471 0 4.617.904 6.42 2.712 1.808 1.809 2.711 3.949 2.711 6.423v237.542z"})),F=React.createElement("svg",{xmlns:"https://www.w3.org/2000/svg",width:15,height:15,viewBox:"0 0 512 512"},React.createElement("path",{fill:T,d:"M394.667 0H117.333C87.936 0 64 23.936 64 53.333v405.333C64 488.064 87.936 512 117.333 512h277.333C424.064 512 448 488.064 448 458.667V53.333C448 23.936 424.064 0 394.667 0zM256 480c-11.755 0-21.333-9.579-21.333-21.333s9.579-21.333 21.333-21.333 21.333 9.579 21.333 21.333S267.755 480 256 480zm149.333-64c0 5.888-4.779 10.667-10.667 10.667H117.333c-5.888 0-10.667-4.779-10.667-10.667V53.333c0-5.888 4.779-10.667 10.667-10.667h277.333c5.888 0 10.667 4.779 10.667 10.667V416z"})),I=React.createElement("svg",{xmlns:"https://www.w3.org/2000/svg",width:15,height:15,viewBox:"0 0 503.604 503.604"},React.createElement("path",{fill:T,d:"M337.324 0H167.192c-28.924 0-53.5 23.584-53.5 52.5v398.664c0 28.916 24.056 52.44 52.98 52.44l170.412-.184c28.92 0 52.58-23.528 52.58-52.448l.248-398.5C389.908 23.452 366.364 0 337.324 0zM227.68 31.476h49.36c4.336 0 7.868 3.52 7.868 7.868 0 4.348-3.532 7.868-7.868 7.868h-49.36a7.865 7.865 0 01-7.868-7.868 7.865 7.865 0 017.868-7.868zm-29.66 2.504c2.916-2.912 8.224-2.952 11.136 0a7.973 7.973 0 012.324 5.588c0 2.048-.864 4.088-2.324 5.548-1.452 1.46-3.504 2.32-5.548 2.32-2.084 0-4.088-.86-5.588-2.32-1.452-1.456-2.28-3.5-2.28-5.548-.004-2.088.828-4.132 2.28-5.588zm52.752 454.028c-12.984 0-23.544-10.568-23.544-23.548 0-12.984 10.56-23.548 23.544-23.548s23.544 10.564 23.544 23.548c0 12.98-10.564 23.548-23.544 23.548zm114.716-63.1H141.232V74.756h224.256v350.152z"})),j=e=>{let{device:t="desktop",onChange:a,className:l="iconButton",style:n}=e;const[r,c]=(0,o.useState)(!1);return window.addEventListener("click",(()=>c(!1))),React.createElement("div",{className:"bDevice",style:n},!r&&React.createElement("button",{className:l,title:t[0].toUpperCase()+t.slice(1),onClick:e=>{c(!0),e.stopPropagation()}},"desktop"==t?D:"tablet"==t?F:I),r&&React.createElement("div",{className:"bDevicePopup"},[{value:"desktop",icon:D},{value:"tablet",icon:F},{value:"mobile",icon:I}].map((e=>{let{icon:t,value:n}=e;return React.createElement("button",{key:n,className:l,title:n[0].toUpperCase()+n.slice(1),onClick:()=>{a(n),c(!1)}},t)}))))},M=e=>{let{attributes:a,setAttributes:n}=e;const{styles:o,woo:c,currentViewer:i}=a,{width:s,height:m,bgColor:d,bgImage:u,progressBar:p,progressBarColor:g,thumbSize:w="90px"}=o,[v,h]=(0,l.useState)("desktop");return(0,l.useEffect)((()=>{"string"==typeof m&&n({styles:{...o,height:{desktop:m,tablet:m,mobile:m}}}),"string"==typeof s&&n({styles:{...o,width:{desktop:s,tablet:s,mobile:s}}})}),[]),React.createElement(r.PanelBody,{title:(0,t.__)("Style","model-viewer")},!c&&React.createElement(r.PanelRow,{className:"deviceForUnit"},React.createElement("label",null,(0,t.__)("Width","model-viewer")),React.createElement($,{value:s[v],onChange:e=>n({styles:{...o,width:{...o.width,[v]:e}}}),units:[{value:"px",label:"px",default:500},{value:"%",label:"%",default:100}]}),React.createElement(j,{device:v,onChange:e=>h(e)})),React.createElement(r.PanelRow,{className:"deviceForUnit"},React.createElement("label",null,(0,t.__)("Height","model-viewer")),React.createElement($,{value:m[v],onChange:e=>n({styles:{...o,height:{...o.height,[v]:e}}}),units:[{value:"px",label:"px",default:500},{value:"%",label:"%",default:100},{value:"vh",label:"vh",default:100}]}),React.createElement(j,{device:v,onChange:e=>h(e)})),React.createElement($,{label:(0,t.__)("Thumb Size","model-viewer"),value:w,onChange:e=>n({styles:{...o,thumbSize:e}}),units:[{value:"px",label:"px",default:100}]}),React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Background Color","model-viewer")),React.createElement(O,{value:d||"#ffffff",defaultColor:"#ffffff",onChange:e=>n({styles:{...o,bgColor:e}})})),"modelViewer"===i&&React.createElement(React.Fragment,null,React.createElement(r.PanelRow,null,React.createElement("label",null,React.createElement("strong",null,(0,t.__)("Note: Color will be ignore if background image used","model-viewer")))),React.createElement("br",null),React.createElement(r.PanelRow,null,React.createElement(_,{Component:b,media:!0,label:(0,t.__)("Background Image","model-viewer"),placeholder:(0,t.__)("Background Image","model-viewer"),value:u,onSelect:e=>n({styles:{...o,bgImage:e}})})),p&&React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("ProgressBar Color","model-viewer")),React.createElement(O,{value:g||"#666",defaultColor:"#666",onChange:e=>n({styles:{...o,progressBarColor:e}})}))))},U=e=>{let{attributes:a,setAttributes:l}=e;const{additional:n,isPremium:o}=a;return React.createElement(React.Fragment,null,React.createElement(r.PanelBody,{title:(0,t.__)("Additional","model-viewer")},React.createElement(_,{isPremium:o,Component:r.TextControl,label:(0,t.__)("ID","model-viewer"),value:n.ID,onChange:e=>l({additional:{...n,ID:e}})}),React.createElement(r.TextControl,{label:(0,t.__)("Class","model-viewer"),value:n.Class,onChange:e=>l({additional:{...n,Class:e}})}),React.createElement(_,{isPremium:o,Component:r.TextareaControl,label:(0,t.__)("CSS","model-viewer"),value:n.CSS,onChange:e=>l({additional:{...n,CSS:e}})})))},q=e=>{let{attributes:a,setAttributes:n}=e;const{animation:o,autoRotate:c,autoplay:i,exposure:s,fullscreen:m,lazyLoad:d,loadingPercentage:u,model:p,multiple:g,models:b,mouseControl:w,progressBar:v,rotate:h,rotateAlongX:f,rotateAlongY:E,rotationPerSecond:R,selectedAnimation:y,shadow:C,uniqueId:S,variant:k,isPagination:x,isNavigation:P,isPremium:V}=a,[N,A]=(0,l.useState)([]);return(0,l.useEffect)((()=>{setTimeout((()=>{document.querySelector(`#${S} model-viewer`)?.addEventListener("load",(function(){const e=this.availableAnimations.map((e=>({label:e,value:e})));A([...e,{label:"None",value:""}])}))}),0)}),[S,p,b,g]),React.createElement(React.Fragment,null,React.createElement(r.PanelBody,{title:(0,t.__)("Options","model-viewer")},React.createElement(r.ToggleControl,{label:(0,t.__)("Fullscreen","model-viewer"),checked:m,onChange:()=>n({fullscreen:!m})}),["gltf","glb"].includes(p.ext||"glb")&&React.createElement(React.Fragment,null,React.createElement(r.ToggleControl,{label:(0,t.__)("Mouse Control","model-viewer"),checked:w,onChange:()=>n({mouseControl:!w})}),React.createElement(r.ToggleControl,{label:(0,t.__)("Lazy Load","model-viewer"),checked:d,onChange:()=>n({lazyLoad:!d})}),React.createElement(r.ToggleControl,{label:(0,t.__)("Show Loading Percentage","model-viewer"),checked:u,onChange:()=>n({loadingPercentage:!u})}),React.createElement(r.ToggleControl,{label:(0,t.__)("Show Progressbar","model-viewer"),checked:v,onChange:()=>n({progressBar:!v})}),React.createElement(_,{Component:r.ToggleControl,isPremium:V,label:(0,t.__)("Enable Shadow","model-viewer"),checked:C,onChange:()=>n({shadow:!C})}),React.createElement(_,{isPremium:V,label:(0,t.__)("Autoplay ( if animated )","model-viewer"),Component:r.ToggleControl,checked:i,onChange:()=>n({autoplay:!i})}),React.createElement(_,{isPremium:V,label:(0,t.__)("Enable Variant Selector","model-viewer"),Component:r.ToggleControl,checked:k,onChange:()=>n({variant:!k})}),React.createElement(_,{isPremium:V,label:(0,t.__)("Enable Animation Selector","model-viewer"),Component:r.ToggleControl,checked:o,onChange:()=>n({animation:!o})}),o&&0!==N.length&&!g&&React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Set Animation","model-viewer")),React.createElement(r.SelectControl,{options:N,value:y,onChange:e=>n({selectedAnimation:e})})),React.createElement(_,{isPremium:V,Component:r.ToggleControl,label:(0,t.__)("Auto Rotate","model-viewer"),checked:c,onChange:()=>n({autoRotate:!c})}),c&&React.createElement(React.Fragment,null,React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Rotate Per Second (deg)","model-viewer")),React.createElement(r.__experimentalNumberControl,{value:R,onChange:e=>n({rotationPerSecond:e})}))),!g&&React.createElement(React.Fragment,null,React.createElement(_,{isPremium:V,Component:r.ToggleControl,label:(0,t.__)("Rotate Direction","model-viewer"),checked:h,onChange:()=>n({rotate:!h})}),h&&React.createElement(React.Fragment,null,React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Rotate Along X","model-viewer")),React.createElement(r.__experimentalNumberControl,{onChange:e=>n({rotateAlongX:parseInt(e)}),value:f,max:360,min:0})),React.createElement(r.PanelRow,null,React.createElement("label",null,(0,t.__)("Rotate Along Y","model-viewer")),React.createElement(r.__experimentalNumberControl,{onChange:e=>n({rotateAlongY:parseInt(e)}),value:E,max:360,min:0})))),React.createElement(_,{isPremium:V,Component:r.RangeControl,label:(0,t.__)("Exposure","model-viewer"),value:s,onChange:e=>n({exposure:e}),min:.1,step:.1,max:10}),(g||!V)&&React.createElement(React.Fragment,null,React.createElement(_,{isPremium:V,Component:r.ToggleControl,label:(0,t.__)("show thumbnails list","model-viewer"),checked:x,onChange:()=>n({isPagination:!x})}),React.createElement(_,{isPremium:V,Component:r.ToggleControl,label:(0,t.__)("show arrow","model-viewer"),checked:P,onChange:()=>n({isNavigation:!P})})))))},z=e=>{let{attributes:a,setAttributes:l}=e;const{O3DVSettings:n,multiple:o,isPremium:i}=a,{isFullscreen:s,isNavigation:m=!1,isPagination:d=!1,mouseControl:u}=n,p=e=>{l({O3DVSettings:{...n,...e}})};return c().createElement(r.PanelBody,{title:(0,t.__)("Options","model-viewer")},c().createElement(r.ToggleControl,{label:(0,t.__)("Fullscreen","model-viewer"),checked:s,onChange:()=>p({isFullscreen:!s})}),c().createElement(r.ToggleControl,{label:(0,t.__)("Mouse Control","model-viewer"),checked:u,onChange:()=>p({mouseControl:!u})}),(o||!i)&&c().createElement(c().Fragment,null,c().createElement(_,{isPremium:i,Component:r.ToggleControl,label:(0,t.__)("show thumbnails list","model-viewer"),checked:d,onChange:()=>p({isPagination:!d})}),c().createElement(_,{isPremium:i,Component:r.ToggleControl,label:(0,t.__)("show arrow","model-viewer"),checked:m,onChange:()=>p({isNavigation:!m})})))},{InspectorControls:H}=wp.blockEditor,W=(0,n.withSelect)((e=>{const t=e("core/editor")?.getCurrentPostType()||"product",a=e("core/editor")?.getCurrentPostId();return{postId:a,postType:t}}))((e=>{let{attributes:a,setAttributes:n,postId:o,postType:c}=e;const[i,s]=(0,l.useState)(!1),{currentViewer:m}=a;return React.createElement(H,null,"bp3d-model-viewer"===c&&React.createElement(r.PanelBody,null,React.createElement(r.PanelRow,null,React.createElement("div",{className:"b3dviewer_front_shortcode justify-center"},React.createElement(r.ClipboardButton,{title:i?(0,t.__)("Copied","model-viewer"):"",variant:"primary",text:`[3d_viewer id=${o}]`,onCopy:()=>s(!0),onFinishCopy:()=>s(!1)},(0,t.__)("Copy Shortcode","model-viewer")),i&&React.createElement(r.Snackbar,null,(0,t.__)("Copied Succesfully","model-viewer"))))),React.createElement(r.TabPanel,{className:"b3dviewer-tab-panel",activeClass:"active",tabs:[{name:"settings",title:(0,t.__)("Settings","model-viewer"),className:"settings"},{name:"style",title:(0,t.__)("Style","model-viewer"),className:"style"}]},(e=>React.createElement("span",null,"settings"===e.name&&React.createElement(r.Panel,null,React.createElement(S,{attributes:a,setAttributes:n}),"modelViewer"===m&&React.createElement(q,{attributes:a,setAttributes:n}),"O3DViewer"===m&&React.createElement(z,{attributes:a,setAttributes:n})),"style"===e.name&&React.createElement(r.Panel,null,React.createElement(M,{attributes:a,setAttributes:n}),React.createElement(U,{attributes:a,setAttributes:n}))))))}));var Z=a(812),J=a(751);const{withSelect:X}=wp.data,G=X((e=>{const{isEditorSidebarOpened:t}=e("core/edit-post"),a=e("core/editor")?.getCurrentPostType()||"product";return{isSidebarOpened:t(),postType:a}}))((e=>{const{clientId:a,attributes:n,setAttributes:r,isSelected:o,postType:c}=e,[i,s]=(0,l.useState)(!0),{uniqueId:m,model:d,models:u,multiple:p,additional:g,align:b,woo:w,isPremium:v=!0}=n,{data:h,isLoading:f}=(0,J.Z9)(bp3dBlock?.ajaxURL,{action:"bp3d_pipe_checker",_wpnonce:bp3dBlock?.nonce});(0,l.useEffect)((()=>{const e=!!["product",null].includes(c);r({uniqueId:"b3dviewer"+a.substr(0,8),woo:e})}),[]),(0,l.useEffect)((()=>{r({isPremium:h?.isPipe}),h?.isPipe||f||r({multiple:!1})}),[h,f]),(0,l.useEffect)((()=>{try{new URL(E),s(!0)}catch(e){s(!1)}}),[m,d,u,p]);const E=p?u[0]?.modelUrl:d?.modelUrl;return f?React.createElement("h2",null,"Loading..."):React.createElement(React.Fragment,null,!o&&React.createElement("div",{className:"modelViewerIsSelected"}),React.createElement(React.Fragment,null,React.createElement(W,{attributes:n,setAttributes:r}),E&&i&&React.createElement(Z.Z,{setAttributes:r,attributes:n,__:t.__}),E&&!i&&React.createElement("h2",null,(0,t.__)("3D file not valid","model-viewer")),!E&&React.createElement("h2",null,(0,t.__)("Click here to upload 3D Models","model-viewer"))))})),{registerBlockType:Y}=wp.blocks;Y(e,{edit:G,save:()=>null})})()})();
//# sourceMappingURL=block.js.map