File: /var/www/html/maisonimmobiliare/wp-content/plugins/3d-viewer/dist/block.js.map
{"version":3,"file":"block.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/hooks/useWPAjaxQuery.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:///external var [\"wp\",\"i18n\"]","webpack:///external var [\"wp\",\"element\"]","webpack:///external var [\"wp\",\"data\"]","webpack:///external var [\"wp\",\"components\"]","webpack:///./src/components/BMediaUpload/BMediaUpload.js","webpack:///../wp-utils/v1/components/BMediaUpload/BMediaUpload.js","webpack:///../wp-utils/v1/components/BControlPro/BControlPro.js","webpack:///./src/blocks/3d-viewer/Components/Tabs/General/ModelForm.js","webpack:///./src/components/BColor/BColor.js","webpack:///./src/components/BUnitControl/BUnitControl.js","webpack:///../Components/utils/icons.js","webpack:///../Components/BDevice/BDevice.js","webpack:///./src/blocks/3d-viewer/Components/Tabs/Style/Style.js","webpack:///./src/blocks/3d-viewer/Components/Tabs/Style/Additional.js","webpack:///./src/blocks/3d-viewer/Components/Tabs/General/Options.js","webpack:///./src/blocks/3d-viewer/Components/Tabs/General/O3DVOptions.js","webpack:///./src/blocks/3d-viewer/settings.js","webpack:///./src/blocks/3d-viewer/Edit.js","webpack:///./src/blocks/3d-viewer/index.js"],"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","const { useState, useEffect } = React;\r\n\r\nconst useWPAjaxQuery = (ajaxUrl, params) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const fetchData = async () => {\r\n const URLParams = Object.keys(params)\r\n .map((key) => `${key}=${params[key]}`)\r\n .join(\"&\");\r\n try {\r\n const request = await fetch(`${ajaxUrl}?${URLParams}`);\r\n const response = await request.json();\r\n try {\r\n setData(JSON.parse(response?.data));\r\n } catch (error) {\r\n setData(response?.data);\r\n }\r\n setIsLoaded(true);\r\n setIsLoading(false);\r\n } catch (error) {\r\n setIsError(true);\r\n setError(error.message);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n return { data, isLoading, isLoaded, isError, error };\r\n};\r\n\r\nexport default useWPAjaxQuery;\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;","const __WEBPACK_NAMESPACE_OBJECT__ = wp.i18n;","const __WEBPACK_NAMESPACE_OBJECT__ = wp.element;","const __WEBPACK_NAMESPACE_OBJECT__ = wp.data;","const __WEBPACK_NAMESPACE_OBJECT__ = wp.components;","const { __ } = wp.i18n;\r\nconst { Fragment } = wp.element;\r\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\r\nconst { Button, PanelRow, TextControl } = wp.components;\r\n\r\nimport \"./style.css\";\r\n\r\nfunction BMediaUpload({ value, type = [], onSelect, placeholder, label }) {\r\n const handleUpload = () => {\r\n const frame = wp.media({\r\n // title: 'Select or Upload Media Of Your Chosen Persuasion',\r\n button: {\r\n text: \"Select\",\r\n },\r\n multiple: false, // Set to true to allow multiple files to be selected\r\n });\r\n frame.open();\r\n frame.on(\"select\", () => {\r\n var attachment = frame.state().get(\"selection\").first().toJSON();\r\n onSelect(attachment.url);\r\n });\r\n };\r\n return (\r\n <div className=\"bMediaUpload\">\r\n <Fragment>\r\n {label && <label>{label}</label>}\r\n <PanelRow className=\"width-100\">\r\n <MediaUploadCheck fallback={<Button icon=\"upload\" className=\"button button-primary\" onClick={handleUpload} />}>{<MediaUpload allowedTypes={type} onSelect={(file) => onSelect(file.url)} render={({ open }) => <Button className=\"button button-primary\" onClick={open} icon={\"upload\"}></Button>} />}</MediaUploadCheck>\r\n <TextControl value={value} onChange={(fileUrl) => onSelect(fileUrl)} placeholder={placeholder} />\r\n </PanelRow>\r\n </Fragment>\r\n </div>\r\n );\r\n}\r\n\r\nexport default BMediaUpload;\r\n","const { __ } = wp.i18n;\r\nconst { Fragment } = wp.element;\r\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\r\nconst { Button, PanelRow, TextControl } = wp.components;\r\n\r\nimport \"./style.scss\";\r\n\r\nfunction BMediaUpload({ value, type = [], onSelect, placeholder, label }) {\r\n const handleUpload = () => {\r\n const frame = wp.media({\r\n // title: 'Select or Upload Media Of Your Chosen Persuasion',\r\n button: {\r\n text: \"Select\",\r\n },\r\n multiple: false, // Set to true to allow multiple files to be selected\r\n });\r\n frame.open();\r\n frame.on(\"select\", () => {\r\n var attachment = frame.state().get(\"selection\").first().toJSON();\r\n onSelect(attachment.url);\r\n });\r\n };\r\n return (\r\n <div className=\"bMediaUpload\">\r\n <Fragment>\r\n {label && <label>{label}</label>}\r\n <PanelRow className=\"width-100\">\r\n <MediaUploadCheck fallback={<Button icon=\"upload\" className=\"button button-primary\" onClick={handleUpload} />}>{<MediaUpload allowedTypes={type} onSelect={(file) => onSelect(file.url)} render={({ open }) => <Button className=\"button button-primary\" onClick={open} icon={\"upload\"}></Button>} />}</MediaUploadCheck>\r\n <TextControl value={value} onChange={(fileUrl) => onSelect(fileUrl)} placeholder={placeholder} />\r\n </PanelRow>\r\n </Fragment>\r\n </div>\r\n );\r\n}\r\n\r\nexport default BMediaUpload;\r\n","import { __ } from \"@wordpress/i18n\";\r\n\r\nimport \"./style.scss\";\r\n\r\nconst BControlPro = ({ label, className, onChange, onSelect, media = false, isPremium = false, Component, setOpen = () => {}, ...restProps }) => {\r\n const labelMiddleWare = (label) => {\r\n return isPremium ? (\r\n label\r\n ) : (\r\n <>\r\n <span className=\"bplOpacity75\">{label}</span> <span className=\"labelPro\">Pro</span>\r\n </>\r\n );\r\n };\r\n\r\n return (\r\n <Component\r\n className={`${className} ${isPremium ? \"\" : \"bplProIdentifier\"}`}\r\n label={labelMiddleWare(label)}\r\n onChange={(val) => (isPremium ? (media ? onSelect(val) : onChange(val)) : setOpen(true))}\r\n isPremium={isPremium}\r\n {...restProps}\r\n />\r\n );\r\n};\r\n\r\nexport default BControlPro;\r\n","import { SelectControl, Button, ButtonGroup, ToggleControl, PanelBody, PanelRow, Tooltip } from \"@wordpress/components\";\r\nimport { useEffect } from \"react\";\r\nimport { __ } from \"@wordpress/i18n\";\r\n\r\nimport BMediaUpload from \"../../../../../components/BMediaUpload/BMediaUpload\";\r\nimport { BControlPro } from \"../../../../../../../wp-utils/v1/components/\";\r\n\r\nconst ModelForm = ({ attributes, setAttributes }) => {\r\n const { model, models, multiple, isPremium, currentViewer, O3DVSettings } = attributes;\r\n\r\n const updateModels = (key, value, index) => {\r\n const newModels = [...models];\r\n newModels[index][key] = value;\r\n setAttributes({ models: newModels });\r\n };\r\n\r\n const modelViewer = [\"gltf\", \"glb\"].includes(model.ext || \"glb\");\r\n\r\n // useEffect(() => {\r\n // setAttributes({ O3DVSettings: { ...O3DVSettings, camera: null } });\r\n // }, [model]);\r\n\r\n return (\r\n <PanelBody title={__(\"Model\", \"model-viewer\")}>\r\n <PanelRow>\r\n <strong>{__(\"3D Viewer\", \"model-viewer\")}</strong>\r\n <ButtonGroup>\r\n <Tooltip delay={100} text={__(\"Support only .glb, .glTF\", \"model-viewer\")}>\r\n <Button variant={currentViewer === \"modelViewer\" ? \"primary\" : \"\"} onClick={() => setAttributes({ currentViewer: \"modelViewer\" })}>\r\n {__(\"Lite\", \"model-viewer\")}\r\n </Button>\r\n </Tooltip>\r\n <Tooltip\r\n text={__(\"Support .obj, .3ds, .stl, .ply, .gltf, .off, .3dm, .fbx, .dae, .wrl, .3mf, amf, ifc, .brep, .step, .iges, .fcstd, and .bim file types\", \"model-viewer\")}\r\n delay={100}\r\n >\r\n <Button variant={currentViewer === \"O3DViewer\" ? \"primary\" : \"\"} onClick={() => setAttributes({ currentViewer: \"O3DViewer\" })}>\r\n {__(\"Advanced\", \"model-viewer\")}\r\n </Button>\r\n </Tooltip>\r\n </ButtonGroup>\r\n </PanelRow>\r\n\r\n <p className=\"bp3d_help components-base-control__help\">\r\n <i>\r\n The Lite Viewer prioritizes .glb and .glTF files with robust features, while the Advanced Viewer, supporting{\" \"}\r\n <Tooltip delay={100} text=\"obj, .3ds, .stl, .ply, .gltf, .off, .3dm, .fbx, .dae, .wrl, .3mf, amf, ifc, .brep, .step, .iges, .fcstd, .bim\">\r\n <strong>\r\n <u> almost every file types</u>\r\n </strong>\r\n </Tooltip>\r\n , has a more streamlined functionality.\r\n </i>\r\n </p>\r\n {/* {modelViewer && ( */}\r\n <PanelRow>\r\n <BControlPro\r\n label={__(\"Use Multiple Model?\", \"model-viewer\")}\r\n isPremium={isPremium}\r\n Component={ToggleControl}\r\n checked={multiple}\r\n onChange={() => setAttributes({ multiple: !multiple })}\r\n />\r\n </PanelRow>\r\n {/* )} */}\r\n {multiple && isPremium ? (\r\n <>\r\n {models?.map((model, index) => (\r\n <PanelBody key={index} title={__(\"Model \", \"model-viewer\") + parseInt(index + 1)} initialOpen={false} className=\"modelPanel\">\r\n <BMediaUpload\r\n value={model?.modelUrl}\r\n placeholder={__(\"Model URL\", \"model-viewer\")}\r\n onSelect={(modelUrl) => updateModels(\"modelUrl\", modelUrl, index)}\r\n type={[\"model/gltf-binary\"]}\r\n label={__(\"Model URL\", \"model-viewer\")}\r\n />\r\n <BMediaUpload\r\n value={model?.poster}\r\n placeholder={__(\"Model Poster\", \"model-viewer\")}\r\n onSelect={(poster) => updateModels(\"poster\", poster, index)}\r\n type={[\"image\"]}\r\n label={__(\"Model Poster\", \"model-viewer\")}\r\n />\r\n {currentViewer === \"modelViewer\" && (\r\n <>\r\n <PanelRow>\r\n <label>{__(\"Use Decoder\", \"model-viewer\")}</label>\r\n <SelectControl\r\n options={[\r\n { label: \"None\", value: \"none\" },\r\n { label: \"Draco\", value: \"draco\" },\r\n ]}\r\n value={model?.decoder}\r\n onChange={(decoder) => updateModels(\"decoder\", decoder, index)}\r\n />\r\n </PanelRow>\r\n {model?.decoder === \"draco\" && (\r\n <>\r\n <BMediaUpload\r\n value={model?.binFile}\r\n placeholder={__(\"Bin File\", \"model-viewer\")}\r\n onSelect={(binFile) => updateModels(\"binFile\", binFile, index)}\r\n type={[\"application/octet-stream\"]}\r\n label={__(\"Bin File\", \"model-viewer\")}\r\n />\r\n </>\r\n )}\r\n </>\r\n )}\r\n {models.length !== 1 && (\r\n <PanelRow className=\"modelRemover\">\r\n <Button\r\n variant=\"primary\"\r\n onClick={() => {\r\n const newModels = [...models];\r\n newModels.splice(index, 1);\r\n setAttributes({ models: newModels });\r\n }}\r\n >\r\n {__(\"Remove\", \"model-viewer\")}\r\n </Button>\r\n </PanelRow>\r\n )}\r\n </PanelBody>\r\n ))}\r\n\r\n <PanelRow>\r\n <Button\r\n variant=\"primary\"\r\n onClick={() => {\r\n const newModels = [...models];\r\n newModels.push({});\r\n setAttributes({ models: newModels });\r\n }}\r\n >\r\n {__(\"Add New\", \"model-viewer\")}\r\n </Button>\r\n </PanelRow>\r\n </>\r\n ) : (\r\n <>\r\n <BMediaUpload\r\n value={model?.modelUrl}\r\n placeholder={__(\"Model URL\", \"model-viewer\")}\r\n onSelect={(modelUrl) => {\r\n setAttributes({ model: { ...model, modelUrl, ext: modelUrl.split(\".\")?.[modelUrl.split(\".\").length - 1] }, O3DVSettings: { ...O3DVSettings, camera: null } });\r\n }}\r\n type={[\r\n \"model/gltf-binary\",\r\n \"model/obj\",\r\n \"application/octet-stream\",\r\n \"application/x-3ds\",\r\n \"application/vnd.ms-pki.stl\",\r\n \"text/vnd.in3d.3dml\",\r\n \"application/collada+xml\",\r\n \"model/vrml\",\r\n \"application/vnd.ms-3mfdocument\",\r\n ]}\r\n label={__(\"Model URL\", \"model-viewer\")}\r\n />\r\n {currentViewer === \"modelViewer\" && (\r\n <>\r\n <BMediaUpload\r\n value={model?.poster}\r\n placeholder={__(\"Model Poster\", \"model-viewer\")}\r\n onSelect={(poster) => setAttributes({ model: { ...model, poster } })}\r\n type={[\"image\"]}\r\n label={__(\"Model Poster\", \"model-viewer\")}\r\n />\r\n <PanelRow>\r\n <label>{__(\"Use Decoder\", \"model-viewer\")}</label>\r\n <SelectControl\r\n options={[\r\n { label: \"None\", value: \"none\" },\r\n { label: \"Draco\", value: \"Draco\" },\r\n ]}\r\n value={model?.decoder}\r\n onChange={(decoder) => setAttributes({ model: { ...model, decoder } })}\r\n />\r\n </PanelRow>\r\n {model?.decoder === \"Draco\" && (\r\n <>\r\n <BMediaUpload\r\n value={model?.binFile}\r\n placeholder={__(\"Bin File\", \"model-viewer\")}\r\n onSelect={(binFile) => setAttributes({ model: { ...model, binFile } })}\r\n type={[\"application/octet-stream\"]}\r\n label={__(\"Bin File\", \"model-viewer\")}\r\n />\r\n </>\r\n )}\r\n </>\r\n )}\r\n </>\r\n )}\r\n </PanelBody>\r\n );\r\n};\r\n\r\nexport default ModelForm;\r\n","const { useState, Fragment } = wp.element;\r\nconst { Dropdown, ColorPicker, Button } = wp.components;\r\nconst { __ } = wp.i18n;\r\n\r\nimport \"./styles.scss\";\r\n\r\n/**\r\n *\r\n * @props\r\n * value: (String) --required\r\n * defaultColor: (String)\r\n * onChange: (Function) required\r\n * className: (String)\r\n * disableAlpha: (Boolean)\r\n * @boxPosition: 'top left' (String)\r\n *\r\n * return rgba color code\r\n */\r\nconst BColor = (props) => {\r\n const { value, title = \"\", toolbar = false, defaultColor, onChange, className, disableAlpha, boxPosition = \"top left\", globalColors = [] } = props;\r\n const [state, setState] = useState(value);\r\n return (\r\n <div className=\"BColor\">\r\n <Dropdown\r\n position={boxPosition}\r\n renderToggle={({ isOpen, onToggle }) => {\r\n return (\r\n <div style={{ display: \"flex\" }}>\r\n {defaultColor && defaultColor != state && (\r\n <Button\r\n icon=\"image-rotate\"\r\n className={\"bColorReset\"}\r\n onClick={() => {\r\n onChange(defaultColor);\r\n setState(defaultColor);\r\n }}\r\n />\r\n )}\r\n {!toolbar && (\r\n <div className={\"BColorButtonContainer\"}>\r\n <Button\r\n className={\"BColorButton\"}\r\n title={title}\r\n onClick={onToggle}\r\n aria-expanded={isOpen}\r\n style={value ? { backgroundColor: value } : { backgroundColor: \"transparent\" }}\r\n />\r\n </div>\r\n )}\r\n {toolbar && (\r\n <div className=\"BColorToolbar\" onClick={onToggle}>\r\n <p>A</p>\r\n <p className=\"color\" style={{ background: value }}></p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }}\r\n renderContent={({ isOpen, onToggle, onClose }) => (\r\n <Fragment>\r\n <ColorPicker\r\n color={value || \"\"}\r\n onChangeComplete={(c) => {\r\n // onChange(`rgba(${c.rgb.r}, ${c.rgb.g}, ${c.rgb.b}, ${c.rgb.a})`);\r\n onChange(c.hex);\r\n setState(c.hex);\r\n }}\r\n // enableAlpha={false}\r\n />\r\n {globalColors.length > 0 && (\r\n <div style={{ display: \"flex\" }} className=\"globalColors\">\r\n {globalColors.map((color) => {\r\n return (\r\n <div className={\"BColorButtonContainer\"}>\r\n <button\r\n className={\"BColorButton\"}\r\n onClick={() => {\r\n onChange(color.color);\r\n setState(color);\r\n onClose;\r\n }}\r\n aria-expanded={isOpen}\r\n style={value ? { backgroundColor: color.color } : { backgroundColor: \"transparent\" }}\r\n />\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default BColor;\r\n","const { __experimentalUnitControl: UnitControl } = wp.components;\r\n\r\nimport \"./styles.scss\";\r\n\r\nconst BUnitControl = (props) => {\r\n const {\r\n units = [\r\n { value: \"px\", label: \"px\", default: 16 },\r\n { value: \"em\", label: \"em\", default: 1 },\r\n ],\r\n value,\r\n onChange,\r\n isResetValueOnUnitChange = true,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n <div id=\"BUnitControl\">\r\n <UnitControl\r\n onChange={onChange}\r\n isResetValueOnUnitChange={isResetValueOnUnitChange}\r\n value={value}\r\n units={units}\r\n // onUnitChange={() => console.log(\"unit changed\")}\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default BUnitControl;\r\n","const color = '#4527a4';\n\nexport const desktopIcon = <svg xmlns='https://www.w3.org/2000/svg' width={15} height={15} viewBox='0 0 548.172 548.172'>\n\t<path fill={color} 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' />\n</svg>;\n\nexport const tabletIcon = <svg xmlns='https://www.w3.org/2000/svg' width={15} height={15} viewBox='0 0 512 512'>\n\t<path fill={color} 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' />\n</svg>;\n\nexport const mobileIcon = <svg xmlns='https://www.w3.org/2000/svg' width={15} height={15} viewBox='0 0 503.604 503.604'>\n\t<path fill={color} 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'></path>\n</svg>;\n\nexport const scrollIcon = <svg xmlns='https://www.w3.org/2000/svg' width={14} height={14} viewBox='0 0 330 330' >\n\t<path d='M100.606 229.393c-5.857-5.857-15.355-5.857-21.213 0-5.858 5.857-5.858 15.355 0 21.213l75 75A14.954 14.954 0 00165 330a14.95 14.95 0 0010.606-4.394l75-75c5.858-5.857 5.858-15.355 0-21.213-5.857-5.857-15.355-5.857-21.213 0L180 278.787V51.212l49.394 49.394A14.95 14.95 0 00240 105a14.95 14.95 0 0010.606-4.394c5.858-5.857 5.858-15.355 0-21.213l-75-75c-5.857-5.858-15.355-5.858-21.213 0l-75 75c-5.858 5.857-5.858 15.355 0 21.213 5.857 5.857 15.355 5.857 21.213 0L150 51.212v227.574l-49.394-49.393z' />\n</svg>;\n\nexport const gearIcon = <svg xmlns='http://www.w3.org/2000/svg' width={16} height={16} viewBox='0 0 430.848 430.848'>\n\t<path d='M286.244,249.537l10.992-45.639c0.035-0.143,0.071-0.285,0.109-0.428c2.909-10.867,11.469-19.426,22.339-22.338 l33.347-8.936c-5.472-6.525-13.678-10.682-22.839-10.682h-9.837c-2.511-7.895-5.7-15.59-9.515-22.957l6.96-6.959 c11.622-11.623,11.622-30.535,0-42.156L296.76,68.4c-5.631-5.629-13.117-8.73-21.079-8.73c-7.961,0-15.447,3.102-21.078,8.732 l-6.96,6.959c-7.369-3.814-15.064-7.004-22.956-9.516V56.01c0-16.436-13.372-29.807-29.808-29.807h-29.758 c-16.436,0-29.808,13.371-29.808,29.807v9.836c-7.893,2.512-15.588,5.701-22.957,9.516l-6.96-6.961 c-5.631-5.629-13.117-8.73-21.078-8.73c-7.961,0-15.447,3.102-21.079,8.732L42.2,89.443c-11.622,11.621-11.622,30.533,0,42.156 l6.959,6.959c-3.815,7.367-7.004,15.063-9.515,22.957h-9.837C13.372,161.516,0,174.887,0,191.324v29.758 c0,16.436,13.372,29.807,29.808,29.807h9.837c2.511,7.895,5.7,15.588,9.515,22.957l-6.96,6.959 c-11.623,11.623-11.623,30.533,0,42.158l21.041,21.039c5.632,5.631,13.118,8.732,21.079,8.732s15.447-3.102,21.077-8.732 l6.96-6.959c7.366,3.815,15.061,7.002,22.957,9.514v9.838c0,16.436,13.372,29.809,29.808,29.809h25.809 c-2.388-5.691-3.644-11.852-3.645-18.209c-0.002-12.572,4.892-24.391,13.781-33.279L286.244,249.537z M180,286.201 c-44.112,0-80-35.887-80-79.998c0-44.113,35.888-80.002,80-80.002s80,35.889,80,80.002C260,250.314,224.112,286.201,180,286.201z' />\n\t<path d='M425.267,218.734l-0.319-0.32c-0.939-0.941-2.189-1.428-3.541-1.469c-1.326,0-2.598,0.525-3.536,1.465l-21.596,21.596 c-3.304,3.305-7.699,5.125-12.375,5.125c-4.676,0-9.072-1.82-12.379-5.129c-3.307-3.305-5.128-7.701-5.128-12.377 c0.001-4.676,1.821-9.072,5.126-12.377l21.596-21.596c0.939-0.939,1.465-2.213,1.464-3.539c-0.001-1.328-0.53-2.6-1.47-3.537 l-0.314-0.313c-3.605-3.605-8.399-5.592-13.499-5.592c-1.665,0-3.325,0.219-4.936,0.65l-44.348,11.885 c-6.568,1.76-11.741,6.932-13.498,13.496c-0.011,0.041-0.021,0.08-0.031,0.121l-11.817,49.063l-87.667,87.666 c-6.528,6.527-10.122,15.207-10.121,24.44c0.002,9.232,3.598,17.91,10.126,24.439l2.088,2.088 c6.528,6.529,15.209,10.125,24.443,10.125h0c9.231,0,17.909-3.594,24.437-10.121l87.667-87.666l49.061-11.816 c0.041-0.01,0.082-0.022,0.122-0.031c6.563-1.758,11.735-6.928,13.497-13.496l11.883-44.352 C431.959,230.598,430.066,223.535,425.267,218.734z M257.26,368.406c-1.888,1.889-4.399,2.93-7.071,2.93 c-2.671,0-5.183-1.041-7.072-2.932c-1.887-1.885-2.928-4.397-2.928-7.068c-0.001-2.672,1.041-5.185,2.931-7.072 c1.886-1.887,4.398-2.928,7.069-2.928c2.672,0,5.184,1.041,7.072,2.93c1.887,1.885,2.928,4.396,2.928,7.068 C260.189,364.006,259.148,366.518,257.26,368.406z M316.194,305.935L274.82,347.31c-1.416,1.416-3.3,2.197-5.303,2.197 c-2.003,0-3.887-0.781-5.303-2.197c-1.417-1.416-2.197-3.299-2.197-5.303s0.78-3.887,2.197-5.303l41.374-41.375 c1.417-1.418,3.3-2.197,5.303-2.197s3.887,0.779,5.303,2.197c1.417,1.416,2.197,3.299,2.197,5.303S317.611,304.519,316.194,305.935 z' />\n</svg>\n\nexport const bookIcon = <svg xmlns='http://www.w3.org/2000/svg' width={30} height={30} viewBox='0 0 448 512'>\n\t<path d='M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z' />\n</svg>\n\nexport const headsetIcon = <svg xmlns='http://www.w3.org/2000/svg' width={30} height={30} viewBox='0 0 512 512'>\n\t<path d='M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z' />\n</svg>\n\nexport const starIcon = <svg xmlns='http://www.w3.org/2000/svg' width={30} height={30} viewBox='0 0 576 512'>\n\t<path d='M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z' />\n</svg>\n\nexport const rightArrowIcon = <svg xmlns='http://www.w3.org/2000/svg' width={30} height={30} viewBox='0 0 448 512'>\n\t<path d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z' />\n</svg>","/**\n * @props device: 'desktop' (String)\n * @props onChange: (Function)\n * @props style: {} (Object)\n * @return Selected device\n */\n\nimport { useState } from 'react';\n\nimport './BDevice.scss';\nimport { desktopIcon, tabletIcon, mobileIcon } from '../utils/icons';\n\nconst BDevice = ({ device = 'desktop', onChange, className = 'iconButton', style }) => {\n\tconst [show, setShow] = useState(false);\n\n\twindow.addEventListener('click', () => setShow(false));\n\n\treturn <div className={'bDevice'} style={style}>\n\t\t{!show && <button className={className} title={device[0].toUpperCase() + device.slice(1)} onClick={(event) => {\n\t\t\tsetShow(true);\n\t\t\tevent.stopPropagation();\n\t\t}}>\n\t\t\t{device == 'desktop' ? desktopIcon : device == 'tablet' ? tabletIcon : mobileIcon}\n\t\t</button>}\n\n\t\t{show && <div className={'bDevicePopup'}>\n\t\t\t{[\n\t\t\t\t{ value: 'desktop', icon: desktopIcon },\n\t\t\t\t{ value: 'tablet', icon: tabletIcon },\n\t\t\t\t{ value: 'mobile', icon: mobileIcon }\n\t\t\t].map(({ icon, value }) => <button key={value} className={className} title={value[0].toUpperCase() + value.slice(1)} onClick={() => {\n\t\t\t\tonChange(value);\n\t\t\t\tsetShow(false);\n\t\t\t}}>{icon}</button>)}\n\t\t</div>}\n\t</div>\n};\nexport default BDevice;","import { __ } from \"@wordpress/i18n\";\r\nimport { useEffect, useState } from \"@wordpress/element\";\r\n\r\nimport { PanelBody, PanelRow, Button } from \"@wordpress/components\";\r\nimport BColor from \"../../../../../components/BColor/BColor\";\r\nimport BMediaUpload from \"../../../../../components/BMediaUpload/BMediaUpload\";\r\nimport BUnitControl from \"../../../../../components/BUnitControl/BUnitControl\";\r\nimport BDevice from \"../../../../../../../Components/BDevice/BDevice\";\r\nimport { BControlPro } from \"../../../../../../../wp-utils/v1/components/\";\r\n\r\nconst Style = ({ attributes, setAttributes }) => {\r\n const { styles, woo, currentViewer } = attributes;\r\n const { width, height, bgColor, bgImage, progressBar, progressBarColor, thumbSize = \"90px\" } = styles;\r\n\r\n const [device, setDevice] = useState(\"desktop\");\r\n\r\n useEffect(() => {\r\n if (typeof height === \"string\") {\r\n setAttributes({\r\n styles: {\r\n ...styles,\r\n height: {\r\n desktop: height,\r\n tablet: height,\r\n mobile: height,\r\n },\r\n },\r\n });\r\n }\r\n if (typeof width === \"string\") {\r\n setAttributes({\r\n styles: {\r\n ...styles,\r\n width: {\r\n desktop: width,\r\n tablet: width,\r\n mobile: width,\r\n },\r\n },\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n <PanelBody title={__(\"Style\", \"model-viewer\")}>\r\n {!woo && (\r\n <PanelRow className=\"deviceForUnit\">\r\n <label>{__(\"Width\", \"model-viewer\")}</label>\r\n <BUnitControl\r\n value={width[device]}\r\n onChange={(width) => setAttributes({ styles: { ...styles, width: { ...styles.width, [device]: width } } })}\r\n units={[\r\n { value: \"px\", label: \"px\", default: 500 },\r\n { value: \"%\", label: \"%\", default: 100 },\r\n ]}\r\n />\r\n <BDevice device={device} onChange={(device) => setDevice(device)} />\r\n </PanelRow>\r\n )}\r\n <PanelRow className=\"deviceForUnit\">\r\n <label>{__(\"Height\", \"model-viewer\")}</label>\r\n <BUnitControl\r\n value={height[device]}\r\n onChange={(height) => setAttributes({ styles: { ...styles, height: { ...styles.height, [device]: height } } })}\r\n units={[\r\n { value: \"px\", label: \"px\", default: 500 },\r\n { value: \"%\", label: \"%\", default: 100 },\r\n { value: \"vh\", label: \"vh\", default: 100 },\r\n ]}\r\n />\r\n <BDevice device={device} onChange={(device) => setDevice(device)} />\r\n </PanelRow>\r\n <BUnitControl\r\n label={__(\"Thumb Size\", \"model-viewer\")}\r\n value={thumbSize}\r\n onChange={(thumbSize) => setAttributes({ styles: { ...styles, thumbSize } })}\r\n units={[{ value: \"px\", label: \"px\", default: 100 }]}\r\n />\r\n <PanelRow>\r\n <label>{__(\"Background Color\", \"model-viewer\")}</label>\r\n <BColor value={bgColor || \"#ffffff\"} defaultColor=\"#ffffff\" onChange={(bgColor) => setAttributes({ styles: { ...styles, bgColor } })} />\r\n </PanelRow>\r\n {currentViewer === \"modelViewer\" && (\r\n <>\r\n <PanelRow>\r\n <label>\r\n <strong>{__(\"Note: Color will be ignore if background image used\", \"model-viewer\")}</strong>\r\n </label>\r\n </PanelRow>\r\n <br />\r\n <PanelRow>\r\n <BControlPro\r\n Component={BMediaUpload}\r\n media={true}\r\n label={__(\"Background Image\", \"model-viewer\")}\r\n placeholder={__(\"Background Image\", \"model-viewer\")}\r\n value={bgImage}\r\n onSelect={(bgImage) => setAttributes({ styles: { ...styles, bgImage } })}\r\n />\r\n </PanelRow>\r\n {progressBar && (\r\n <PanelRow>\r\n <label>{__(\"ProgressBar Color\", \"model-viewer\")}</label>\r\n <BColor value={progressBarColor || \"#666\"} defaultColor=\"#666\" onChange={(progressBarColor) => setAttributes({ styles: { ...styles, progressBarColor } })} />\r\n </PanelRow>\r\n )}\r\n </>\r\n )}\r\n </PanelBody>\r\n );\r\n};\r\n\r\nexport default Style;\r\n","import { __ } from \"@wordpress/i18n\";\r\nimport { PanelBody, PanelRow, TextControl, TextareaControl } from \"@wordpress/components\";\r\n\r\nimport { BControlPro } from \"../../../../../../../wp-utils/v1/components/\";\r\n\r\nconst Additional = ({ attributes, setAttributes }) => {\r\n const { additional, isPremium } = attributes;\r\n return (\r\n <>\r\n <PanelBody title={__(\"Additional\", \"model-viewer\")}>\r\n <BControlPro isPremium={isPremium} Component={TextControl} label={__(\"ID\", \"model-viewer\")} value={additional.ID} onChange={(ID) => setAttributes({ additional: { ...additional, ID } })} />\r\n <TextControl label={__(\"Class\", \"model-viewer\")} value={additional.Class} onChange={(Class) => setAttributes({ additional: { ...additional, Class } })} />\r\n\r\n <BControlPro isPremium={isPremium} Component={TextareaControl} label={__(\"CSS\", \"model-viewer\")} value={additional.CSS} onChange={(CSS) => setAttributes({ additional: { ...additional, CSS } })} />\r\n </PanelBody>\r\n </>\r\n );\r\n};\r\n\r\nexport default Additional;\r\n","import { __ } from \"@wordpress/i18n\";\r\nimport { useState, useEffect } from \"@wordpress/element\";\r\nimport { PanelBody, PanelRow, ToggleControl, SelectControl, RangeControl, __experimentalNumberControl as NumberControl } from \"@wordpress/components\";\r\nimport { BControlPro } from \"../../../../../../../wp-utils/v1/components\";\r\n\r\nconst Options = ({ attributes, setAttributes }) => {\r\n const { animation, autoRotate, autoplay, exposure, fullscreen, lazyLoad, loadingPercentage, model, multiple, models, mouseControl, progressBar, rotate, rotateAlongX, rotateAlongY, rotationPerSecond, selectedAnimation, shadow, uniqueId, variant, isPagination, isNavigation, isPremium } = attributes;\r\n\r\n const [animations, setAnimations] = useState([]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n document.querySelector(`#${uniqueId} model-viewer`)?.addEventListener(\"load\", function () {\r\n const animations = this.availableAnimations.map((animation) => {\r\n return { label: animation, value: animation };\r\n });\r\n setAnimations([...animations, { label: \"None\", value: \"\" }]);\r\n });\r\n }, 0);\r\n }, [uniqueId, model, models, multiple]);\r\n\r\n return (\r\n <>\r\n <PanelBody title={__(\"Options\", \"model-viewer\")}>\r\n <ToggleControl label={__(\"Fullscreen\", \"model-viewer\")} checked={fullscreen} onChange={() => setAttributes({ fullscreen: !fullscreen })} />\r\n\r\n {[\"gltf\", \"glb\"].includes(model.ext || \"glb\") && (\r\n <>\r\n <ToggleControl label={__(\"Mouse Control\", \"model-viewer\")} checked={mouseControl} onChange={() => setAttributes({ mouseControl: !mouseControl })} />\r\n\r\n <ToggleControl label={__(\"Lazy Load\", \"model-viewer\")} checked={lazyLoad} onChange={() => setAttributes({ lazyLoad: !lazyLoad })} />\r\n\r\n <ToggleControl label={__(\"Show Loading Percentage\", \"model-viewer\")} checked={loadingPercentage} onChange={() => setAttributes({ loadingPercentage: !loadingPercentage })} />\r\n\r\n <ToggleControl label={__(\"Show Progressbar\", \"model-viewer\")} checked={progressBar} onChange={() => setAttributes({ progressBar: !progressBar })} />\r\n\r\n <BControlPro Component={ToggleControl} isPremium={isPremium} label={__(\"Enable Shadow\", \"model-viewer\")} checked={shadow} onChange={() => setAttributes({ shadow: !shadow })} />\r\n\r\n <BControlPro isPremium={isPremium} label={__(\"Autoplay ( if animated )\", \"model-viewer\")} Component={ToggleControl} checked={autoplay} onChange={() => setAttributes({ autoplay: !autoplay })} />\r\n\r\n <BControlPro isPremium={isPremium} label={__(\"Enable Variant Selector\", \"model-viewer\")} Component={ToggleControl} checked={variant} onChange={() => setAttributes({ variant: !variant })} />\r\n\r\n <BControlPro isPremium={isPremium} label={__(\"Enable Animation Selector\", \"model-viewer\")} Component={ToggleControl} checked={animation} onChange={() => setAttributes({ animation: !animation })} />\r\n\r\n {animation && animations.length !== 0 && !multiple && (\r\n <PanelRow>\r\n <label>{__(\"Set Animation\", \"model-viewer\")}</label>\r\n <SelectControl options={animations} value={selectedAnimation} onChange={(selectedAnimation) => setAttributes({ selectedAnimation })} />\r\n </PanelRow>\r\n )}\r\n\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"Auto Rotate\", \"model-viewer\")} checked={autoRotate} onChange={() => setAttributes({ autoRotate: !autoRotate })} />\r\n\r\n {autoRotate && (\r\n <>\r\n <PanelRow>\r\n <label>{__(\"Rotate Per Second (deg)\", \"model-viewer\")}</label>\r\n <NumberControl value={rotationPerSecond} onChange={(rotationPerSecond) => setAttributes({ rotationPerSecond })} />\r\n </PanelRow>\r\n </>\r\n )}\r\n {!multiple && (\r\n <>\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"Rotate Direction\", \"model-viewer\")} checked={rotate} onChange={() => setAttributes({ rotate: !rotate })} />\r\n\r\n {rotate && (\r\n <>\r\n <PanelRow>\r\n <label>{__(\"Rotate Along X\", \"model-viewer\")}</label>\r\n <NumberControl onChange={(value) => setAttributes({ rotateAlongX: parseInt(value) })} value={rotateAlongX} max={360} min={0} />\r\n </PanelRow>\r\n <PanelRow>\r\n <label>{__(\"Rotate Along Y\", \"model-viewer\")}</label>\r\n <NumberControl onChange={(value) => setAttributes({ rotateAlongY: parseInt(value) })} value={rotateAlongY} max={360} min={0} />\r\n </PanelRow>\r\n </>\r\n )}\r\n </>\r\n )}\r\n <BControlPro isPremium={isPremium} Component={RangeControl} label={__(\"Exposure\", \"model-viewer\")} value={exposure} onChange={(exposure) => setAttributes({ exposure })} min={0.1} step={0.1} max={10} />\r\n {(multiple || !isPremium) && (\r\n <>\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"show thumbnails list\", \"model-viewer\")} checked={isPagination} onChange={() => setAttributes({ isPagination: !isPagination })} />\r\n\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"show arrow\", \"model-viewer\")} checked={isNavigation} onChange={() => setAttributes({ isNavigation: !isNavigation })} />\r\n </>\r\n )}\r\n </>\r\n )}\r\n </PanelBody>\r\n </>\r\n );\r\n};\r\n\r\nexport default Options;\r\n","import React from \"react\";\r\nimport { PanelBody, ToggleControl, Button } from \"@wordpress/components\";\r\nimport { __ } from \"@wordpress/i18n\";\r\nimport { BControlPro } from \"../../../../../../../wp-utils/v1/components\";\r\n\r\nconst O3DVOptions = ({ attributes, setAttributes }) => {\r\n const { O3DVSettings, multiple, isPremium } = attributes;\r\n const { isFullscreen, isNavigation = false, isPagination = false, mouseControl } = O3DVSettings;\r\n\r\n const handleChange = (option) => {\r\n setAttributes({ O3DVSettings: { ...O3DVSettings, ...option } });\r\n };\r\n\r\n return (\r\n <PanelBody title={__(\"Options\", \"model-viewer\")}>\r\n <ToggleControl label={__(\"Fullscreen\", \"model-viewer\")} checked={isFullscreen} onChange={() => handleChange({ isFullscreen: !isFullscreen })} />\r\n\r\n <ToggleControl label={__(\"Mouse Control\", \"model-viewer\")} checked={mouseControl} onChange={() => handleChange({ mouseControl: !mouseControl })} />\r\n\r\n {(multiple || !isPremium) && (\r\n <>\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"show thumbnails list\", \"model-viewer\")} checked={isPagination} onChange={() => handleChange({ isPagination: !isPagination })} />\r\n\r\n <BControlPro isPremium={isPremium} Component={ToggleControl} label={__(\"show arrow\", \"model-viewer\")} checked={isNavigation} onChange={() => handleChange({ isNavigation: !isNavigation })} />\r\n </>\r\n )}\r\n </PanelBody>\r\n );\r\n};\r\n\r\nexport default O3DVOptions;\r\n","import { __ } from \"@wordpress/i18n\";\r\nimport { withSelect } from \"@wordpress/data\";\r\nconst { InspectorControls } = wp.blockEditor;\r\n\r\nimport { ClipboardButton, TabPanel, Panel, PanelBody, PanelRow, Snackbar } from \"@wordpress/components\";\r\nimport { useState } from \"@wordpress/element\";\r\nimport ModelForm from \"./Components/Tabs/General/ModelForm\";\r\nimport Style from \"./Components/Tabs/Style/Style\";\r\nimport Additional from \"./Components/Tabs/Style/Additional\";\r\nimport Options from \"./Components/Tabs/General/Options\";\r\nimport O3DVOptions from \"./Components/Tabs/General/O3DVOptions\";\r\n\r\nconst Settings = ({ attributes, setAttributes, postId, postType }) => {\r\n const [copied, setCopied] = useState(false);\r\n const { currentViewer } = attributes;\r\n\r\n return (\r\n <InspectorControls>\r\n {postType === \"bp3d-model-viewer\" && (\r\n <PanelBody>\r\n <PanelRow>\r\n <div className=\"b3dviewer_front_shortcode justify-center\">\r\n <ClipboardButton title={copied ? __(\"Copied\", \"model-viewer\") : \"\"} variant=\"primary\" text={`[3d_viewer id=${postId}]`} onCopy={() => setCopied(true)} onFinishCopy={() => setCopied(false)}>\r\n {__(\"Copy Shortcode\", \"model-viewer\")}\r\n </ClipboardButton>\r\n {copied && <Snackbar>{__(\"Copied Succesfully\", \"model-viewer\")}</Snackbar>}\r\n </div>\r\n </PanelRow>\r\n </PanelBody>\r\n )}\r\n <TabPanel\r\n className=\"b3dviewer-tab-panel\"\r\n activeClass=\"active\"\r\n tabs={[\r\n {\r\n name: \"settings\",\r\n title: __(\"Settings\", \"model-viewer\"),\r\n className: \"settings\",\r\n },\r\n {\r\n name: \"style\",\r\n title: __(\"Style\", \"model-viewer\"),\r\n className: \"style\",\r\n },\r\n ]}\r\n >\r\n {(tab) => {\r\n return (\r\n <span>\r\n {tab.name === \"settings\" && (\r\n <Panel>\r\n <ModelForm attributes={attributes} setAttributes={setAttributes} />\r\n {currentViewer === \"modelViewer\" && <Options attributes={attributes} setAttributes={setAttributes} />}\r\n {currentViewer === \"O3DViewer\" && <O3DVOptions attributes={attributes} setAttributes={setAttributes} />}\r\n </Panel>\r\n )}\r\n {tab.name === \"style\" && (\r\n <Panel>\r\n <Style attributes={attributes} setAttributes={setAttributes} />\r\n <Additional attributes={attributes} setAttributes={setAttributes} />\r\n </Panel>\r\n )}\r\n </span>\r\n );\r\n }}\r\n </TabPanel>\r\n </InspectorControls>\r\n );\r\n};\r\n\r\nexport default withSelect((select) => {\r\n const postType = select(\"core/editor\")?.getCurrentPostType() || \"product\";\r\n const postId = select(\"core/editor\")?.getCurrentPostId();\r\n\r\n return {\r\n postId,\r\n postType,\r\n };\r\n})(Settings);\r\n","import { __ } from \"@wordpress/i18n\";\r\nimport { useEffect, useState } from \"@wordpress/element\";\r\nconst { withSelect } = wp.data;\r\n\r\nimport Settings from \"./settings\";\r\nimport Viewer from \"./Components/Viewer\";\r\nimport { useWPAjaxQuery } from \"../../../../wp-utils/v1\";\r\n\r\nconst Edit = (props) => {\r\n const { clientId, attributes, setAttributes, isSelected, postType } = props;\r\n const [isValid, setIsValid] = useState(true);\r\n const { uniqueId, model, models, multiple, additional, align, woo, isPremium = true } = attributes;\r\n const { data, isLoading } = useWPAjaxQuery(bp3dBlock?.ajaxURL, { action: \"bp3d_pipe_checker\", _wpnonce: bp3dBlock?.nonce });\r\n\r\n //generate new unique ID\r\n useEffect(() => {\r\n const woo = [\"product\", null].includes(postType) ? true : false;\r\n setAttributes({ uniqueId: \"b3dviewer\" + clientId.substr(0, 8), woo });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setAttributes({ isPremium: data?.isPipe });\r\n if (!data?.isPipe && !isLoading) {\r\n setAttributes({ multiple: false });\r\n }\r\n }, [data, isLoading]);\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 }, [uniqueId, model, models, multiple]);\r\n\r\n const modelSrc = multiple ? models[0]?.modelUrl : model?.modelUrl;\r\n\r\n if (isLoading) {\r\n return <h2>Loading...</h2>;\r\n }\r\n\r\n return (\r\n <>\r\n {/* <div id={`${uniqueId}`} className={`b3dviewer align${align} ${woo ? \"woocommerce\" : \"\"}`}> */}\r\n {!isSelected && <div className=\"modelViewerIsSelected\"></div>}\r\n <>\r\n <Settings attributes={attributes} setAttributes={setAttributes} />\r\n\r\n {modelSrc && isValid && <Viewer setAttributes={setAttributes} attributes={attributes} __={__} />}\r\n {modelSrc && !isValid && <h2>{__(\"3D file not valid\", \"model-viewer\")}</h2>}\r\n {!modelSrc && <h2>{__(\"Click here to upload 3D Models\", \"model-viewer\")}</h2>}\r\n </>\r\n {/* </div> */}\r\n </>\r\n );\r\n};\r\n\r\nexport default withSelect((select) => {\r\n const { isEditorSidebarOpened } = select(\"core/edit-post\");\r\n const postType = select(\"core/editor\")?.getCurrentPostType() || \"product\";\r\n return {\r\n isSidebarOpened: isEditorSidebarOpened(),\r\n postType,\r\n };\r\n})(Edit);\r\n","const { registerBlockType } = wp.blocks;\r\n\r\nimport metadata from \"./../../../blocks/3d-viewer/block.json\";\r\nimport \"./style.scss\";\r\n// import { v1 } from \"./deprecated\";\r\nimport Edit from \"./Edit\";\r\n// import Save from \"./Save\";\r\n\r\nregisterBlockType(metadata, {\r\n edit: Edit,\r\n // edit: () => <h3>Nothing to hide</h3>,\r\n save: () => null,\r\n // save: Save,\r\n // deprecated: [v1],\r\n});\r\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","useWPAjaxQuery","ajaxUrl","isLoading","setIsLoading","isLoaded","setIsLoaded","isError","setIsError","setError","data","setData","fetchData","async","URLParams","join","request","fetch","response","json","hex","r","g","b","a","match","Number","result","exec","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","wp","i18n","components","MediaUpload","MediaUploadCheck","blockEditor","PanelRow","TextControl","onSelect","placeholder","label","fallback","icon","handleUpload","frame","media","button","open","on","attachment","state","first","toJSON","url","allowedTypes","file","_ref2","onChange","fileUrl","isPremium","Component","setOpen","restProps","_extends","labelMiddleWare","val","updateModels","newModels","ext","PanelBody","title","ButtonGroup","Tooltip","delay","BControlPro","ToggleControl","checked","initialOpen","BMediaUpload","SelectControl","binFile","splice","push","split","Dropdown","ColorPicker","toolbar","defaultColor","disableAlpha","boxPosition","globalColors","setState","position","renderToggle","isOpen","onToggle","background","renderContent","onClose","color","onChangeComplete","c","__experimentalUnitControl","UnitControl","units","default","isResetValueOnUnitChange","rest","desktopIcon","tabletIcon","mobileIcon","device","setShow","toUpperCase","slice","stopPropagation","setDevice","BUnitControl","BDevice","BColor","TextareaControl","lazyLoad","setAnimations","NumberControl","max","min","RangeControl","step","handleChange","InspectorControls","withSelect","postType","getCurrentPostType","postId","getCurrentPostId","copied","setCopied","ClipboardButton","onCopy","onFinishCopy","Snackbar","TabPanel","activeClass","tabs","tab","Panel","ModelForm","Options","O3DVOptions","Additional","isEditorSidebarOpened","isSidebarOpened","clientId","isSelected","bp3dBlock","ajaxURL","action","_wpnonce","nonce","substr","isPipe","Settings","registerBlockType","metadata","edit","Edit","save"],"sourceRoot":""}