File: /var/www/html/maisonimmobiliare/wp-content/plugins/3d-viewer/dist/public.js.map
{"version":3,"file":"public.js","mappings":"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","sources":["webpack:///./src/blocks/3d-viewer/Components/Style.js","webpack:///./src/components/Icons/fullscreenOpen.js","webpack:///./src/components/Icons/Close.js","webpack:///./src/blocks/3d-viewer/Components/SliderControllder.js","webpack:///./public/images/envmaps/fishermans_bastion/posx.jpg","webpack:///./public/images/envmaps/fishermans_bastion/posy.jpg","webpack:///./public/images/envmaps/fishermans_bastion/posz.jpg","webpack:///./public/images/envmaps/fishermans_bastion/negx.jpg","webpack:///./public/images/envmaps/fishermans_bastion/negy.jpg","webpack:///./public/images/envmaps/fishermans_bastion/negz.jpg","webpack:///./src/blocks/3d-viewer/Components/ModelPagination.js","webpack:///./src/blocks/3d-viewer/Basic3DViewer.js","webpack:///./src/blocks/3d-viewer/Components/Viewer.js","webpack:///./src/public/product.js","webpack:///./src/utils.js","webpack:///./src/public/index.js","webpack:///../wp-utils/v1/hexToRGB.js","webpack:///../wp-utils/v1/jsonParse.js","webpack:///external var [\"React\"]","webpack:///external var [\"ReactDOM\"]","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/publicPath","webpack:///webpack/startup"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\n\r\nconst Style = ({ attributes }) => {\r\n const { styles, uniqueId, woo, progressBar, additional } = attributes;\r\n const { progressBarColor, thumbSize = \"90px\" } = styles;\r\n\r\n const [CSS, setCSS] = useState(null);\r\n\r\n useEffect(() => {\r\n const CSS = `\r\n #${uniqueId} {\r\n width: ${`${styles?.width?.desktop || styles.width}`};\r\n height: calc(${styles?.height?.desktop || styles.height} + 100px);\r\n }\r\n .pop-up-content-wrap #${uniqueId} {\r\n height: ${styles?.height?.desktop || styles.height};\r\n }\r\n #${uniqueId} .select {display: none}\r\n #${uniqueId} .b3dviewer-wrapper {\r\n height: ${styles?.height?.desktop || styles.height};\r\n }\r\n\r\n #${uniqueId} model-viewer {\r\n background: ${styles?.bgColor} ${styles?.bgImage ? `url(${styles?.bgImage})` : \" \"} no-repeat center center; \r\n background-size: cover;\r\n }\r\n #${uniqueId} model-viewer::part(default-progress-bar) {\r\n display: ${!progressBar ? \"none\" : \"block\"}\r\n }\r\n @media screen and (max-width: 768px){\r\n #${uniqueId} {\r\n width: ${woo ? \"\" : `${styles?.width.tablet || styles.width}`};\r\n height: ${styles?.height.tablet || styles.height};\r\n }\r\n }\r\n @media screen and (max-width: 480px){\r\n #${uniqueId} {\r\n width: ${woo ? \"\" : `${styles?.width.mobile || styles.width}`};\r\n height: ${styles?.height.mobile || styles.height};\r\n }\r\n }\r\n #${uniqueId} model-viewer::part(default-progress-bar){\r\n background: ${progressBarColor};\r\n }\r\n #${uniqueId} .slides .slide{\r\n width: ${thumbSize};\r\n height: ${thumbSize};\r\n padding: calc(${thumbSize} * 0.04);\r\n }\r\n #${uniqueId} .slide-number span{\r\n font-size: calc(${thumbSize} * 0.8);\r\n }\r\n ${additional?.CSS}\r\n `.replaceAll(/\\n?\\s\\s/g, \"\");\r\n setCSS(CSS);\r\n }, [uniqueId, styles, additional, progressBar]);\r\n\r\n return <style>{CSS}</style>;\r\n};\r\n\r\nexport default Style;\r\n","const FullscreenOpen = ({ element }) => {\r\n const handleClick = () => {\r\n if (element) {\r\n element.requestFullscreen();\r\n }\r\n };\r\n\r\n return (\r\n <svg onClick={handleClick} 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\">\r\n <path\r\n fillRule=\"evenodd\"\r\n 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\"\r\n ></path>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default FullscreenOpen;\r\n","// import { withSelect } from \"@wordpress/data\";\r\n\r\n// const Close = ({ isSidebarOpened }) => {\r\n// return (\r\n// <svg id=\"closeBtn\" className={isSidebarOpened ? \"sidebar-open\" : \"sidebar-closed\"} width=\"34px\" height=\"34px\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n// <path fill=\"none\" stroke=\"#333\" strokeWidth=\"2\" d=\"M7,7 L17,17 M7,17 L17,7\"></path>\r\n// </svg>\r\n// );\r\n// };\r\n\r\n// export default withSelect((select) => {\r\n// const { isEditorSidebarOpened } = select(\"core/edit-post\");\r\n// return {\r\n// isSidebarOpened: isEditorSidebarOpened(),\r\n// };\r\n// })(Close);\r\n\r\nconst Close = () => {\r\n function closeFullscreen() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n // / Safari /;\r\n document.webkitExitFullscreen();\r\n } else if (document.msExitFullscreen) {\r\n // / IE11 /;\r\n document.msExitFullscreen();\r\n }\r\n }\r\n return (\r\n <svg id=\"closeBtn\" onClick={closeFullscreen} className=\"sidebar-open\" width=\"34px\" height=\"34px\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill=\"none\" stroke=\"#f2f2f2\" strokeWidth=\"2\" d=\"M7,7 L17,17 M7,17 L17,7\"></path>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default Close;\r\n","import React from \"react\";\r\n\r\nconst SliderController = ({ currentItem, setCurrentItem, models }) => {\r\n return (\r\n <>\r\n <div className=\"slideController\">\r\n <svg fill=\"#000000\" onClick={() => setCurrentItem(currentItem > 0 ? currentItem - 1 : currentItem)} className={`arrow-left ${currentItem > 0 ? \"\" : \"disabled\"}`} width=\"24px\" height=\"24px\" viewBox=\"-78.5 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <title>left</title>\r\n <path d=\"M257 64L291 98 128 262 291 426 257 460 61 262 257 64Z\" />\r\n </svg>\r\n <svg onClick={() => setCurrentItem(currentItem < models.length - 1 ? currentItem + 1 : currentItem)} fill=\"#000000\" className={`arrow-right ${currentItem < models.length - 1 ? \"\" : \"disabled\"}`} width=\"24px\" height=\"24px\" viewBox=\"-77 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <title>right</title>\r\n <path d=\"M98 460L64 426 227 262 64 98 98 64 294 262 98 460Z\" />\r\n </svg>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default SliderController;\r\n","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/posx.jpg\";","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/posy.jpg\";","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/posz.jpg\";","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/negx.jpg\";","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/negy.jpg\";","export default __webpack_public_path__ + \"public/images/envmaps/fishermans_bastion/negz.jpg\";","import React from \"react\";\r\n\r\nconst ModelPagination = ({ attributes, currentItem, setCurrentItem, isPagination }) => {\r\n const { multiple, woo, models } = attributes;\r\n return (\r\n <>\r\n {multiple && !woo && isPagination && (\r\n <div className=\"slider\">\r\n <div className=\"slides\">\r\n {models.map((model, index) => (\r\n <button\r\n key={index}\r\n className={`slide ${index === currentItem ? \"selected\" : \"\"} ${model.poster ? \"\" : \"slide-number\"}`}\r\n data-source={model?.modelUrl}\r\n data-poster={model?.poster}\r\n onClick={() => setCurrentItem(index)}\r\n >\r\n {model.poster ? <img src={model?.poster} /> : <span>{index + 1}</span>}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ModelPagination;\r\n","import { useEffect, useRef, useState } from \"react\";\r\n\r\nimport posx from \"../../../public/images/envmaps/fishermans_bastion/posx.jpg\";\r\nimport posy from \"../../../public/images/envmaps/fishermans_bastion/posy.jpg\";\r\nimport posz from \"../../../public/images/envmaps/fishermans_bastion/posz.jpg\";\r\nimport negx from \"../../../public/images/envmaps/fishermans_bastion/negx.jpg\";\r\nimport negy from \"../../../public/images/envmaps/fishermans_bastion/negy.jpg\";\r\nimport negz from \"../../../public/images/envmaps/fishermans_bastion/negz.jpg\";\r\nimport { hexToRGB } from \"../../../../wp-utils/v1\";\r\nimport SliderController from \"./Components/SliderControllder\";\r\nimport ModelPagination from \"./Components/ModelPagination\";\r\n\r\nfunction copyObjectUsingJSON(originalObject) {\r\n return JSON.parse(JSON.stringify(originalObject));\r\n}\r\n\r\nconst Button = (props) => {\r\n return <button {...props}></button>;\r\n};\r\n\r\nconst Basic3DViewer = (props) => {\r\n const { attributes, currentItem, setCurrentItem, modelSrc, setAttributes, __ } = props;\r\n const { styles, models, multiple, O3DVSettings } = attributes;\r\n const { isNavigation, isPagination, camera, mouseControl } = O3DVSettings;\r\n\r\n const [viewerLoaded, setViewerLoaded] = useState(false);\r\n\r\n const parentDiv = useRef(null);\r\n const viewerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (modelSrc) {\r\n viewerRef.current?.Destroy();\r\n viewerRef.current?.canvas?.remove();\r\n viewerRef.current = null;\r\n if (viewerRef.current === null) {\r\n OV.SetExternalLibLocation(\"../libs\");\r\n\r\n const defaultCamera =\r\n camera && !multiple\r\n ? { camera: new OV.Camera(new OV.Coord3D(...Object.values(camera.eye)), new OV.Coord3D(...Object.values(camera.center)), new OV.Coord3D(...Object.values(camera.up)), 45.0) }\r\n : {};\r\n\r\n let viewer = new OV.EmbeddedViewer(parentDiv.current, {\r\n ...defaultCamera,\r\n backgroundColor: new OV.RGBAColor(255, 255, 255, 255),\r\n edgeSettings: new OV.EdgeSettings(false, new OV.RGBColor(0, 0, 0), 1),\r\n environmentSettings: new OV.EnvironmentSettings([posx, posy, posz, negx, negy, negz], false),\r\n });\r\n\r\n const models = [modelSrc];\r\n viewer.LoadModelFromUrlList(models);\r\n viewerRef.current = viewer;\r\n window.VR = viewer;\r\n } else {\r\n viewerRef.current.LoadModelFromUrlList([modelSrc]);\r\n const Coord3D = new OV.Coord3D(0.0, 0.0, 0.0);\r\n viewerRef.current.viewer.SetCamera(new OV.Camera(new OV.Coord3D(0.0, 0.0, 1.0), Coord3D, new OV.Coord3D(0.0, 1.0, 0.0), 45.0));\r\n }\r\n }\r\n\r\n return () => {\r\n if (viewerRef.current !== null && parentDiv.current !== null && viewerLoaded) {\r\n delete viewerRef.current.model;\r\n viewerRef.current.viewer.renderer.resetState();\r\n viewerRef.current.viewer.Clear();\r\n if (viewerRef.current.viewer) {\r\n delete viewerRef.current.viewer;\r\n }\r\n const gl = viewerRef.current.canvas.getContext(\"webgl2\");\r\n gl.getExtension(\"WEBGL_lose_context\").loseContext();\r\n const tempClone = viewerRef.current.canvas.cloneNode(true);\r\n viewerRef.current.canvas.parentNode.replaceChild(tempClone, viewerRef.current.canvas);\r\n parentDiv.current?.removeChild(parentDiv.current.children[0]);\r\n viewerRef.current.canvas?.parentNode?.removeChild(viewerRef.current.canvas);\r\n viewerRef.current.canvas.remove();\r\n viewerRef.current = null;\r\n setViewerLoaded(false);\r\n }\r\n };\r\n }, [modelSrc]);\r\n\r\n useEffect(() => {\r\n if (styles.bgColor) {\r\n viewerRef.current?.viewer?.SetBackgroundColor(hexToRGB(styles.bgColor));\r\n }\r\n setTimeout(() => {\r\n viewerRef.current?.viewer?.Resize(parentDiv.current.offsetWidth, parentDiv.current.offsetHeight);\r\n }, 10);\r\n viewerRef.current.viewer.Render();\r\n window.viewer = viewerRef.current;\r\n }, [styles, modelSrc]);\r\n\r\n // resize if window is resized\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", () => {\r\n viewerRef.current?.viewer?.Resize(parentDiv.current?.offsetWidth, parentDiv.current?.offsetHeight);\r\n });\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div\r\n ref={parentDiv}\r\n role={\"img\"}\r\n aria-label=\"Canvas showing the model in the 3D Viewer\"\r\n className={`${mouseControl ? \"\" : \"DMC\"} ${\r\n viewerRef.current?.modelLoader?.inProgress\r\n } relative flex flex-col items-center justify-center p-2 h-72 w-72 border-2 border-black rounded-sm online_3d_viewer`}\r\n style={{ width: styles.width.desktop || styles.width, height: styles.height.desktop || styles.height }}\r\n >\r\n <ModelPagination attributes={attributes} setCurrentItem={setCurrentItem} currentItem={currentItem} isPagination={isPagination} />\r\n {multiple && isNavigation && models.length > 1 && <SliderController currentItem={currentItem} setCurrentItem={setCurrentItem} models={models} />}\r\n {setAttributes && !multiple && (\r\n <div className=\"setDefaultViewContainer\">\r\n <Button\r\n variant=\"primary\"\r\n className=\"setDefaultView button button-primary\"\r\n onClick={() => {\r\n if (viewerRef.current) {\r\n const camera = copyObjectUsingJSON(viewerRef.current?.viewer?.GetCamera());\r\n setAttributes({ O3DVSettings: { ...O3DVSettings, camera } });\r\n }\r\n }}\r\n >\r\n {camera ? __(\"Reset Default View\", \"model-viewer\") : __(\"Set Default View\", \"model-viewer\")}\r\n </Button>\r\n {camera && (\r\n <>\r\n <Button\r\n variant=\"primary\"\r\n className=\"setDefaultView button button-primary\"\r\n onClick={() => {\r\n viewerRef.current?.viewer.SetCamera(\r\n new OV.Camera(new OV.Coord3D(...Object.values(camera.eye)), new OV.Coord3D(...Object.values(camera.center)), new OV.Coord3D(...Object.values(camera.up)), 45.0)\r\n );\r\n }}\r\n >\r\n {__(\"See Default View\", \"model-viewer\")}\r\n </Button>\r\n <Button variant=\"primary\" className=\"setDefaultView button button-primary\" onClick={() => setAttributes({ O3DVSettings: { ...O3DVSettings, camera: null } })}>\r\n {__(\"Remove Default View\", \"model-viewer\")}\r\n </Button>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default Basic3DViewer;\r\n","import { useEffect, useState, useRef } from \"react\";\r\n\r\nimport Style from \"./Style\";\r\nimport FullscreenOpen from \"../../../components/Icons/fullscreenOpen\";\r\nimport Close from \"../../../components/Icons/Close\";\r\nimport modelRenderer from \"../../../public\";\r\nimport SliderController from \"./SliderControllder\";\r\nimport Basic3DViewer from \"../Basic3DViewer\";\r\n\r\nconst Viewer = ({ attributes, __, setAttributes }) => {\r\n const [isValid, setIsValid] = useState(false);\r\n const {\r\n loadingPercentage = false,\r\n uniqueId,\r\n model,\r\n models,\r\n fullscreen,\r\n variant,\r\n multiple,\r\n additional,\r\n exposure,\r\n selectedAnimation,\r\n animation,\r\n autoRotate,\r\n autoplay,\r\n rotateAlongX,\r\n align,\r\n woo,\r\n rotationPerSecond,\r\n preload,\r\n isPagination,\r\n isNavigation,\r\n zoom,\r\n currentViewer = \"modelViewer\",\r\n O3DVSettings = {},\r\n loading,\r\n } = attributes;\r\n\r\n const { isFullscreen } = O3DVSettings;\r\n\r\n const [currentItem, setCurrentItem] = useState(0);\r\n const [modelSrc, setModelSrc] = useState(multiple ? models[currentItem]?.modelUrl : model?.modelUrl);\r\n\r\n const viewerRef = useRef();\r\n const variantRef = useRef();\r\n const animationRef = useRef();\r\n\r\n useEffect(() => {\r\n setModelSrc(multiple ? models[currentItem]?.modelUrl : model?.modelUrl);\r\n }, [currentItem, multiple, models, model]);\r\n\r\n useEffect(() => {\r\n try {\r\n new URL(modelSrc);\r\n setIsValid(true);\r\n } catch (error) {\r\n setIsValid(false);\r\n }\r\n\r\n setTimeout(() => {\r\n modelRenderer({ animation, variant, wrapper: viewerRef.current?.parentElement });\r\n }, 10);\r\n }, [uniqueId, model, models, multiple, modelSrc]);\r\n\r\n useEffect(() => {\r\n if (!autoplay) {\r\n viewerRef.current?.pause();\r\n }\r\n }, [autoplay]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (viewerRef.current && animationRef.current) {\r\n viewerRef.current.animationName = selectedAnimation;\r\n const selectElement = animationRef.current.querySelector(\"select\");\r\n selectElement.value = selectedAnimation;\r\n }\r\n }, 10);\r\n }, [selectedAnimation]);\r\n\r\n useEffect(() => {\r\n if (variantRef.current) {\r\n if (variant) {\r\n variantRef.current.style.display = \"inline-block\";\r\n } else {\r\n variantRef.current.style.display = \"none\";\r\n }\r\n }\r\n }, [variant]);\r\n\r\n useEffect(() => {\r\n if (animationRef.current) {\r\n if (animation && viewerRef.current.loaded) {\r\n animationRef.current.style.display = \"inline-block\";\r\n } else {\r\n animationRef.current.style.display = \"none\";\r\n }\r\n }\r\n }, [animation, animationRef]);\r\n\r\n useEffect(() => {\r\n if (viewerRef.current?.turntableRotation) {\r\n viewerRef.current.resetTurntableRotation();\r\n }\r\n }, [rotateAlongX]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n const { mouseControl, autoplay, shadow, rotate, rotateAlongX, rotateAlongY, loading } = attributes;\r\n if (viewerRef.current) {\r\n mouseControl ? viewerRef.current.setAttribute(\"camera-controls\", \"\") : viewerRef.current.removeAttribute(\"camera-controls\");\r\n autoplay ? viewerRef.current.setAttribute(\"autoplay\", \"\") : viewerRef.current.removeAttribute(\"autoplay\");\r\n shadow ? viewerRef.current.setAttribute(\"shadow-intensity\", \"1\") : viewerRef.current.removeAttribute(\"shadow-intensity\");\r\n shadow ? viewerRef.current.setAttribute(\"shadow-softness\", \"1\") : viewerRef.current.removeAttribute(\"shadow-softness\");\r\n loading ? viewerRef.current.setAttribute(\"loading\", loading) : viewerRef.current.removeAttribute(\"loading\");\r\n if (autoRotate) {\r\n viewerRef.current.setAttribute(\"auto-rotate\", \"\");\r\n viewerRef.current.setAttribute(\"rotation-per-second\", rotationPerSecond + \"deg\");\r\n } else {\r\n viewerRef.current.removeAttribute(\"auto-rotate\");\r\n }\r\n rotate ? viewerRef.current.setAttribute(\"camera-orbit\", `${rotateAlongX}deg ${rotateAlongY}deg 105%`) : viewerRef.current.removeAttribute(\"camera-orbit\");\r\n viewerRef.current.setAttribute(\"reveal\", preload);\r\n viewerRef.current.dataset.animation = selectedAnimation;\r\n viewerRef.current.setAttribute(\"exposure\", exposure);\r\n\r\n if (!zoom) {\r\n viewerRef.current.setAttribute(\"disable-zoom\", \"\");\r\n } else {\r\n viewerRef.current.removeAttribute(\"disable-zoom\");\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n rotate ? viewerRef.current?.setAttribute(\"camera-orbit\", `${rotateAlongX}deg ${rotateAlongY}deg 105%`) : viewerRef.current.removeAttribute(\"camera-orbit\");\r\n }, 500);\r\n }, 10);\r\n }, [uniqueId, attributes]);\r\n\r\n useEffect(() => {\r\n if (woo) {\r\n const variantElement = document.querySelector(\".variations_form .variations select\");\r\n variantElement?.addEventListener(\"change\", function (e) {\r\n const modelItem = models.find((item) => item.product_variant === e.target.value) || models.find((item) => item.product_variant === \"all\") || models?.[0];\r\n setModelSrc(modelItem.modelUrl);\r\n });\r\n\r\n document.querySelectorAll(\".variable-items-wrapper li\")?.forEach((variant) =>\r\n variant.addEventListener(\"click\", function () {\r\n const modelItem = models.find((item) => item.product_variant === variant.dataset?.value) || models.find((item) => item.product_variant === \"all\") || models?.[0];\r\n setModelSrc(modelItem.modelUrl);\r\n })\r\n );\r\n\r\n setTimeout(() => {\r\n const targetElement = document.querySelector(\".select2-selection__rendered\");\r\n\r\n // Create a new MutationObserver\r\n const observer = new MutationObserver(function (mutationsList) {\r\n // This callback function will be called when the innerText changes\r\n for (const mutation of mutationsList) {\r\n if (mutation.type === \"childList\" && mutation.target === targetElement) {\r\n const modelItem = models.find((item) => item.product_variant === targetElement.innerText) || models.find((item) => item.product_variant === \"all\") || models?.[0];\r\n setModelSrc(modelItem.modelUrl);\r\n }\r\n }\r\n });\r\n\r\n // Configure and start observing the target element\r\n if (targetElement) {\r\n const config = { childList: true, subtree: true };\r\n observer.observe(targetElement, config);\r\n }\r\n }, 1000);\r\n }\r\n }, [woo]);\r\n\r\n const modelPoster = multiple ? models[0]?.poster : model?.poster;\r\n\r\n return (\r\n <div id={`${uniqueId}`} className={`modelViewerBlock b3dviewer align${align} ${woo ? \"woocommerce\" : \"\"} ${isPagination && multiple ? \"pagination\" : \"\"}`}>\r\n <div id={additional?.ID} className={`${additional?.Class} b3dviewer-wrapper bp_model_parent `}>\r\n <Style attributes={attributes} />\r\n\r\n {modelSrc && isValid && (\r\n <>\r\n {/* {[\"glb\", \"gltf\"].includes(modelSrc?.split(\".\")?.pop()) ? ( */}\r\n {currentViewer === \"modelViewer\" ? (\r\n <model-viewer\r\n loading={loading ? loading : \"auto\"}\r\n camera-controls\r\n ref={viewerRef}\r\n data-js-focus-visible\r\n data-decoder={multiple ? models[0]?.decoder : model?.decoder}\r\n poster={modelPoster?.replace(/https?:/, window.location.protocol)}\r\n src={modelSrc?.replace(/https?:/, window.location.protocol)}\r\n alt=\"A 3D model\"\r\n >\r\n <button\r\n type=\"button\"\r\n slot=\"poster\"\r\n id=\"default-poster\"\r\n aria-label=\"A 3D model\"\r\n style={{ backgroundImage: ` url(\"${modelPoster?.replace(/https?:/, window.location.protocol)}\")` }}\r\n ></button>\r\n\r\n {/* {loadingPercentage && viewerRef.current && !viewerRef.current?.loaded && ( */}\r\n {loadingPercentage && (loading === \"lazy\" || viewerRef.current) && !viewerRef?.current?.loaded && (\r\n <div className=\"percentageWrapper\">\r\n <div className=\"overlay\"></div>\r\n <span className=\"percentage\">0%</span>\r\n </div>\r\n )}\r\n <div className=\"variantWrapper select\" ref={variantRef}>\r\n {__(\"Variant\", \"model-viewer\")} <select id=\"variant\"></select>\r\n </div>\r\n <div className=\"animationWrapper select\" ref={animationRef}>\r\n {__(\"Animations\", \"model-viewer\")} <select id=\"animations\"></select>\r\n </div>\r\n {multiple && !woo && isPagination && (\r\n <div className=\"slider\">\r\n <div className=\"slides\">\r\n {models.map((model, index) => (\r\n <button\r\n key={index}\r\n className={`slide ${index === 0 ? \"selected\" : \"\"} ${model.poster ? \"\" : \"slide-number\"}`}\r\n data-source={model?.modelUrl}\r\n data-poster={model?.poster}\r\n onClick={() => setCurrentItem(index)}\r\n >\r\n {model.poster ? <img src={model?.poster} /> : <span>{index + 1}</span>}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {multiple && isNavigation && models.length > 1 && <SliderController currentItem={currentItem} setCurrentItem={setCurrentItem} models={models} />}\r\n </model-viewer>\r\n ) : (\r\n <>\r\n {/* {__(\"This format does not support this plugin\", \"model-viewer\")} */}\r\n <Basic3DViewer __={__} setAttributes={setAttributes} modelSrc={modelSrc} currentItem={currentItem} setCurrentItem={setCurrentItem} model={modelSrc} attributes={attributes} />\r\n </>\r\n )}\r\n </>\r\n )}\r\n\r\n {modelSrc === \"\" && models[currentItem].poster && (\r\n <>\r\n {woo && models.length > 1 && <SliderController currentItem={currentItem} setCurrentItem={setCurrentItem} models={models} />}\r\n <img src={models[currentItem].poster} />\r\n </>\r\n )}\r\n {/* Thumbnails for woocommerce product */}\r\n {((fullscreen && currentViewer === \"modelViewer\") || (currentViewer === \"O3DViewer\" && isFullscreen)) && (\r\n <>\r\n <FullscreenOpen element={document.querySelector(`#${uniqueId} .bp_model_parent`)} />\r\n <Close />\r\n </>\r\n )}\r\n </div>\r\n {woo && isPagination && (\r\n <div className=\"modelThumbs\">\r\n {models.map((item, index) => {\r\n return <>{item.poster && <img className={`thumbsItem ${index === currentItem ? \"selected\" : \"\"}`} onClick={() => setCurrentItem(index)} src={item.poster} />}</>;\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Viewer;\r\n","import \"./style.scss\";\r\n// import \"./index.js\";\r\n\r\nwindow.addEventListener(\"elementor/frontend/init\", function () {\r\n elementorFrontend.hooks.addAction(\"frontend/element_ready/3dModelViewer.default\", function (scope, $) {\r\n const wrapper = scope[0].querySelector(\".b3dviewer-wrapper.elementor\");\r\n modelRenderer({ animation: true, variant: true, wrapper });\r\n });\r\n});\r\n\r\n// Full Screen\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n const modelWrapper = document.querySelectorAll(\".modelViewerBlock\");\r\n setTimeout(() => {\r\n Object.values(modelWrapper).map((wrapper) => {\r\n let modelViewer = true;\r\n // const fullscreen = wrapper.querySelector(\"#openBtn\");\r\n // const closeBtn = wrapper.querySelector(\"#closeBtn\");\r\n const models = wrapper.querySelectorAll(\"model-viewer\") || wrapper.querySelectorAll(\".online_3d_viewer\");\r\n const progress = wrapper.querySelector(\".progress\");\r\n\r\n // console.log({ models });\r\n\r\n models.forEach((model) => {\r\n const src = new URL(model?.src || model?.getAttribute(\"src\") || model?.getAttribute(\"model\"));\r\n if (model.tagName === \"DIV\") {\r\n // setTimeout(() => {\r\n // fullscreen.addEventListener(\"click\", () => {\r\n // model.parentNode.classList.add(\"fullscreen\");\r\n // window.dispatchEvent(new Event(\"resize\"));\r\n // });\r\n // closeBtn.onclick = () => {\r\n // model.parentNode.classList.remove(\"fullscreen\");\r\n // window.dispatchEvent(new Event(\"resize\"));\r\n // };\r\n // }, 2000);\r\n } else {\r\n // add/remove ssl from url depends on website\r\n if (src?.protocol !== location?.protocol) {\r\n model?.setAttribute(\"src\", src.href.replace(src?.protocol, location?.protocol));\r\n }\r\n\r\n if (progress) {\r\n model?.addEventListener(\"progress\", (e) => {\r\n progress.innerHTML = parseInt(e.detail.totalProgress * 100) + \"%\";\r\n });\r\n model?.addEventListener(\"load\", () => {\r\n setTimeout(() => {\r\n progress.style.display = \"none\";\r\n }, 500);\r\n });\r\n }\r\n\r\n model.dataset.items = \"\";\r\n\r\n // set model width for goya theme\r\n const productModalContainer = document.querySelector(\".product-modal-wrap\");\r\n if (\r\n productModalContainer &&\r\n !productModalContainer?.nextElementSibling?.classList?.contains(\"entry-summary\") &&\r\n !productModalContainer?.nextElementSibling?.classList?.contains(\"mkd-single-product-summary\")\r\n ) {\r\n productModalContainer.style.width = \"100%\";\r\n const information = document.querySelector(\".showcase-inner .product-information\");\r\n if (information) {\r\n const model = productModalContainer.querySelector(\"model-viewer\");\r\n if (model) {\r\n model.style.height = information.offsetHeight + \"px\";\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }, 1000);\r\n\r\n let carouselData = document.querySelectorAll(\".bp3dmodel-carousel\");\r\n\r\n Object.values(carouselData).map((itemData) => {\r\n if (itemData.dataset.fullscreen == 1) {\r\n // createFullScreenFeature();\r\n }\r\n });\r\n});\r\n\r\njQuery(document).ready(function ($) {\r\n $(\".bp3dmodel-carousel\")?.[0]?.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: true,\r\n });\r\n});\r\n\r\nfunction createFullScreenFeature() {\r\n const bigModel = document.querySelectorAll(\".bp_model_gallery\");\r\n\r\n const hideElement = document.createElement(\"div\");\r\n Object.values(bigModel).map((bigModel) => {\r\n const item = bigModel.querySelector(\"model-viewer\");\r\n\r\n const buttonWrapper = document.createElement(\"div\");\r\n buttonWrapper.classList.add(\"bp3d-model-buttons\");\r\n buttonWrapper.innerHTML =\r\n '<svg id=\"openBtn\" width=\"24px\" height=\"24px\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#f2f2f2\" class=\"bi bi-arrows-fullscreen\"> <path fill-rule=\"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\"/> </svg> <svg id=\"closeBtn\" width=\"34px\" height=\"34px\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <path fill=\"none\" stroke=\"#f2f2f2\" stroke-width=\"2\" d=\"M7,7 L17,17 M7,17 L17,7\"/> </svg>';\r\n\r\n item.parentNode.appendChild(buttonWrapper);\r\n\r\n const newItem = item.parentNode.cloneNode(true);\r\n newItem.style.display = \"none\";\r\n newItem.onclick = function (e) {\r\n e.preventDefault();\r\n };\r\n const model = newItem.querySelector(\"model-viewer\");\r\n model.style.width = \"100%\";\r\n model.style.height = \"100%\";\r\n model.style.maxHeight = \"100%\";\r\n\r\n hideElement.appendChild(newItem);\r\n\r\n const fullscreen = buttonWrapper.querySelector(\"#openBtn\");\r\n const closefullscreen = newItem.querySelector(\"#closeBtn\");\r\n fullscreen.onclick = () => {\r\n newItem.classList.add(\"fullscreen\");\r\n newItem.style.display = \"block\";\r\n };\r\n closefullscreen.onclick = (e) => {\r\n e.preventDefault();\r\n newItem.classList.remove(\"fullscreen\");\r\n newItem.style.display = \"none\";\r\n };\r\n });\r\n\r\n const body = document.querySelector(\"body\");\r\n body.appendChild(hideElement);\r\n}\r\n\r\nfunction calculateRatio(num_1, num_2) {\r\n for (let num = num_2; num > 1; num--) {\r\n if (num_1 % num == 0 && num_2 % num == 0) {\r\n num_1 = num_1 / num;\r\n num_2 = num_2 / num;\r\n }\r\n }\r\n var ratio = num_1 + \":\" + num_2;\r\n return ratio;\r\n}\r\n\r\nfunction jsonParse(json) {\r\n try {\r\n return JSON.parse(json);\r\n } catch (error) {\r\n console.warn(error.message);\r\n }\r\n return json;\r\n}\r\n\r\nconst createURLInstance = (src) => {\r\n try {\r\n return new URL(src);\r\n } catch (error) {\r\n return error.message;\r\n }\r\n};\r\n","export function getParams(url = \"\") {\r\n url = url || location?.href;\r\n var queryStart = url.indexOf(\"?\") + 1,\r\n queryEnd = url.indexOf(\"#\") + 1 || url.length + 1,\r\n query = url.slice(queryStart, queryEnd - 1),\r\n pairs = query.replace(/\\+/g, \" \").split(\"&\"),\r\n parms = {},\r\n i,\r\n n,\r\n v,\r\n nv;\r\n\r\n if (query === url || query === \"\") return;\r\n\r\n for (i = 0; i < pairs.length; i++) {\r\n nv = pairs[i].split(\"=\", 2);\r\n n = decodeURIComponent(nv[0]);\r\n v = decodeURIComponent(nv[1]);\r\n\r\n if (!parms.hasOwnProperty(n)) parms[n] = [];\r\n parms[n] = nv.length === 2 ? v : null;\r\n }\r\n return parms;\r\n}\r\n\r\nexport function restoreOriginalImageSrc(imageSrc) {\r\n // Define a regular expression pattern to match sizes like \"-100x100\", \"-200x200\", etc.\r\n const sizePattern = /-\\d{2,4}x\\d{2,4}/g;\r\n\r\n // Remove any size string from the image src and the hyphen before it\r\n const originalSrc = imageSrc.replace(sizePattern, \"\");\r\n\r\n return originalSrc;\r\n}\r\n\r\nexport function isImageSource(str) {\r\n // Regular expression to match common image file extensions\r\n const imageExtensions = /\\.(jpg|jpeg|png|gif|bmp|svg|webp)$/i;\r\n\r\n // Check if the string matches the image extension pattern\r\n return imageExtensions.test(str);\r\n}\r\n\r\nexport function findParentUntilMultipleChildren(element) {\r\n let parent = element.parentElement;\r\n\r\n while (parent && parent.children.length === 1) {\r\n element = parent;\r\n parent = parent.parentElement;\r\n }\r\n\r\n return element;\r\n}\r\n","// eslint-disable-next-line react/no-deprecated\r\nimport { render } from \"react-dom\";\r\nimport { jsonParse } from \"./../../../wp-utils/v1\";\r\nimport Viewer from \"./../blocks/3d-viewer/Components/Viewer\";\r\n\r\nimport \"./product.js\";\r\nimport { findParentUntilMultipleChildren, isImageSource, restoreOriginalImageSrc } from \"../utils\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n const models = document.querySelectorAll(\".b3dviewer-wrapper:not(.elementor)\");\r\n\r\n Object.values(models).map((wrapper) => {\r\n modelRenderer({ animation: true, variant: true, wrapper });\r\n });\r\n\r\n /**\r\n * Modal/Popup start\r\n */\r\n\r\n document.querySelectorAll(\".bp3dv-model-main\")?.forEach((model) => {\r\n let selector = model.dataset.selector;\r\n\r\n if (!selector || selector === \"\") {\r\n return false;\r\n }\r\n let clickableItem = document.querySelector(isImageSource(selector) ? `img[src=\"${selector}\"]` : selector.includes(\"#\") || selector.includes(\".\") ? selector : `.${selector}`);\r\n\r\n if (isImageSource(selector)) {\r\n if (!clickableItem) {\r\n clickableItem = document.querySelector(`img[data-src=\"${selector}\"]`);\r\n }\r\n if (!clickableItem) {\r\n clickableItem = document.querySelector(`img[data-src=\"${restoreOriginalImageSrc(selector)}\"]`);\r\n }\r\n if (!clickableItem) {\r\n clickableItem = document.querySelector(`img[src=\"${restoreOriginalImageSrc(selector)}\"]`);\r\n }\r\n }\r\n\r\n if (clickableItem) {\r\n clickableItem = findParentUntilMultipleChildren(clickableItem);\r\n if (clickableItem?.innerHTML?.includes(\"<a\")) {\r\n clickableItem.classList.add(\"bp3dv_a_popup_opener\");\r\n }\r\n\r\n if (clickableItem?.innerHTML?.includes(\"<img\") && window.location.host === \"reintest.be\") {\r\n clickableItem.classList.add(\"bp3dv_play_icon\");\r\n }\r\n\r\n clickableItem?.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n model.classList.add(\"model-open\");\r\n });\r\n\r\n clickableItem.style.cursor = \"pointer\";\r\n\r\n model.querySelector(\".close-btn\").addEventListener(\"click\", () => model.classList.remove(\"model-open\"));\r\n model.querySelector(\".bg-overlay\").addEventListener(\"click\", () => model.classList.remove(\"model-open\"));\r\n } else {\r\n console.warn(\"clickable item is not found\", selector);\r\n }\r\n });\r\n});\r\n\r\nconst FrontEnd = ({ attributes }) => {\r\n function __(text, textdomain = \"\") {\r\n return text;\r\n }\r\n\r\n if (attributes) {\r\n return <Viewer attributes={attributes} __={__} />;\r\n }\r\n};\r\n\r\n/**\r\n * elementor start\r\n */\r\nwindow.addEventListener(\"elementor/frontend/init\", function () {\r\n elementorFrontend.hooks.addAction(\"frontend/element_ready/3dModelViewer.default\", function (scope, $) {\r\n const blocks = scope[0]?.querySelectorAll(\".modelViewerBlock\");\r\n blocks?.forEach((dom) => {\r\n const dataset = { ...dom.dataset } || {};\r\n setTimeout(() => {\r\n Object.keys(dom.dataset).map((key) => delete dom.dataset[key]);\r\n }, 10);\r\n\r\n const attributes = jsonParse(dataset.attributes);\r\n\r\n if (attributes) {\r\n const selector = dataset.selector;\r\n if (selector && document.querySelector(selector)) {\r\n dom = document.querySelector(selector);\r\n dom.setAttribute(\"style\", `width:${dom.offsetWidth}px !important;height:350px`);\r\n }\r\n if (!attributes?.currentViewer || attributes.currentViewer === \"modelViewer\") {\r\n dom.setAttribute(\"data-rendered\", \"true\");\r\n render(<FrontEnd attributes={attributes} />, dom);\r\n const Src = document.getElementById(\"bp3d-model-viewer-js\");\r\n if (!Src) {\r\n const script = document.createElement(\"script\");\r\n script.type = \"module\";\r\n script.id = \"bp3d-model-viewer-js\";\r\n script.src = window[\"bp3dBlock\"]?.modelViewerSrc;\r\n document.head.appendChild(script);\r\n }\r\n }\r\n\r\n if (attributes.currentViewer === \"O3DViewer\") {\r\n if (typeof OV == \"undefined\") {\r\n const Src = document.getElementById(\"bp3d-o3dviewer-js\");\r\n if (!Src) {\r\n const script = document.createElement(\"script\");\r\n script.id = \"bp3d-o3dviewer-js\";\r\n script.src = window[\"bp3dBlock\"]?.o3dviewerSrc;\r\n document.head.appendChild(script);\r\n script.addEventListener(\"load\", () => {\r\n render(<FrontEnd attributes={attributes} />, dom);\r\n });\r\n } else {\r\n Src.addEventListener(\"load\", () => {\r\n render(<FrontEnd attributes={attributes} />, dom);\r\n });\r\n }\r\n } else {\r\n render(<FrontEnd attributes={attributes} />, dom);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n});\r\n\r\nconst createSelector = (element, options = [], selected, show = true) => {\r\n if (element?.parentElement) {\r\n if (show) {\r\n element.parentElement.style.display = \"inline-block\";\r\n }\r\n element.innerHTML = \"\";\r\n } else {\r\n return;\r\n }\r\n if (!options.length && element.parentElement) {\r\n if (window.location.href.includes(\"wp-admin\")) {\r\n options[0] = \"not available\";\r\n } else {\r\n element.parentElement.style.display = \"none\";\r\n }\r\n }\r\n for (const name of options) {\r\n const option = document.createElement(\"option\");\r\n option.value = name;\r\n option.textContent = name;\r\n element.appendChild(option);\r\n if (name === selected) {\r\n option.selected = true;\r\n }\r\n }\r\n};\r\n\r\nfunction modelRenderer(params = {}) {\r\n const { animation = false, variant = false, wrapper } = params;\r\n if (!wrapper) {\r\n return;\r\n }\r\n\r\n //model viewer\r\n const modelViewer = wrapper.querySelector(\"model-viewer\");\r\n if (!modelViewer) return false;\r\n\r\n if (modelViewer.src) {\r\n try {\r\n const source = new URL(modelViewer.src);\r\n if (source?.protocol !== window.location.protocol) {\r\n modelViewer.src = source.href.replace(source.protocol, window.location.protocol);\r\n }\r\n } catch (error) {\r\n console.warn(error.message, modelViewer.src);\r\n }\r\n }\r\n\r\n const selectedAnimation = modelViewer.dataset.animation;\r\n\r\n const select = wrapper.querySelector(\"#variant\");\r\n const animations = wrapper.querySelector(\"#animations\");\r\n const percentageWrapper = wrapper.querySelector(\".percentageWrapper\");\r\n const percentageElement = percentageWrapper?.querySelector(\".percentage\");\r\n\r\n if (modelViewer.reveal === \"interaction\" && percentageWrapper) {\r\n percentageWrapper.style.display = \"none\";\r\n }\r\n\r\n modelViewer.addEventListener(\"load\", () => {\r\n createSelector(select, modelViewer.availableVariants, \"\", variant);\r\n createSelector(animations, modelViewer.availableAnimations, selectedAnimation, animation);\r\n modelViewer.animationName = selectedAnimation;\r\n\r\n setTimeout(() => {\r\n if (percentageWrapper) {\r\n percentageWrapper.style.display = \"none\";\r\n }\r\n }, 100);\r\n });\r\n\r\n //show percentage\r\n if (percentageElement) {\r\n modelViewer.addEventListener(\"progress\", (event) => {\r\n percentageWrapper.style.display = \"block\";\r\n percentageElement.innerHTML = parseInt(event.detail.totalProgress * 100) + \"%\";\r\n });\r\n }\r\n\r\n select &&\r\n select.addEventListener(\"input\", (event) => {\r\n modelViewer.variantName = event.target.value;\r\n });\r\n animations &&\r\n animations.addEventListener(\"input\", (event) => {\r\n modelViewer.animationName = event.target.value;\r\n });\r\n\r\n // slides\r\n const slides = wrapper.querySelectorAll(\".slide\");\r\n for (const slide of slides) {\r\n slide.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n modelViewer.src = slide?.dataset?.source;\r\n modelViewer.poster = slide?.dataset?.poster;\r\n slides.forEach((element) => {\r\n element.classList.remove(\"selected\");\r\n });\r\n slide.classList.add(\"selected\");\r\n if (select) select.innerHTML = \"\";\r\n });\r\n }\r\n\r\n document.querySelector(\".slider\")?.addEventListener(\"beforexrselect\", (ev) => {\r\n ev.preventDefault();\r\n });\r\n // });\r\n}\r\nwindow.modelRenderer = modelRenderer;\r\nexport default modelRenderer;\r\n","function hexToRGB(hex, type = \"string\") {\r\n\r\n if (hex === 'transparent') {\r\n return {\r\n r: 255,\r\n g: 255,\r\n b: 255,\r\n a: 0\r\n }\r\n }\r\n\r\n if (hex.includes('rgba')) {\r\n const match = hex.match(/rgba?\\((\\d+),(\\d+),(\\d+)(?:,([\\d.]+))?\\)/);\r\n if (match) {\r\n const [, r, g, b, a = 1] = match.map(Number);\r\n return { r, g, b, a };\r\n }\r\n return null; // Return null for invalid input\r\n }\r\n\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i.exec(hex.replace(\"#\", \"\"));\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n a: parseInt(result[4], 16) ? parseInt(result[4], 16) : parseInt(result[4], 16) === 0 ? 0 : 255,\r\n }\r\n : null;\r\n\r\n return Object.values(rgba).filter((item) => item);\r\n}\r\n\r\nexport default hexToRGB;\r\n","const jsonParse = (json) => {\r\n let parsedJson = null;\r\n try {\r\n parsedJson = JSON.parse(json);\r\n } catch (error) {\r\n console.warn(error.message);\r\n }\r\n return parsedJson;\r\n};\r\n\r\nexport default jsonParse;\r\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(489);\n"],"names":["_ref","attributes","styles","uniqueId","woo","progressBar","additional","progressBarColor","thumbSize","CSS","setCSS","useState","useEffect","width","desktop","height","bgColor","bgImage","tablet","mobile","replaceAll","React","createElement","element","onClick","handleClick","requestFullscreen","id","viewBox","xmlns","fill","className","fillRule","d","Close","document","exitFullscreen","webkitExitFullscreen","msExitFullscreen","stroke","strokeWidth","currentItem","setCurrentItem","models","length","isPagination","multiple","map","model","index","key","poster","modelUrl","src","Button","props","modelSrc","setAttributes","__","O3DVSettings","isNavigation","camera","mouseControl","viewerLoaded","setViewerLoaded","parentDiv","useRef","viewerRef","current","Destroy","canvas","remove","OV","SetExternalLibLocation","defaultCamera","Camera","Coord3D","Object","values","eye","center","up","viewer","EmbeddedViewer","backgroundColor","RGBAColor","edgeSettings","EdgeSettings","RGBColor","environmentSettings","EnvironmentSettings","posx","posy","posz","negx","negy","negz","LoadModelFromUrlList","window","VR","SetCamera","renderer","resetState","Clear","getContext","getExtension","loseContext","tempClone","cloneNode","parentNode","replaceChild","removeChild","children","SetBackgroundColor","hexToRGB","setTimeout","Resize","offsetWidth","offsetHeight","Render","addEventListener","Fragment","ref","role","modelLoader","inProgress","style","ModelPagination","SliderController","variant","originalObject","GetCamera","JSON","parse","stringify","isValid","setIsValid","loadingPercentage","fullscreen","exposure","selectedAnimation","animation","autoRotate","autoplay","rotateAlongX","align","rotationPerSecond","preload","zoom","currentViewer","loading","isFullscreen","setModelSrc","variantRef","animationRef","URL","error","modelRenderer","wrapper","parentElement","pause","animationName","querySelector","value","display","loaded","turntableRotation","resetTurntableRotation","shadow","rotate","rotateAlongY","setAttribute","removeAttribute","dataset","variantElement","e","modelItem","find","item","product_variant","target","querySelectorAll","forEach","targetElement","observer","MutationObserver","mutationsList","mutation","type","innerText","config","childList","subtree","observe","modelPoster","ID","Class","Style","decoder","replace","location","protocol","alt","slot","backgroundImage","Basic3DViewer","FullscreenOpen","elementorFrontend","hooks","addAction","scope","$","modelWrapper","progress","getAttribute","tagName","href","innerHTML","parseInt","detail","totalProgress","items","productModalContainer","nextElementSibling","classList","contains","information","carouselData","itemData","jQuery","ready","slick","slidesToShow","slidesToScroll","arrows","restoreOriginalImageSrc","imageSrc","isImageSource","str","test","selector","clickableItem","includes","parent","findParentUntilMultipleChildren","add","host","preventDefault","cursor","console","warn","FrontEnd","Viewer","text","blocks","dom","keys","jsonParse","render","getElementById","script","modelViewerSrc","head","appendChild","Src","o3dviewerSrc","createSelector","options","arguments","undefined","selected","show","name","option","textContent","params","modelViewer","source","message","select","animations","percentageWrapper","percentageElement","reveal","availableVariants","availableAnimations","event","variantName","slides","slide","ev","hex","r","g","b","a","match","Number","result","exec","json","parsedJson","module","exports","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","definition","o","defineProperty","enumerable","get","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","currentScript","scripts","getElementsByTagName","i","Error","p"],"sourceRoot":""}