HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
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":""}