{"version":3,"file":"3d-viewer-frontend.js","mappings":"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","sources":["webpack:///./src/public/product.js","webpack:///./src/public/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///external var [\"ReactDOM\"]","webpack:///../wp-utils/v1/jsonParse.js","webpack:///external var [\"React\"]","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:///./src/blocks/3d-viewer/Components/Viewer.js","webpack:///./src/blocks/3d-viewer/FrontEnd.js"],"sourcesContent":["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\naddEventListener(\"DOMContentLoaded\", function () {\r\n const modelWrapper = document.querySelectorAll(\".product-modal-wrap .bp_model_parent\");\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 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 // fullscreen.onclick =\r\n fullscreen?.addEventListener(\"click\", () => {\r\n const newItem = wrapper.cloneNode(true);\r\n newItem.classList.add(\"fullscreen\");\r\n const closeBtn = newItem.querySelector(\"#closeBtn\");\r\n document.querySelector(\"body\").appendChild(newItem);\r\n\r\n closeBtn?.addEventListener(\"click\", () => {\r\n document.querySelector(\"body\").removeChild(newItem);\r\n });\r\n });\r\n\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 /**\r\n * Woocommerce\r\n */\r\n\r\n // handle woocommerce variant\r\n const modelItems = jsonParse(model.dataset.items);\r\n const variantElement = document.querySelector(\".variations_form .variations select\");\r\n\r\n // remove data from dataset\r\n model.dataset.items = \"\";\r\n\r\n variantElement?.addEventListener(\"change\", function (e) {\r\n const modelItem = modelItems.find((item) => item.product_variant === e.target.value) || modelItems.find((item) => item.product_variant === \"all\") || modelItems?.[0];\r\n // model.setAttribute(\"src\", modelItem.model_src);\r\n model.setAttribute(\"src\", modelItem.model_src.replace(/https?:/, location?.protocol));\r\n });\r\n\r\n document.querySelectorAll(\".variable-items-wrapper li\")?.forEach((variant) =>\r\n variant.addEventListener(\"click\", function () {\r\n const modelItem = modelItems.find((item) => item.product_variant === variant.dataset?.value) || modelItems.find((item) => item.product_variant === \"all\") || modelItems?.[0];\r\n // model.setAttribute(\"src\", modelItem.model_src);\r\n model.setAttribute(\"src\", modelItem.model_src.replace(modelItem.model_src?.protocol, location?.protocol));\r\n })\r\n );\r\n\r\n // set model width for goya theme\r\n const productModalContainer = document.querySelector(\".product-modal-wrap\");\r\n if (productModalContainer && !productModalContainer?.nextElementSibling?.classList?.contains(\"entry-summary\")) {\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\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 ' ';\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","import \"./product.js\";\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n const models = document.querySelectorAll(\".b3dviewer-wrapper:not(.elementor)\");\r\n Object.values(models).map((wrapper) => {\r\n modelRenderer({ animation: true, variant: true, wrapper });\r\n });\r\n});\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 console.log(\"elementor rendered\");\r\n modelRenderer({ animation: true, variant: true, wrapper });\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 // fullscreen\r\n const fullscreen = wrapper.querySelector(\"#openBtn\");\r\n const closeBtn = wrapper.querySelector(\"#closeBtn\");\r\n fullscreen &&\r\n fullscreen.addEventListener(\"click\", () => {\r\n wrapper.classList.add(\"fullscreen\");\r\n });\r\n closeBtn &&\r\n closeBtn.addEventListener(\"click\", () => {\r\n wrapper.classList.remove(\"fullscreen\");\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","// 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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","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","const __WEBPACK_NAMESPACE_OBJECT__ = React;","import { useEffect, useState } from \"react\";\r\n\r\nconst Style = ({ attributes }) => {\r\n const { styles, uniqueId, woo, progressBar, additional } = attributes;\r\n const { progressBarColor } = 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: ${styles?.height.desktop || styles.height};\r\n }\r\n #${uniqueId} .select {display: none}\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 ${additional?.CSS}\r\n `.replaceAll(/\\n?\\s\\s/g, \"\");\r\n setCSS(CSS);\r\n }, [uniqueId, styles, additional, progressBar]);\r\n\r\n return ;\r\n};\r\n\r\nexport default Style;\r\n","const FullscreenOpen = () => {\r\n return (\r\n \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// \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 return (\r\n \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