{"version":3,"file":"32b155b9442e4a0a9f45.js","mappings":"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","sources":["webpack://rtrViewer/./src/api/moco/upc.ts","webpack://rtrViewer/./src/api/id/upc.ts","webpack://rtrViewer/./src/managers/AnalyticsManager.ts","webpack://rtrViewer/./src/components/Container.ts","webpack://rtrViewer/./src/controllers/Controller.ts","webpack://rtrViewer/./src/dispatchers/EventDispatcher.ts","webpack://rtrViewer/./src/dispatchers/ErrorDispatcher.ts","webpack://rtrViewer/./src/dispatchers/WarningDispatcher.ts","webpack://rtrViewer/./src/controllers/AssetController.ts","webpack://rtrViewer/./src/controllers/BackgroundController.ts","webpack://rtrViewer/./src/controllers/CameraMovementsController.ts","webpack://rtrViewer/./src/controllers/EnvironmentController.ts","webpack://rtrViewer/./src/controllers/ExplosionController.ts","webpack://rtrViewer/./src/controllers/LensesCatalogueController.ts","webpack://rtrViewer/./src/controllers/Model3dController.ts","webpack://rtrViewer/./src/controllers/SettingsController.ts","webpack://rtrViewer/./src/controllers/SortingController.ts","webpack://rtrViewer/./src/managers/AssetsManager.ts","webpack://rtrViewer/./src/managers/FilesManager.ts","webpack://rtrViewer/./src/utils/math.ts","webpack://rtrViewer/./src/managers/PerformanceManager.ts","webpack://rtrViewer/./src/dispatchers/ComponentSelectedDispatcher.ts","webpack://rtrViewer/./src/mediator/AppMediator.ts","webpack://rtrViewer/./src/models/Model.ts","webpack://rtrViewer/./src/models/Asset.ts","webpack://rtrViewer/./src/models/Background.ts","webpack://rtrViewer/./src/models/CameraMovements.ts","webpack://rtrViewer/./src/models/Environment.ts","webpack://rtrViewer/./src/models/Explosion.ts","webpack://rtrViewer/./src/models/LensesCatalogue.ts","webpack://rtrViewer/./src/models/Model3d.ts","webpack://rtrViewer/./src/models/Settings.ts","webpack://rtrViewer/./src/models/Sorting.ts","webpack://rtrViewer/./src/dispatchers/FocusDispatcher.ts","webpack://rtrViewer/./src/dispatchers/ActionDispatcher.ts","webpack://rtrViewer/./src/managers/ActionsManager.ts","webpack://rtrViewer/./src/managers/GesturesManager.ts","webpack://rtrViewer/./src/utils/mesh.ts","webpack://rtrViewer/./src/components/Controls.ts","webpack://rtrViewer/./src/dispatchers/RenderedDispatcher.ts","webpack://rtrViewer/./src/dispatchers/SettingsUpdatedDispatcher.ts","webpack://rtrViewer/./src/constants/states.ts","webpack://rtrViewer/./src/managers/AnimationsManager.ts","webpack://rtrViewer/./src/observers/MatchMediaObserver.ts","webpack://rtrViewer/./src/managers/PixelRatioManager.ts","webpack://rtrViewer/./src/managers/TicksManager.ts","webpack://rtrViewer/./src/utils/object3d.ts","webpack://rtrViewer/./src/utils/material.ts","webpack://rtrViewer/./src/view/View3d.ts","webpack://rtrViewer/./src/utils/texture.ts","webpack://rtrViewer/./src/common.ts","webpack://rtrViewer/./src/api/assets/background.ts","webpack://rtrViewer/./src/api/assets/cameraMovements.ts","webpack://rtrViewer/./src/api/assets/environment.ts","webpack://rtrViewer/./src/api/assets/explosion.ts","webpack://rtrViewer/./src/api/assets/lensesCatalogue.ts"],"sourcesContent":["import axios from 'axios';\nimport to from 'await-to-js';\nimport { API_HOST_MOCO } from '@/constants';\nimport { getHost } from '@/utils/host';\nexport const toUpc = async ({ env, moco }) => {\n const url = getUrl({\n env,\n hostObject: API_HOST_MOCO,\n moco,\n });\n const [err, response] = await to(axios.get(url));\n if (err) {\n throw new Error(`The axios call to '${url}' failed`, {\n cause: err,\n });\n }\n const upcResponse = response.data;\n if (!upcResponse) {\n throw new Error(`There are no upcs for the moco '${moco}'`);\n }\n const upcMocoCouple = upcResponse[0];\n if (!upcMocoCouple) {\n throw new Error(`There are no upcs for the moco '${moco}'`);\n }\n const upc = upcMocoCouple.upc;\n if (!upc) {\n throw new Error(`There are no upcs for the moco '${moco}'`);\n }\n return upc;\n};\nconst getUrl = ({ env, hostObject, moco }) => {\n const host = getHost({\n env,\n hostObject,\n });\n return `https://${host}/public/v1/upcs?moco=${moco}&page=0&size=1`;\n};\n","import { toUpc as mocoToUpc } from '@/api/moco';\nexport const computeUpc = async ({ env, id }) => {\n const { type, value } = id;\n if (type === 'moco')\n return mocoToUpc({ env, moco: value });\n return value;\n};\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _a, _AnalyticsManager_instance, _AnalyticsManager_explosionTracked, _AnalyticsManager_rotationTracked, _AnalyticsManager_zoomTracked, _AnalyticsManager_upc, _AnalyticsManager_environment, _AnalyticsManager_trackRotation, _AnalyticsManager_trackZoom, _AnalyticsManager_trackEvent, _AnalyticsManager_track;\nimport { TRACK_ERROR_SOURCES, TRACK_EVENTS_CODES } from '@/constants';\nclass AnalyticsManager {\n constructor() {\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_explosionTracked);\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_rotationTracked);\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_zoomTracked);\n }\n // GETTERS\n static getInstance() {\n if (!__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_instance)) {\n __classPrivateFieldSet(_a, _a, new _a(), \"f\", _AnalyticsManager_instance);\n }\n return __classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_instance);\n }\n // SETTERs\n static setEnvironment(environment) {\n __classPrivateFieldSet(_a, _a, environment, \"f\", _AnalyticsManager_environment);\n }\n static setUpc(upc) {\n __classPrivateFieldSet(_a, _a, upc, \"f\", _AnalyticsManager_upc);\n }\n static resetEvents() {\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_explosionTracked);\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_rotationTracked);\n __classPrivateFieldSet(_a, _a, false, \"f\", _AnalyticsManager_zoomTracked);\n }\n // ACTIONs\n static trackActions(actions) {\n const actionsKeys = Object.keys(actions);\n actionsKeys.forEach(action => {\n if (!actions[action]) {\n return;\n }\n switch (action) {\n case 'rotate':\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackRotation).call(_a);\n break;\n case 'dolly':\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackZoom).call(_a);\n break;\n case 'dolly-rotate':\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackRotation).call(_a);\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackZoom).call(_a);\n break;\n case 'dolly-pan':\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackZoom).call(_a);\n break;\n default:\n break;\n }\n });\n }\n static trackExplosion() {\n if (__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_explosionTracked)) {\n return;\n }\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackEvent).call(_a, 'explosion');\n __classPrivateFieldSet(_a, _a, true, \"f\", _AnalyticsManager_explosionTracked);\n }\n static trackError(err) {\n const { code, error } = err;\n const source = TRACK_ERROR_SOURCES[code];\n const errorData = {\n id: 'Error',\n Error_Source: source,\n Error_Code: `RTR: ${code}`,\n Error_Details: error.message,\n };\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_track).call(_a, errorData);\n }\n // 2023-10-03 17:11:49 - Marco Borean\n // Valutare se e dove chiamarlo\n dispose() {\n // To null\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_instance);\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_explosionTracked);\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_rotationTracked);\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_zoomTracked);\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_upc);\n __classPrivateFieldSet(_a, _a, null, \"f\", _AnalyticsManager_environment);\n }\n}\n_a = AnalyticsManager, _AnalyticsManager_trackRotation = function _AnalyticsManager_trackRotation() {\n if (__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_rotationTracked)) {\n return;\n }\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackEvent).call(_a, 'rotation');\n __classPrivateFieldSet(_a, _a, true, \"f\", _AnalyticsManager_rotationTracked);\n}, _AnalyticsManager_trackZoom = function _AnalyticsManager_trackZoom() {\n if (__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_zoomTracked)) {\n return;\n }\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_trackEvent).call(_a, 'zoom');\n __classPrivateFieldSet(_a, _a, true, \"f\", _AnalyticsManager_zoomTracked);\n}, _AnalyticsManager_trackEvent = function _AnalyticsManager_trackEvent(type) {\n const trackEvent = TRACK_EVENTS_CODES[type];\n const data = {\n id: 'Event',\n [trackEvent]: '1',\n Rtr_Release: `${VITE_LIB_VERSION}-viewer`,\n Products: {\n [__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_upc)]: {},\n },\n };\n __classPrivateFieldGet(_a, _a, \"m\", _AnalyticsManager_track).call(_a, data);\n}, _AnalyticsManager_track = function _AnalyticsManager_track(data) {\n if (__classPrivateFieldGet(_a, _a, \"f\", _AnalyticsManager_environment) !== 'production') {\n // console.trace(data);\n }\n if (window.tealium_data2track) {\n window.tealium_data2track.push(data);\n }\n};\n_AnalyticsManager_instance = { value: void 0 };\n_AnalyticsManager_explosionTracked = { value: void 0 };\n_AnalyticsManager_rotationTracked = { value: void 0 };\n_AnalyticsManager_zoomTracked = { value: void 0 };\n_AnalyticsManager_upc = { value: void 0 };\n_AnalyticsManager_environment = { value: void 0 };\nexport default AnalyticsManager;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Container_instances, _Container_selector, _Container_container, _Container_element, _Container_gesturesManager, _Container_hasDragAndDrop, _Container_resizeObserver, _Container_isResizing, _Container_boundOnContextmenu, _Container_boundOnDblclick, _Container_boundOnDragover, _Container_boundOnDrop, _Container_init, _Container_initElement, _Container_initGestureManager, _Container_initResizeObserver, _Container_dispatchGesture, _Container_onContextmenu, _Container_onDblclick, _Container_onDragover, _Container_onDrop;\nimport Hammer from 'hammerjs';\nimport { debounce } from 'lodash-es';\nimport screenfull from 'screenfull';\nimport { EVENT_CONTAINER_DOUBLE_TAP, EVENT_CONTAINER_DROP, EVENT_CONTAINER_LONG_PRESS, EVENT_CONTAINER_RESIZE, EVENT_CONTAINER_RESIZE_END, EVENT_CONTAINER_RESIZE_START, EVENT_CONTAINER_SINGLE_TAP, } from '@/constants';\nclass Container {\n constructor({ selector }) {\n _Container_instances.add(this);\n _Container_selector.set(this, void 0);\n _Container_container.set(this, void 0);\n _Container_element.set(this, void 0);\n _Container_gesturesManager.set(this, void 0);\n _Container_hasDragAndDrop.set(this, void 0);\n _Container_resizeObserver.set(this, void 0);\n _Container_isResizing.set(this, void 0);\n _Container_boundOnContextmenu.set(this, void 0);\n _Container_boundOnDblclick.set(this, void 0);\n _Container_boundOnDragover.set(this, void 0);\n _Container_boundOnDrop.set(this, void 0);\n __classPrivateFieldSet(this, _Container_selector, selector, \"f\");\n __classPrivateFieldSet(this, _Container_container, null, \"f\");\n __classPrivateFieldSet(this, _Container_element, null, \"f\");\n __classPrivateFieldSet(this, _Container_gesturesManager, null, \"f\");\n __classPrivateFieldSet(this, _Container_hasDragAndDrop, null, \"f\");\n __classPrivateFieldSet(this, _Container_resizeObserver, null, \"f\");\n __classPrivateFieldSet(this, _Container_isResizing, false, \"f\");\n __classPrivateFieldSet(this, _Container_boundOnContextmenu, __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_onContextmenu).bind(this), \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDblclick, __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_onDblclick).bind(this), \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDragover, __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_onDragover).bind(this), \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDrop, __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_onDrop).bind(this), \"f\");\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_init).call(this);\n }\n // GETTERs\n getElement() {\n return __classPrivateFieldGet(this, _Container_element, \"f\");\n }\n getWidth() {\n return __classPrivateFieldGet(this, _Container_element, \"f\").clientWidth;\n }\n getHeight() {\n return __classPrivateFieldGet(this, _Container_element, \"f\").clientHeight;\n }\n getAspect() {\n return this.getWidth() / this.getHeight();\n }\n // SETTERs\n setHasDragAndDrop(hasDragAndDrop) {\n __classPrivateFieldSet(this, _Container_hasDragAndDrop, hasDragAndDrop, \"f\");\n }\n setBoundingArea(boundingArea) {\n const { topLeft, bottomRight } = boundingArea;\n const width = bottomRight.x - topLeft.x;\n const height = bottomRight.y - topLeft.y;\n const oldArea = __classPrivateFieldGet(this, _Container_element, \"f\").querySelector('#rtr-bounding-area');\n if (oldArea)\n __classPrivateFieldGet(this, _Container_element, \"f\").removeChild(oldArea);\n const area = document.createElement('div');\n area.id = 'rtr-bounding-area';\n area.style.width = `${width * 100}%`;\n area.style.height = `${height * 100}%`;\n area.style.position = 'absolute';\n area.style.top = `${topLeft.y * 100}%`;\n area.style.left = `${topLeft.x * 100}%`;\n area.style.pointerEvents = 'none';\n __classPrivateFieldGet(this, _Container_element, \"f\").appendChild(area);\n this.setOrbitPoint(area);\n }\n setOrbitPoint(area) {\n const point = document.createElement('div');\n point.id = 'rtr-orbit-point';\n point.style.width = `6px`;\n point.style.height = `6px`;\n point.style.position = 'absolute';\n point.style.top = `50%`;\n point.style.left = `50%`;\n point.style.transform = 'translate(-50%, -50%)';\n point.style.background = 'transparent';\n point.style.opacity = '0';\n point.style.borderRadius = '6px';\n point.style.border = '1px solid white';\n point.style.boxShadow = '0px 0px 2px 1px rgba(0, 0, 0, 0.8)';\n point.style.transition = 'opacity 0.3s';\n area.appendChild(point);\n }\n // ACTIONs\n toggleFullscreen() {\n if (!screenfull.isEnabled) {\n console.warn('Fullscreen not supported');\n return;\n }\n screenfull.toggle(__classPrivateFieldGet(this, _Container_element, \"f\"));\n }\n displayBoundingArea() {\n const area = __classPrivateFieldGet(this, _Container_element, \"f\").querySelector('#rtr-bounding-area');\n if (!area) {\n return;\n }\n area.style.background = 'rgba(0,255,0,0.5)';\n }\n displayOrbitPoint(value) {\n const point = __classPrivateFieldGet(this, _Container_element, \"f\").querySelector('#rtr-orbit-point');\n if (!point) {\n return;\n }\n point.style.opacity = value ? '1' : '0';\n }\n dispose() {\n __classPrivateFieldGet(this, _Container_gesturesManager, \"f\").destroy();\n // Remove event listeners\n __classPrivateFieldGet(this, _Container_element, \"f\").removeEventListener('contextmenu', __classPrivateFieldGet(this, _Container_boundOnContextmenu, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").removeEventListener('dblclick', __classPrivateFieldGet(this, _Container_boundOnDblclick, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").removeEventListener('dragover', __classPrivateFieldGet(this, _Container_boundOnDragover, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").removeEventListener('drop', __classPrivateFieldGet(this, _Container_boundOnDrop, \"f\"));\n // Reset canvas\n if (__classPrivateFieldGet(this, _Container_element, \"f\").querySelector('canvas') instanceof HTMLCanvasElement) {\n let canvas = __classPrivateFieldGet(this, _Container_element, \"f\").querySelector('canvas');\n canvas.width = 0;\n canvas.height = 0;\n }\n // Disconnect observers\n __classPrivateFieldGet(this, _Container_resizeObserver, \"f\").disconnect();\n // Removes the container's child (element)\n __classPrivateFieldGet(this, _Container_container, \"f\").removeChild(__classPrivateFieldGet(this, _Container_element, \"f\"));\n // Removes the container's custom attributes\n delete __classPrivateFieldGet(this, _Container_container, \"f\").dataset.analytics_available_call;\n // To null\n __classPrivateFieldSet(this, _Container_selector, null, \"f\");\n __classPrivateFieldSet(this, _Container_container, null, \"f\");\n __classPrivateFieldSet(this, _Container_element, null, \"f\");\n __classPrivateFieldSet(this, _Container_gesturesManager, null, \"f\");\n __classPrivateFieldSet(this, _Container_hasDragAndDrop, null, \"f\");\n __classPrivateFieldSet(this, _Container_resizeObserver, null, \"f\");\n __classPrivateFieldSet(this, _Container_isResizing, null, \"f\");\n __classPrivateFieldSet(this, _Container_boundOnContextmenu, null, \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDblclick, null, \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDragover, null, \"f\");\n __classPrivateFieldSet(this, _Container_boundOnDrop, null, \"f\");\n }\n}\n_Container_selector = new WeakMap(), _Container_container = new WeakMap(), _Container_element = new WeakMap(), _Container_gesturesManager = new WeakMap(), _Container_hasDragAndDrop = new WeakMap(), _Container_resizeObserver = new WeakMap(), _Container_isResizing = new WeakMap(), _Container_boundOnContextmenu = new WeakMap(), _Container_boundOnDblclick = new WeakMap(), _Container_boundOnDragover = new WeakMap(), _Container_boundOnDrop = new WeakMap(), _Container_instances = new WeakSet(), _Container_init = function _Container_init() {\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_initElement).call(this);\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_initGestureManager).call(this);\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_initResizeObserver).call(this);\n}, _Container_initElement = function _Container_initElement() {\n __classPrivateFieldSet(this, _Container_container, document.querySelector(__classPrivateFieldGet(this, _Container_selector, \"f\")), \"f\");\n __classPrivateFieldSet(this, _Container_element, document.createElement('div'), \"f\");\n __classPrivateFieldGet(this, _Container_element, \"f\").style.position = 'relative';\n __classPrivateFieldGet(this, _Container_element, \"f\").style.height = '100%';\n __classPrivateFieldGet(this, _Container_element, \"f\").style.width = '100%';\n __classPrivateFieldGet(this, _Container_element, \"f\").addEventListener('contextmenu', __classPrivateFieldGet(this, _Container_boundOnContextmenu, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").addEventListener('dblclick', __classPrivateFieldGet(this, _Container_boundOnDblclick, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").addEventListener('dragover', __classPrivateFieldGet(this, _Container_boundOnDragover, \"f\"));\n __classPrivateFieldGet(this, _Container_element, \"f\").addEventListener('drop', __classPrivateFieldGet(this, _Container_boundOnDrop, \"f\"));\n __classPrivateFieldGet(this, _Container_container, \"f\").appendChild(__classPrivateFieldGet(this, _Container_element, \"f\"));\n __classPrivateFieldGet(this, _Container_container, \"f\").dataset.analytics_available_call = '0';\n}, _Container_initGestureManager = function _Container_initGestureManager() {\n __classPrivateFieldSet(this, _Container_gesturesManager, new Hammer.Manager(__classPrivateFieldGet(this, _Container_element, \"f\"), {\n touchAction: 'auto',\n }), \"f\");\n const doubleTap = new Hammer.Tap({\n event: 'doubleTap',\n taps: 2,\n threshold: 4 * window.devicePixelRatio,\n posThreshold: 30 * window.devicePixelRatio,\n });\n const longPress = new Hammer.Press({\n event: 'longPress',\n time: 500,\n });\n const singleTap = new Hammer.Tap({\n event: 'singleTap',\n taps: 1,\n });\n __classPrivateFieldGet(this, _Container_gesturesManager, \"f\").add([doubleTap, longPress, singleTap]);\n // doubleTap.recognizeWith(singleTap); // may be unnecessary\n singleTap.requireFailure(doubleTap);\n __classPrivateFieldGet(this, _Container_gesturesManager, \"f\").on('doubleTap', e => {\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_dispatchGesture).call(this, EVENT_CONTAINER_DOUBLE_TAP, e);\n });\n __classPrivateFieldGet(this, _Container_gesturesManager, \"f\").on('longPress', e => {\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_dispatchGesture).call(this, EVENT_CONTAINER_LONG_PRESS, e);\n });\n __classPrivateFieldGet(this, _Container_gesturesManager, \"f\").on('singleTap', e => {\n __classPrivateFieldGet(this, _Container_instances, \"m\", _Container_dispatchGesture).call(this, EVENT_CONTAINER_SINGLE_TAP, e);\n });\n}, _Container_initResizeObserver = function _Container_initResizeObserver() {\n const eventResize = new Event(EVENT_CONTAINER_RESIZE);\n const eventResizeEnd = new Event(EVENT_CONTAINER_RESIZE_END);\n const eventResizeStart = new Event(EVENT_CONTAINER_RESIZE_START);\n const debouncedDispatchEventResizeEnd = debounce(() => {\n __classPrivateFieldSet(this, _Container_isResizing, false, \"f\");\n __classPrivateFieldGet(this, _Container_element, \"f\").dispatchEvent(eventResizeEnd);\n }, 100);\n __classPrivateFieldSet(this, _Container_resizeObserver, new ResizeObserver(() => {\n if (!__classPrivateFieldGet(this, _Container_isResizing, \"f\")) {\n __classPrivateFieldSet(this, _Container_isResizing, true, \"f\");\n __classPrivateFieldGet(this, _Container_element, \"f\").dispatchEvent(eventResizeStart);\n }\n __classPrivateFieldGet(this, _Container_element, \"f\").dispatchEvent(eventResize);\n debouncedDispatchEventResizeEnd();\n }), \"f\");\n __classPrivateFieldGet(this, _Container_resizeObserver, \"f\").observe(__classPrivateFieldGet(this, _Container_element, \"f\"));\n}, _Container_dispatchGesture = function _Container_dispatchGesture(type, e) {\n const srcEvent = e.srcEvent;\n const { offsetX, offsetY } = srcEvent;\n const event = new CustomEvent(type, {\n detail: {\n offsetX,\n offsetY,\n },\n });\n __classPrivateFieldGet(this, _Container_element, \"f\").dispatchEvent(event);\n}, _Container_onContextmenu = function _Container_onContextmenu(e) {\n e.preventDefault();\n}, _Container_onDblclick = function _Container_onDblclick(e) {\n e.preventDefault();\n __classPrivateFieldGet(this, _Container_element, \"f\").click();\n}, _Container_onDragover = function _Container_onDragover(e) {\n if (!__classPrivateFieldGet(this, _Container_hasDragAndDrop, \"f\"))\n return;\n e.preventDefault();\n}, _Container_onDrop = function _Container_onDrop(e) {\n if (!__classPrivateFieldGet(this, _Container_hasDragAndDrop, \"f\"))\n return;\n e.preventDefault();\n const event = new CustomEvent(EVENT_CONTAINER_DROP, {\n detail: e.dataTransfer?.files,\n });\n __classPrivateFieldGet(this, _Container_element, \"f\").dispatchEvent(event);\n};\nexport default Container;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Controller_instances, _Controller_mediator, _Controller_initModel;\nclass Controller {\n constructor({ model }) {\n _Controller_instances.add(this);\n Object.defineProperty(this, \"model\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _Controller_mediator.set(this, void 0);\n this.model = model;\n __classPrivateFieldSet(this, _Controller_mediator, null, \"f\");\n }\n // INITs\n init(mediator) {\n __classPrivateFieldSet(this, _Controller_mediator, mediator, \"f\");\n __classPrivateFieldGet(this, _Controller_instances, \"m\", _Controller_initModel).call(this);\n }\n // ACTIONs\n notify(event, data) {\n // To be overridden by subclasses\n console.log(event);\n console.log(data);\n }\n notifyMediator(event, data) {\n __classPrivateFieldGet(this, _Controller_mediator, \"f\").notify(event, data);\n }\n dispose() {\n this.model.dispose();\n // To null\n this.model = null;\n __classPrivateFieldSet(this, _Controller_mediator, null, \"f\");\n }\n}\n_Controller_mediator = new WeakMap(), _Controller_instances = new WeakSet(), _Controller_initModel = function _Controller_initModel() {\n this.model.init(this);\n};\nexport default Controller;\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _a, _EventDispatcher_computeEvent;\nclass EventDispatcher {\n static dispatch({ detail, event, target }) {\n if (!target) {\n console.error(`Unable to dispatch the event. 'target' is not defined.`);\n return;\n }\n if (!event) {\n console.error(`Unable to dispatch the event. 'event' is not defined.`);\n return;\n }\n const actualEvent = __classPrivateFieldGet(_a, _a, \"m\", _EventDispatcher_computeEvent).call(_a, { detail, event });\n try {\n target.dispatchEvent(actualEvent);\n }\n catch (err) {\n console.error(`Unable to dispatch the event. More info in the following error.`);\n console.error(err);\n }\n }\n}\n_a = EventDispatcher, _EventDispatcher_computeEvent = function _EventDispatcher_computeEvent({ detail, event }) {\n if (!detail)\n return new Event(event);\n return new CustomEvent(event, { detail });\n};\nexport default EventDispatcher;\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_ERROR } from '@/constants';\nexport default class ErrorDispatcher {\n static dispatch(detail) {\n EventDispatcher.dispatch({\n detail: { ...detail },\n event: EVENT_CALLBACKS_ERROR,\n target: window,\n });\n }\n}\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_WARNING } from '@/constants';\nexport default class WarningDispatcher {\n static dispatch(detail) {\n EventDispatcher.dispatch({\n detail: { ...detail },\n event: EVENT_CALLBACKS_WARNING,\n target: window,\n });\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AssetController_pendingAsset;\nimport to from 'await-to-js';\nimport Controller from './Controller';\nimport { EVENT_ASSET_ERROR, EVENT_ASSET_ERROR_LOADING, EVENT_ASSET_ERROR_VALIDATION, EVENT_ASSET_LOADED, EVENT_ASSET_WARNING_WITHOUT_PATH, } from '@/constants';\nimport ErrorDispatcher from '@/dispatchers/ErrorDispatcher';\nimport WarningDispatcher from '@/dispatchers/WarningDispatcher';\nimport { validatePath } from '@/validators';\nclass AssetController extends Controller {\n constructor({ model }) {\n super({ model });\n _AssetController_pendingAsset.set(this, void 0);\n __classPrivateFieldSet(this, _AssetController_pendingAsset, null, \"f\");\n }\n // GETTERs\n getData() {\n const data = this.model.getData();\n const formattedData = this.formatData(data);\n return formattedData;\n }\n // SETTERs\n setPendingAsset(identifier) {\n __classPrivateFieldSet(this, _AssetController_pendingAsset, identifier, \"f\");\n }\n async setPath({ path, assetIdentifier, validationOptions, }) {\n const [err] = await to(validatePath(path, validationOptions));\n if (err) {\n this.notify(EVENT_ASSET_ERROR_VALIDATION, {\n error: err,\n });\n return;\n }\n this.model.setPath(path, assetIdentifier);\n }\n setData({ data, assetIdentifier, }) {\n this.model.setData(data, assetIdentifier);\n }\n setBlobUrl({ blobUrl, assetIdentifier, }) {\n this.model.setBlobUrl(blobUrl, assetIdentifier);\n }\n // ACTIONs\n notify(event, data) {\n if (event === EVENT_ASSET_ERROR_LOADING) {\n const { error } = data;\n const assetKey = this.model.getKey();\n this.notifyMediator(EVENT_ASSET_ERROR, {\n assetKey,\n });\n ErrorDispatcher.dispatch({\n code: 'ASSET_LOADING_FAILED',\n context: 'runtime',\n error,\n });\n }\n if (event === EVENT_ASSET_ERROR_VALIDATION) {\n const { error } = data;\n const assetKey = this.model.getKey();\n this.notifyMediator(EVENT_ASSET_ERROR, {\n assetKey,\n });\n ErrorDispatcher.dispatch({\n code: 'VALIDATION_FAILED',\n context: 'runtime',\n error,\n });\n }\n if (event === EVENT_ASSET_LOADED) {\n const { assetIdentifier } = data;\n if (__classPrivateFieldGet(this, _AssetController_pendingAsset, \"f\") && __classPrivateFieldGet(this, _AssetController_pendingAsset, \"f\") !== assetIdentifier)\n return;\n const assetKey = this.model.getKey();\n this.notifyMediator(EVENT_ASSET_LOADED, {\n assetKey,\n });\n }\n if (event === EVENT_ASSET_WARNING_WITHOUT_PATH) {\n const assetKey = this.model.getKey();\n this.notifyMediator(EVENT_ASSET_WARNING_WITHOUT_PATH, {\n assetKey,\n });\n WarningDispatcher.dispatch({\n code: 'ASSET_WITHOUT_PATH',\n message: `No path provided for asset \"${assetKey}\"`,\n });\n }\n }\n formatData(data) {\n // To be overridden by subclasses\n return data;\n }\n dispose() {\n super.dispose();\n // To null\n __classPrivateFieldSet(this, _AssetController_pendingAsset, null, \"f\");\n }\n}\n_AssetController_pendingAsset = new WeakMap();\nexport default AssetController;\n","import { SRGBColorSpace } from 'three';\nimport AssetController from './AssetController';\nexport default class BackgroundController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // ACTIONs\n formatData(data) {\n // In order to avoid side-effects,\n // the Texture is cloned.\n // This is not an actual deep copy:\n // https://threejs.org/docs/#api/en/textures/Texture.clone\n const formattedData = data.clone();\n formattedData.colorSpace = SRGBColorSpace;\n return formattedData;\n }\n}\n","import AssetController from './AssetController';\nexport default class CameraMovementsController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // ACTIONs\n formatData(data) {\n const formattedData = JSON.parse(data);\n return formattedData;\n }\n}\n","import { EquirectangularReflectionMapping } from 'three';\nimport AssetController from './AssetController';\nexport default class EnvironmentController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // ACTIONs\n formatData(data) {\n const formattedData = data.renderTarget.texture;\n formattedData.mapping = EquirectangularReflectionMapping;\n formattedData.needsUpdate = true;\n return formattedData;\n }\n}\n","import { nanoid } from 'nanoid';\nimport AssetController from './AssetController';\nexport default class ExplosionController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // ACTIONs\n formatData(data) {\n const formattedData = JSON.parse(data);\n formattedData.forEach(explosionEntry => {\n explosionEntry.targets.forEach(target => {\n target.id = nanoid();\n });\n });\n return formattedData;\n }\n}\n","import AssetController from './AssetController';\nexport default class LensesCatalogueController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // ACTIONs\n formatData(data) {\n const formattedData = JSON.parse(data);\n return formattedData;\n }\n}\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Model3dController_instances, _Model3dController_formatRtrCustomUserData, _Model3dController_addToUserData;\nimport { Vector3 } from 'three';\nimport { parseGLTFGlasses } from '@luxottica/glasses-rt-webglrenderer';\nimport AssetController from './AssetController';\nclass Model3dController extends AssetController {\n constructor({ model }) {\n super({ model });\n _Model3dController_instances.add(this);\n }\n // ACTIONs\n formatData(data) {\n const modelScene = data.scene.clone();\n const { userData } = modelScene;\n if (data.userData.rtrCustom) {\n const formattedUserData = __classPrivateFieldGet(this, _Model3dController_instances, \"m\", _Model3dController_formatRtrCustomUserData).call(this, data.userData.rtrCustom);\n __classPrivateFieldGet(this, _Model3dController_instances, \"m\", _Model3dController_addToUserData).call(this, {\n userData,\n key: 'components',\n value: formattedUserData,\n });\n }\n if (data.userData.luxottica?.personalizations) {\n __classPrivateFieldGet(this, _Model3dController_instances, \"m\", _Model3dController_addToUserData).call(this, {\n userData,\n key: 'personalizations',\n value: data.userData.luxottica?.personalizations,\n });\n }\n modelScene.traverse(node => {\n const { userData } = node;\n const position = new Vector3().copy(node.position);\n __classPrivateFieldGet(this, _Model3dController_instances, \"m\", _Model3dController_addToUserData).call(this, {\n userData,\n key: 'initialPosition',\n value: position,\n });\n });\n return parseGLTFGlasses(modelScene);\n }\n}\n_Model3dController_instances = new WeakSet(), _Model3dController_formatRtrCustomUserData = function _Model3dController_formatRtrCustomUserData(userData) {\n const { components } = userData;\n const formattedComponents = components.map(component => {\n const { type, meshes } = component;\n const meshesNames = meshes.map(mesh => mesh.name);\n return {\n type,\n meshes: meshesNames,\n };\n });\n return formattedComponents;\n}, _Model3dController_addToUserData = function _Model3dController_addToUserData({ userData, userDatakey = 'rtrViewer', key, value, }) {\n if (!userData[userDatakey])\n userData[userDatakey] = {};\n userData[userDatakey] = {\n ...userData[userDatakey],\n [key]: value,\n };\n};\nexport default Model3dController;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _SettingsController_instances, _SettingsController_validators, _SettingsController_isStruggling, _SettingsController_settingsCache, _SettingsController_getValidator;\nimport to from 'await-to-js';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport Controller from './Controller';\nimport { ENGINE_QUALITY_MAX, ENGINE_QUALITY_MIN, EVENT_SETTINGS_UPDATED, KEY_SETTINGS_QUALITY_MOVING, } from '@/constants';\nimport ErrorDispatcher from '@/dispatchers/ErrorDispatcher';\nclass SettingsController extends Controller {\n constructor({ model, validators }) {\n super({ model });\n _SettingsController_instances.add(this);\n _SettingsController_validators.set(this, void 0);\n _SettingsController_isStruggling.set(this, void 0);\n _SettingsController_settingsCache.set(this, void 0);\n __classPrivateFieldSet(this, _SettingsController_validators, validators, \"f\");\n __classPrivateFieldSet(this, _SettingsController_isStruggling, false, \"f\");\n __classPrivateFieldSet(this, _SettingsController_settingsCache, [], \"f\");\n }\n getSettings() {\n const settings = this.model.getSettings();\n return cloneDeep(settings);\n }\n getUpdatedSettings() {\n const settings = this.getSettings();\n const updatedSettings = settings.filter(setting => {\n const { key, value } = setting;\n const cachedSetting = __classPrivateFieldGet(this, _SettingsController_settingsCache, \"f\").find(setting => setting.key === key);\n if (!cachedSetting)\n return true;\n if (isEqual(cachedSetting.value, value))\n return false;\n return true;\n });\n __classPrivateFieldSet(this, _SettingsController_settingsCache, settings, \"f\");\n return updatedSettings;\n }\n // SETTERs\n async setSetting(setting) {\n const { key, value } = setting;\n const { handler } = __classPrivateFieldGet(this, _SettingsController_instances, \"m\", _SettingsController_getValidator).call(this, key);\n const [err] = await to(handler(value));\n if (err) {\n ErrorDispatcher.dispatch({\n code: 'VALIDATION_FAILED',\n context: 'runtime',\n error: err,\n });\n return;\n }\n this.model.setSetting(setting);\n }\n // ACTIONs\n notify(event) {\n if (event === EVENT_SETTINGS_UPDATED) {\n this.notifyMediator(EVENT_SETTINGS_UPDATED);\n }\n }\n increaseQuality() {\n if (__classPrivateFieldGet(this, _SettingsController_isStruggling, \"f\"))\n return;\n const qualityMoving = __classPrivateFieldGet(this, _SettingsController_settingsCache, \"f\").find(setting => setting.key === KEY_SETTINGS_QUALITY_MOVING).value;\n if (qualityMoving === ENGINE_QUALITY_MAX)\n return;\n // console.log('increaseQuality');\n this.setSetting({\n key: KEY_SETTINGS_QUALITY_MOVING,\n value: (qualityMoving + 1),\n });\n }\n decreaseQuality() {\n __classPrivateFieldSet(this, _SettingsController_isStruggling, true, \"f\");\n const qualityMoving = __classPrivateFieldGet(this, _SettingsController_settingsCache, \"f\").find(setting => setting.key === KEY_SETTINGS_QUALITY_MOVING).value;\n if (qualityMoving === ENGINE_QUALITY_MIN)\n return;\n // console.log('decreaseQuality');\n this.setSetting({\n key: KEY_SETTINGS_QUALITY_MOVING,\n value: (qualityMoving - 1),\n });\n }\n dispose() {\n super.dispose();\n // To null\n __classPrivateFieldSet(this, _SettingsController_validators, null, \"f\");\n __classPrivateFieldSet(this, _SettingsController_isStruggling, null, \"f\");\n __classPrivateFieldSet(this, _SettingsController_settingsCache, null, \"f\");\n }\n}\n_SettingsController_validators = new WeakMap(), _SettingsController_isStruggling = new WeakMap(), _SettingsController_settingsCache = new WeakMap(), _SettingsController_instances = new WeakSet(), _SettingsController_getValidator = function _SettingsController_getValidator(key) {\n const validator = __classPrivateFieldGet(this, _SettingsController_validators, \"f\").find(validator => validator.key === key);\n return validator;\n};\nexport default SettingsController;\n","import { isUndefined } from 'lodash-es';\nimport AssetController from './AssetController';\nexport default class SortingController extends AssetController {\n constructor({ model }) {\n super({ model });\n }\n // SETTERs\n async setPath({ path, assetIdentifier, validationOptions, }) {\n if (isUndefined(path)) {\n this.model.setPath(path, assetIdentifier);\n return;\n }\n super.setPath({ path, assetIdentifier, validationOptions });\n }\n // ACTIONs\n formatData(data) {\n const formattedData = JSON.parse(data);\n return formattedData;\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AssetsManager_instances, _AssetsManager_assetsKeys, _AssetsManager_assetsConstraints, _AssetsManager_mediator, _AssetsManager_assets, _AssetsManager_initAssets, _AssetsManager_getAsset, _AssetsManager_getNotIgnoredAssets, _AssetsManager_areAssetsReady, _AssetsManager_isAssetReady, _AssetsManager_getAssetConstraints, _AssetsManager_getAssetConstraintRequiredAssets, _AssetsManager_getAssetConstraintTransform, _AssetsManager_setAssetRequired, _AssetsManager_setAssetIgnored, _AssetsManager_setAssetData, _AssetsManager_checkReadiness, _AssetsManager_manageAssetsConstraints, _AssetsManager_manageAssetConstraintRequiredAssets, _AssetsManager_manageAssetConstraintTransform, _AssetsManager_computeTransformParams, _AssetsManager_clearAsset;\nimport { isNull, isUndefined } from 'lodash-es';\nimport { EVENT_MANAGERS_ASSETS_READY } from '@/constants';\nclass AssetsManager {\n constructor({ assetsKeys, assetsConstraints }) {\n _AssetsManager_instances.add(this);\n _AssetsManager_assetsKeys.set(this, void 0);\n _AssetsManager_assetsConstraints.set(this, void 0);\n _AssetsManager_mediator.set(this, void 0);\n _AssetsManager_assets.set(this, void 0);\n __classPrivateFieldSet(this, _AssetsManager_assetsKeys, assetsKeys, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_assetsConstraints, assetsConstraints, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_assets, [], \"f\");\n }\n // INITs\n init(mediator) {\n __classPrivateFieldSet(this, _AssetsManager_mediator, mediator, \"f\");\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_initAssets).call(this);\n }\n getRequiredAssets() {\n const notIgnoredAssets = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getNotIgnoredAssets).call(this);\n const requiredAssets = notIgnoredAssets.filter(asset => asset.required);\n return requiredAssets;\n }\n // ACTIONs\n requireAsset(key) {\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetRequired).call(this, key, true);\n }\n updateAssetIgnored(key, ignored) {\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetIgnored).call(this, key, ignored);\n }\n updateAssetData(key, data) {\n if (isUndefined(data))\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetRequired).call(this, key, false);\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetData).call(this, key, data);\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_checkReadiness).call(this);\n }\n clearAssets() {\n const self = this;\n __classPrivateFieldGet(this, _AssetsManager_assets, \"f\").forEach(asset => {\n const { key } = asset;\n __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_clearAsset).call(self, key);\n });\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _AssetsManager_assetsKeys, null, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_assetsConstraints, null, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _AssetsManager_assets, null, \"f\");\n }\n}\n_AssetsManager_assetsKeys = new WeakMap(), _AssetsManager_assetsConstraints = new WeakMap(), _AssetsManager_mediator = new WeakMap(), _AssetsManager_assets = new WeakMap(), _AssetsManager_instances = new WeakSet(), _AssetsManager_initAssets = function _AssetsManager_initAssets() {\n __classPrivateFieldSet(this, _AssetsManager_assets, __classPrivateFieldGet(this, _AssetsManager_assetsKeys, \"f\").map(assetKey => {\n const asset = {\n key: assetKey,\n required: true,\n ignored: false,\n data: null,\n };\n return asset;\n }), \"f\");\n}, _AssetsManager_getAsset = function _AssetsManager_getAsset(key) {\n return __classPrivateFieldGet(this, _AssetsManager_assets, \"f\").find(asset => asset.key === key);\n}, _AssetsManager_getNotIgnoredAssets = function _AssetsManager_getNotIgnoredAssets() {\n return __classPrivateFieldGet(this, _AssetsManager_assets, \"f\").filter(asset => !asset.ignored);\n}, _AssetsManager_areAssetsReady = function _AssetsManager_areAssetsReady() {\n const self = this;\n const requiredAssets = this.getRequiredAssets();\n const areAssetsReady = requiredAssets.every(asset => __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_isAssetReady).call(self, asset));\n return areAssetsReady;\n}, _AssetsManager_isAssetReady = function _AssetsManager_isAssetReady(asset) {\n const { data } = asset;\n if (isNull(data))\n return false;\n return true;\n}, _AssetsManager_getAssetConstraints = function _AssetsManager_getAssetConstraints(key) {\n return __classPrivateFieldGet(this, _AssetsManager_assetsConstraints, \"f\").find(assetConstraints => assetConstraints.key === key);\n}, _AssetsManager_getAssetConstraintRequiredAssets = function _AssetsManager_getAssetConstraintRequiredAssets(key) {\n const assetConstraints = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAssetConstraints).call(this, key);\n const requiredAssets = assetConstraints?.requiredAssets;\n return requiredAssets;\n}, _AssetsManager_getAssetConstraintTransform = function _AssetsManager_getAssetConstraintTransform(key) {\n const assetConstraints = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAssetConstraints).call(this, key);\n const transform = assetConstraints?.transform;\n return transform;\n}, _AssetsManager_setAssetRequired = function _AssetsManager_setAssetRequired(key, required) {\n const asset = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAsset).call(this, key);\n if (!asset)\n return;\n asset.required = required;\n}, _AssetsManager_setAssetIgnored = function _AssetsManager_setAssetIgnored(key, ignored) {\n const asset = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAsset).call(this, key);\n if (!asset)\n return;\n asset.ignored = ignored;\n}, _AssetsManager_setAssetData = function _AssetsManager_setAssetData(key, data) {\n const asset = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAsset).call(this, key);\n if (!asset)\n return;\n asset.data = data;\n}, _AssetsManager_checkReadiness = function _AssetsManager_checkReadiness() {\n if (!__classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_areAssetsReady).call(this))\n return;\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_manageAssetsConstraints).call(this);\n __classPrivateFieldGet(this, _AssetsManager_mediator, \"f\").notify(EVENT_MANAGERS_ASSETS_READY);\n}, _AssetsManager_manageAssetsConstraints = function _AssetsManager_manageAssetsConstraints() {\n const self = this;\n let requiredAssets;\n requiredAssets = this.getRequiredAssets();\n requiredAssets.forEach(asset => {\n const { key } = asset;\n __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_manageAssetConstraintRequiredAssets).call(self, key);\n });\n requiredAssets = this.getRequiredAssets();\n requiredAssets.forEach(asset => {\n const { key } = asset;\n __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_manageAssetConstraintTransform).call(self, key);\n });\n}, _AssetsManager_manageAssetConstraintRequiredAssets = function _AssetsManager_manageAssetConstraintRequiredAssets(key) {\n const self = this;\n const requiredAssets = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAssetConstraintRequiredAssets).call(this, key);\n if (!requiredAssets)\n return;\n requiredAssets.forEach(requiredAsset => {\n self.requireAsset(requiredAsset);\n __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_manageAssetConstraintRequiredAssets).call(self, requiredAsset);\n });\n}, _AssetsManager_manageAssetConstraintTransform = function _AssetsManager_manageAssetConstraintTransform(key) {\n const transform = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_getAssetConstraintTransform).call(this, key);\n if (!transform)\n return;\n const { handler, assetsKeys } = transform;\n const params = __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_computeTransformParams).call(this, assetsKeys);\n const transformedData = handler(params);\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetData).call(this, key, transformedData);\n}, _AssetsManager_computeTransformParams = function _AssetsManager_computeTransformParams(assetsKeys) {\n const self = this;\n const params = assetsKeys.reduce((params, assetKey) => {\n const asset = __classPrivateFieldGet(self, _AssetsManager_instances, \"m\", _AssetsManager_getAsset).call(self, assetKey);\n const data = asset?.data;\n return {\n ...params,\n [assetKey]: data,\n };\n }, {});\n return params;\n}, _AssetsManager_clearAsset = function _AssetsManager_clearAsset(key) {\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetRequired).call(this, key, false);\n __classPrivateFieldGet(this, _AssetsManager_instances, \"m\", _AssetsManager_setAssetData).call(this, key, null);\n};\nexport default AssetsManager;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _FilesManager_instances, _FilesManager_rules, _FilesManager_mediator, _FilesManager_blobRequests, _FilesManager_hasValidExtension, _FilesManager_getRuleByMatch, _FilesManager_computeBlobRequests, _FilesManager_computeBlobRequest, _FilesManager_validateFiles, _FilesManager_validateFile;\nimport { EVENT_MANAGERS_FILES_READY } from '@/constants';\nclass FilesManager {\n constructor({ rules }) {\n _FilesManager_instances.add(this);\n _FilesManager_rules.set(this, void 0);\n _FilesManager_mediator.set(this, void 0);\n _FilesManager_blobRequests.set(this, void 0);\n __classPrivateFieldSet(this, _FilesManager_rules, rules, \"f\");\n __classPrivateFieldSet(this, _FilesManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _FilesManager_blobRequests, null, \"f\");\n }\n // INITs\n init(mediator) {\n __classPrivateFieldSet(this, _FilesManager_mediator, mediator, \"f\");\n }\n // GETTERs\n getBlobRequests() {\n return __classPrivateFieldGet(this, _FilesManager_blobRequests, \"f\");\n }\n // ACTIONs\n updateSources(files) {\n __classPrivateFieldSet(this, _FilesManager_blobRequests, __classPrivateFieldGet(this, _FilesManager_instances, \"m\", _FilesManager_computeBlobRequests).call(this, files), \"f\");\n __classPrivateFieldGet(this, _FilesManager_mediator, \"f\").notify(EVENT_MANAGERS_FILES_READY);\n }\n flushBlobRequests() {\n __classPrivateFieldSet(this, _FilesManager_blobRequests, null, \"f\");\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _FilesManager_rules, null, \"f\");\n __classPrivateFieldSet(this, _FilesManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _FilesManager_blobRequests, null, \"f\");\n }\n}\n_FilesManager_rules = new WeakMap(), _FilesManager_mediator = new WeakMap(), _FilesManager_blobRequests = new WeakMap(), _FilesManager_instances = new WeakSet(), _FilesManager_hasValidExtension = function _FilesManager_hasValidExtension(file) {\n const { name } = file;\n const rule = __classPrivateFieldGet(this, _FilesManager_instances, \"m\", _FilesManager_getRuleByMatch).call(this, name);\n if (!rule)\n return false;\n return true;\n}, _FilesManager_getRuleByMatch = function _FilesManager_getRuleByMatch(name) {\n return __classPrivateFieldGet(this, _FilesManager_rules, \"f\").find(rule => name.match(rule.test));\n}, _FilesManager_computeBlobRequests = function _FilesManager_computeBlobRequests(files) {\n const self = this;\n const validFiles = __classPrivateFieldGet(this, _FilesManager_instances, \"m\", _FilesManager_validateFiles).call(this, files);\n if (validFiles.length === 0)\n return [];\n const blobRequests = validFiles.map(file => __classPrivateFieldGet(self, _FilesManager_instances, \"m\", _FilesManager_computeBlobRequest).call(self, file));\n return blobRequests;\n}, _FilesManager_computeBlobRequest = function _FilesManager_computeBlobRequest(file) {\n const { name } = file;\n const rule = __classPrivateFieldGet(this, _FilesManager_instances, \"m\", _FilesManager_getRuleByMatch).call(this, name);\n const { assetType } = rule;\n const url = URL.createObjectURL(file);\n const blobRequest = {\n type: assetType,\n url,\n };\n return blobRequest;\n}, _FilesManager_validateFiles = function _FilesManager_validateFiles(files) {\n const self = this;\n if (files?.length === 0)\n return [];\n const validFiles = Array.from(files).filter(file => __classPrivateFieldGet(self, _FilesManager_instances, \"m\", _FilesManager_validateFile).call(self, file));\n return validFiles;\n}, _FilesManager_validateFile = function _FilesManager_validateFile(file) {\n const hasValidExtension = __classPrivateFieldGet(this, _FilesManager_instances, \"m\", _FilesManager_hasValidExtension).call(this, file);\n if (!hasValidExtension)\n return false;\n return true;\n};\nexport default FilesManager;\n","export const avg = (numbers) => {\n return numbers.reduce((acc, number) => acc + number) / numbers.length;\n};\nexport const cotan = (angle) => {\n return 1 / Math.tan(angle);\n};\nexport const toDegree = (angle) => {\n return (angle / Math.PI) * 180;\n};\nexport const toDegreeArray = (angles) => {\n return angles.map(angle => toDegree(angle));\n};\nexport const toRadians = (angle) => {\n return angle * (Math.PI / 180);\n};\nexport const toRadiansArray = (angles) => {\n return angles.map(angle => toRadians(angle));\n};\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PerformanceManager_instances, _PerformanceManager_fpsHigherBound, _PerformanceManager_fpsLowerBound, _PerformanceManager_fpsMax, _PerformanceManager_fpsSamplesSize, _PerformanceManager_fpsSamplingRate, _PerformanceManager_mediator, _PerformanceManager_deltaCount, _PerformanceManager_fpsSamples, _PerformanceManager_hasToSample, _PerformanceManager_hasCompletedSampling, _PerformanceManager_computeFps, _PerformanceManager_manageBounds, _PerformanceManager_manageBelowLowerBound, _PerformanceManager_manageAboveHigherBound;\nimport { EVENT_MANAGERS_PERFORMANCE_FPS_HIGH, EVENT_MANAGERS_PERFORMANCE_FPS_LOW, } from '@/constants';\nimport { avg } from '@/utils/math';\nclass PerformanceManager {\n constructor({ fpsHigherBound, fpsLowerBound, fpsMax, fpsSamplesSize, fpsSamplingRate, }) {\n _PerformanceManager_instances.add(this);\n _PerformanceManager_fpsHigherBound.set(this, void 0);\n _PerformanceManager_fpsLowerBound.set(this, void 0);\n _PerformanceManager_fpsMax.set(this, void 0);\n _PerformanceManager_fpsSamplesSize.set(this, void 0);\n _PerformanceManager_fpsSamplingRate.set(this, void 0);\n _PerformanceManager_mediator.set(this, void 0);\n _PerformanceManager_deltaCount.set(this, void 0);\n _PerformanceManager_fpsSamples.set(this, void 0);\n __classPrivateFieldSet(this, _PerformanceManager_fpsHigherBound, fpsHigherBound, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsLowerBound, fpsLowerBound, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsMax, fpsMax, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamplesSize, fpsSamplesSize, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamplingRate, fpsSamplingRate, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_deltaCount, 0, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamples, [], \"f\");\n }\n // INITs\n init(mediator) {\n __classPrivateFieldSet(this, _PerformanceManager_mediator, mediator, \"f\");\n }\n // ACTIONs\n update(delta) {\n var _a;\n __classPrivateFieldSet(this, _PerformanceManager_deltaCount, (_a = __classPrivateFieldGet(this, _PerformanceManager_deltaCount, \"f\"), _a++, _a), \"f\");\n if (!__classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_hasToSample).call(this))\n return;\n __classPrivateFieldSet(this, _PerformanceManager_deltaCount, 0, \"f\");\n const fps = __classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_computeFps).call(this, delta);\n __classPrivateFieldGet(this, _PerformanceManager_fpsSamples, \"f\").push(fps);\n if (!__classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_hasCompletedSampling).call(this))\n return;\n const average = avg(__classPrivateFieldGet(this, _PerformanceManager_fpsSamples, \"f\"));\n // console.log('samples', this.#fpsSamples);\n // console.log('average', average);\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamples, [], \"f\");\n __classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_manageBounds).call(this, average);\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _PerformanceManager_fpsHigherBound, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsLowerBound, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsMax, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamplesSize, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamplingRate, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_mediator, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_deltaCount, null, \"f\");\n __classPrivateFieldSet(this, _PerformanceManager_fpsSamples, null, \"f\");\n }\n}\n_PerformanceManager_fpsHigherBound = new WeakMap(), _PerformanceManager_fpsLowerBound = new WeakMap(), _PerformanceManager_fpsMax = new WeakMap(), _PerformanceManager_fpsSamplesSize = new WeakMap(), _PerformanceManager_fpsSamplingRate = new WeakMap(), _PerformanceManager_mediator = new WeakMap(), _PerformanceManager_deltaCount = new WeakMap(), _PerformanceManager_fpsSamples = new WeakMap(), _PerformanceManager_instances = new WeakSet(), _PerformanceManager_hasToSample = function _PerformanceManager_hasToSample() {\n return __classPrivateFieldGet(this, _PerformanceManager_deltaCount, \"f\") % __classPrivateFieldGet(this, _PerformanceManager_fpsSamplingRate, \"f\") === 0;\n}, _PerformanceManager_hasCompletedSampling = function _PerformanceManager_hasCompletedSampling() {\n return __classPrivateFieldGet(this, _PerformanceManager_fpsSamples, \"f\").length === __classPrivateFieldGet(this, _PerformanceManager_fpsSamplesSize, \"f\");\n}, _PerformanceManager_computeFps = function _PerformanceManager_computeFps(delta) {\n const fps = Math.round(1 / delta);\n if (fps > __classPrivateFieldGet(this, _PerformanceManager_fpsMax, \"f\"))\n return __classPrivateFieldGet(this, _PerformanceManager_fpsMax, \"f\");\n return fps;\n}, _PerformanceManager_manageBounds = function _PerformanceManager_manageBounds(average) {\n if (average < __classPrivateFieldGet(this, _PerformanceManager_fpsLowerBound, \"f\"))\n __classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_manageBelowLowerBound).call(this);\n if (average > __classPrivateFieldGet(this, _PerformanceManager_fpsHigherBound, \"f\"))\n __classPrivateFieldGet(this, _PerformanceManager_instances, \"m\", _PerformanceManager_manageAboveHigherBound).call(this);\n}, _PerformanceManager_manageBelowLowerBound = function _PerformanceManager_manageBelowLowerBound() {\n __classPrivateFieldGet(this, _PerformanceManager_mediator, \"f\").notify(EVENT_MANAGERS_PERFORMANCE_FPS_LOW);\n}, _PerformanceManager_manageAboveHigherBound = function _PerformanceManager_manageAboveHigherBound() {\n __classPrivateFieldGet(this, _PerformanceManager_mediator, \"f\").notify(EVENT_MANAGERS_PERFORMANCE_FPS_HIGH);\n};\nexport default PerformanceManager;\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_COMPONENT_SELECTED } from '@/constants';\nexport default class ComponentSelectedDispatcher {\n static dispatch(componentId) {\n EventDispatcher.dispatch({\n detail: { componentId },\n event: EVENT_CALLBACKS_COMPONENT_SELECTED,\n target: window,\n });\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AppMediator_instances, _AppMediator_id, _AppMediator_metadata, _AppMediator_init, _AppMediator_initComponents, _AppMediator_setAssetBlobUrl, _AppMediator_disposeComponents, _AppMediator_handleAssetError, _AppMediator_handleAssetLoaded, _AppMediator_handleAssetWarningNoPath, _AppMediator_handleAssetsReady, _AppMediator_handleBlobRequestsReady, _AppMediator_handleFpsHigh, _AppMediator_handleFpsLow, _AppMediator_handleSettingsUpdated, _AppMediator_handleControlsEnd, _AppMediator_handleControlsStart, _AppMediator_handlePendingFiles, _AppMediator_handlePerformance, _AppMediator_handleSelectedComponent, _AppMediator_handleSetAutoRotateCamera, _AppMediator_handleSetLensesOpacity;\nimport { nanoid } from 'nanoid';\nimport { getComponentById, getComponents, } from '@luxottica/gltf-configuration-processor';\nimport { TokenParser } from '@luxottica/gltf-token-catalog';\nimport { EVENT_ASSET_ERROR, EVENT_ASSET_LOADED, EVENT_ASSET_WARNING_WITHOUT_PATH, EVENT_MANAGERS_ASSETS_READY, EVENT_MANAGERS_FILES_READY, EVENT_MANAGERS_PERFORMANCE_FPS_HIGH, EVENT_MANAGERS_PERFORMANCE_FPS_LOW, EVENT_SETTINGS_UPDATED, EVENT_VIEW_IS_MOVING, EVENT_VIEW_IS_STILL, EVENT_VIEW_PENDING_FILES, EVENT_VIEW_PERFORMANCE, EVENT_VIEW_SELECTED_COMPONENT, EVENT_VIEW_SET_AUTO_ROTATE_CAMERA, EVENT_VIEW_SET_LENSES_OPACITY, KEY_ASSETS_BACKGROUND, KEY_ASSETS_CAMERA_MOVEMENTS, KEY_ASSETS_ENVIRONMENT, KEY_ASSETS_EXPLOSION, KEY_ASSETS_LENSES_CATALOGUE, KEY_ASSETS_MODEL3D, KEY_ASSETS_SORTING, KEY_SETTINGS_AUTO_ROTATE_CAMERA, KEY_SETTINGS_LENSES_OPACITY, KEY_SETTINGS_STATUS, } from '@/constants';\nimport ComponentSelectedDispatcher from '@/dispatchers/ComponentSelectedDispatcher';\nclass AppMediator {\n constructor({ controllers, id, managers, metadata, view }) {\n _AppMediator_instances.add(this);\n Object.defineProperty(this, \"controllers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _AppMediator_id.set(this, void 0);\n Object.defineProperty(this, \"managers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _AppMediator_metadata.set(this, void 0);\n Object.defineProperty(this, \"view\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"selectComponent\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: async ({ componentIndex, }) => {\n const { type, value } = __classPrivateFieldGet(this, _AppMediator_id, \"f\");\n if (type !== 'token')\n return;\n const tokenParser = new TokenParser(value);\n const components = tokenParser.components;\n const componentId = components[componentIndex];\n const component = await getComponentById({\n id: componentId,\n metadata: {\n envs: __classPrivateFieldGet(this, _AppMediator_metadata, \"f\").envs,\n lod: 0,\n qa: __classPrivateFieldGet(this, _AppMediator_metadata, \"f\").qa,\n },\n token: value,\n });\n if (!component)\n return;\n const controls = this.view.getControls();\n controls.handleCameraMovement({\n type: 'component',\n value: component.type,\n });\n }\n });\n this.controllers = controllers;\n __classPrivateFieldSet(this, _AppMediator_id, id, \"f\");\n this.managers = managers;\n __classPrivateFieldSet(this, _AppMediator_metadata, metadata, \"f\");\n this.view = view;\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_init).call(this);\n }\n // GETTERs\n getCameraControls() {\n const controls = this.view.getControls();\n return controls.getCameraControls();\n }\n // SETTERs\n setAssetPath({ assetKey, assetIdentifier, path, validationOptions, }) {\n this.controllers.assets[assetKey].setPath({\n path,\n assetIdentifier,\n validationOptions,\n });\n this.managers.assets.requireAsset(assetKey);\n }\n setAssetData({ assetKey, assetIdentifier, data, }) {\n this.managers.assets.requireAsset(assetKey);\n this.controllers.assets[assetKey].setData({ data, assetIdentifier });\n }\n setId(id) {\n __classPrivateFieldSet(this, _AppMediator_id, id, \"f\");\n }\n setPendingAsset(identifier) {\n this.controllers.assets[KEY_ASSETS_MODEL3D].setPendingAsset(identifier);\n }\n setPersonalization(personalization) {\n this.view.setPersonalization(personalization);\n }\n setSetting(setting) {\n this.controllers.settings.setSetting(setting);\n }\n // ACTIONs\n notify(event, data) {\n switch (event) {\n case EVENT_ASSET_ERROR:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleAssetError).call(this, data.assetKey);\n break;\n case EVENT_ASSET_LOADED:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleAssetLoaded).call(this, data.assetKey);\n break;\n case EVENT_ASSET_WARNING_WITHOUT_PATH:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleAssetWarningNoPath).call(this, data.assetKey);\n break;\n case EVENT_MANAGERS_ASSETS_READY:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleAssetsReady).call(this);\n break;\n case EVENT_MANAGERS_FILES_READY:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleBlobRequestsReady).call(this);\n break;\n case EVENT_MANAGERS_PERFORMANCE_FPS_HIGH:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleFpsHigh).call(this);\n break;\n case EVENT_MANAGERS_PERFORMANCE_FPS_LOW:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleFpsLow).call(this);\n break;\n case EVENT_SETTINGS_UPDATED:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleSettingsUpdated).call(this);\n break;\n case EVENT_VIEW_IS_MOVING:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleControlsStart).call(this);\n break;\n case EVENT_VIEW_IS_STILL:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleControlsEnd).call(this);\n break;\n case EVENT_VIEW_PENDING_FILES:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handlePendingFiles).call(this);\n break;\n case EVENT_VIEW_PERFORMANCE:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handlePerformance).call(this, data);\n break;\n case EVENT_VIEW_SELECTED_COMPONENT:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleSelectedComponent).call(this, data);\n break;\n case EVENT_VIEW_SET_AUTO_ROTATE_CAMERA:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleSetAutoRotateCamera).call(this, data);\n break;\n case EVENT_VIEW_SET_LENSES_OPACITY:\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_handleSetLensesOpacity).call(this, data);\n break;\n }\n }\n clearPersonalizations() {\n this.view.clearPersonalizations();\n }\n moveCamera(target) {\n const controls = this.view.getControls();\n controls.handleCameraMovement(target);\n }\n resetCamera() {\n const controls = this.view.getControls();\n controls.resetCamera();\n }\n toggleExplosion() {\n this.view.toggleExplosion();\n }\n toggleFullscreen() {\n this.view.toggleFullscreen();\n }\n toggleLensesOpacity(duration) {\n this.view.toggleLensesOpacity(duration);\n }\n async dispose() {\n await __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_disposeComponents).call(this);\n this.controllers = null;\n __classPrivateFieldSet(this, _AppMediator_id, null, \"f\");\n this.managers = null;\n __classPrivateFieldSet(this, _AppMediator_metadata, null, \"f\");\n this.view = null;\n }\n}\n_AppMediator_id = new WeakMap(), _AppMediator_metadata = new WeakMap(), _AppMediator_instances = new WeakSet(), _AppMediator_init = function _AppMediator_init() {\n __classPrivateFieldGet(this, _AppMediator_instances, \"m\", _AppMediator_initComponents).call(this);\n}, _AppMediator_initComponents = function _AppMediator_initComponents() {\n // Components' ordering is important,\n // the controllers need to be initialized last\n // Managers\n this.managers.assets.init(this);\n this.managers.files.init(this);\n this.managers.performance.init(this);\n // View\n this.view.init(this, __classPrivateFieldGet(this, _AppMediator_metadata, \"f\"));\n // Controllers\n this.controllers.assets[KEY_ASSETS_BACKGROUND].init(this);\n this.controllers.assets[KEY_ASSETS_CAMERA_MOVEMENTS].init(this);\n this.controllers.assets[KEY_ASSETS_ENVIRONMENT].init(this);\n this.controllers.assets[KEY_ASSETS_EXPLOSION].init(this);\n this.controllers.assets[KEY_ASSETS_LENSES_CATALOGUE].init(this);\n this.controllers.assets[KEY_ASSETS_MODEL3D].init(this);\n this.controllers.assets[KEY_ASSETS_SORTING].init(this);\n this.controllers.settings.init(this);\n}, _AppMediator_setAssetBlobUrl = function _AppMediator_setAssetBlobUrl({ assetKey, assetIdentifier, blobUrl, }) {\n this.controllers.assets[assetKey].setBlobUrl({\n blobUrl,\n assetIdentifier,\n });\n this.managers.assets.requireAsset(assetKey);\n}, _AppMediator_disposeComponents = async function _AppMediator_disposeComponents() {\n // Controllers\n this.controllers.assets[KEY_ASSETS_BACKGROUND].dispose();\n this.controllers.assets[KEY_ASSETS_CAMERA_MOVEMENTS].dispose();\n this.controllers.assets[KEY_ASSETS_ENVIRONMENT].dispose();\n this.controllers.assets[KEY_ASSETS_EXPLOSION].dispose();\n this.controllers.assets[KEY_ASSETS_LENSES_CATALOGUE].dispose();\n this.controllers.assets[KEY_ASSETS_MODEL3D].dispose();\n this.controllers.assets[KEY_ASSETS_SORTING].dispose();\n this.controllers.settings.dispose();\n // Managers\n this.managers.assets.dispose();\n this.managers.files.dispose();\n this.managers.performance.dispose();\n // View\n await this.view.dispose();\n}, _AppMediator_handleAssetError = function _AppMediator_handleAssetError(assetKey) {\n this.managers.assets.updateAssetData(assetKey, undefined);\n}, _AppMediator_handleAssetLoaded = function _AppMediator_handleAssetLoaded(assetKey) {\n const asset = this.controllers.assets[assetKey].getData();\n this.managers.assets.updateAssetData(assetKey, asset);\n}, _AppMediator_handleAssetWarningNoPath = function _AppMediator_handleAssetWarningNoPath(assetKey) {\n this.managers.assets.updateAssetData(assetKey, undefined);\n}, _AppMediator_handleAssetsReady = function _AppMediator_handleAssetsReady() {\n const requiredAssets = this.managers.assets.getRequiredAssets();\n const viewAssets = requiredAssets.map(asset => {\n const { key, data } = asset;\n return {\n key,\n data,\n };\n });\n this.view.updateAssets(viewAssets);\n this.managers.assets.clearAssets();\n}, _AppMediator_handleBlobRequestsReady = function _AppMediator_handleBlobRequestsReady() {\n const self = this;\n const assetIdentifier = nanoid();\n const blobRequests = this.managers.files.getBlobRequests();\n blobRequests.forEach(blobRequest => {\n const { type, url } = blobRequest;\n __classPrivateFieldGet(self, _AppMediator_instances, \"m\", _AppMediator_setAssetBlobUrl).call(self, {\n assetKey: type,\n assetIdentifier,\n blobUrl: url,\n });\n });\n this.managers.files.flushBlobRequests();\n}, _AppMediator_handleFpsHigh = function _AppMediator_handleFpsHigh() {\n this.controllers.settings.increaseQuality();\n}, _AppMediator_handleFpsLow = function _AppMediator_handleFpsLow() {\n this.controllers.settings.decreaseQuality();\n}, _AppMediator_handleSettingsUpdated = function _AppMediator_handleSettingsUpdated() {\n const settings = this.controllers.settings.getUpdatedSettings();\n this.view.updateSettings(settings);\n}, _AppMediator_handleControlsEnd = function _AppMediator_handleControlsEnd() {\n this.controllers.settings.setSetting({\n key: KEY_SETTINGS_STATUS,\n value: 'still',\n });\n}, _AppMediator_handleControlsStart = function _AppMediator_handleControlsStart() {\n this.controllers.settings.setSetting({\n key: KEY_SETTINGS_STATUS,\n value: 'moving',\n });\n}, _AppMediator_handlePendingFiles = function _AppMediator_handlePendingFiles() {\n const files = this.view.getPendingFiles();\n this.managers.files.updateSources(files);\n this.view.flushPendingFiles();\n}, _AppMediator_handlePerformance = function _AppMediator_handlePerformance(delta) {\n this.managers.performance.update(delta);\n}, _AppMediator_handleSelectedComponent = async function _AppMediator_handleSelectedComponent(componentName) {\n const { type, value } = __classPrivateFieldGet(this, _AppMediator_id, \"f\");\n if (type !== 'token')\n return;\n const infoComponents = await getComponents({\n metadata: {\n envs: __classPrivateFieldGet(this, _AppMediator_metadata, \"f\").envs,\n lod: 0,\n qa: __classPrivateFieldGet(this, _AppMediator_metadata, \"f\").qa,\n },\n token: value,\n });\n const infoComponent = infoComponents.find(infoComponent => infoComponent.type === componentName);\n if (!infoComponent)\n return;\n const { id: infoComponentId } = infoComponent;\n const tokenParser = new TokenParser(value);\n const tokenComponents = tokenParser.components;\n const componentIndex = tokenComponents.indexOf(infoComponentId);\n if (componentIndex === -1)\n return;\n const controls = this.view.getControls();\n controls.handleCameraMovement({\n type: 'component',\n value: componentName,\n });\n ComponentSelectedDispatcher.dispatch(componentIndex);\n}, _AppMediator_handleSetAutoRotateCamera = function _AppMediator_handleSetAutoRotateCamera(autoRotateCamera) {\n this.controllers.settings.setSetting({\n key: KEY_SETTINGS_AUTO_ROTATE_CAMERA,\n value: autoRotateCamera,\n });\n}, _AppMediator_handleSetLensesOpacity = function _AppMediator_handleSetLensesOpacity(opacity) {\n this.controllers.settings.setSetting({\n key: KEY_SETTINGS_LENSES_OPACITY,\n value: opacity,\n });\n};\nexport default AppMediator;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Model_controller;\nclass Model {\n constructor() {\n _Model_controller.set(this, void 0);\n __classPrivateFieldSet(this, _Model_controller, null, \"f\");\n }\n // INITs\n init(controller) {\n __classPrivateFieldSet(this, _Model_controller, controller, \"f\");\n }\n // ACTIONs\n notifyController(event, data) {\n __classPrivateFieldGet(this, _Model_controller, \"f\").notify(event, data);\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _Model_controller, null, \"f\");\n }\n}\n_Model_controller = new WeakMap();\nexport default Model;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Asset_instances, _Asset_data, _Asset_key, _Asset_loader, _Asset_path, _Asset_blobUrl, _Asset_loadByPath, _Asset_loadByBlobUrl, _Asset_load, _Asset_flushBlob;\nimport to from 'await-to-js';\nimport { isUndefined } from 'lodash-es';\nimport Model from './Model';\nimport { EVENT_ASSET_ERROR_LOADING, EVENT_ASSET_LOADED, EVENT_ASSET_WARNING_WITHOUT_PATH, } from '@/constants';\nclass Asset extends Model {\n constructor({ data, key, loader, path }) {\n super();\n _Asset_instances.add(this);\n _Asset_data.set(this, void 0);\n _Asset_key.set(this, void 0);\n _Asset_loader.set(this, void 0);\n _Asset_path.set(this, void 0);\n _Asset_blobUrl.set(this, void 0);\n __classPrivateFieldSet(this, _Asset_data, data, \"f\");\n __classPrivateFieldSet(this, _Asset_key, key, \"f\");\n __classPrivateFieldSet(this, _Asset_loader, loader, \"f\");\n __classPrivateFieldSet(this, _Asset_path, path, \"f\");\n __classPrivateFieldSet(this, _Asset_blobUrl, null, \"f\");\n }\n // INITs\n init(controller) {\n super.init(controller);\n if (__classPrivateFieldGet(this, _Asset_data, \"f\")) {\n this.notifyController(EVENT_ASSET_LOADED, {\n assetIdentifier: undefined,\n });\n return;\n }\n __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_loadByPath).call(this);\n }\n // GETTERs\n getKey() {\n return __classPrivateFieldGet(this, _Asset_key, \"f\");\n }\n getData() {\n return __classPrivateFieldGet(this, _Asset_data, \"f\");\n }\n // SETTERs\n setPath(path, assetIdentifier) {\n __classPrivateFieldSet(this, _Asset_path, path, \"f\");\n __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_loadByPath).call(this, assetIdentifier);\n }\n setData(data, assetIdentifier) {\n __classPrivateFieldSet(this, _Asset_data, data, \"f\");\n this.notifyController(EVENT_ASSET_LOADED, { assetIdentifier });\n }\n setBlobUrl(blobUrl, assetIdentifier) {\n __classPrivateFieldSet(this, _Asset_blobUrl, blobUrl, \"f\");\n __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_loadByBlobUrl).call(this, assetIdentifier);\n }\n dispose() {\n super.dispose();\n // To null\n __classPrivateFieldSet(this, _Asset_data, null, \"f\");\n __classPrivateFieldSet(this, _Asset_key, null, \"f\");\n __classPrivateFieldSet(this, _Asset_loader, null, \"f\");\n __classPrivateFieldSet(this, _Asset_path, null, \"f\");\n __classPrivateFieldSet(this, _Asset_blobUrl, null, \"f\");\n }\n}\n_Asset_data = new WeakMap(), _Asset_key = new WeakMap(), _Asset_loader = new WeakMap(), _Asset_path = new WeakMap(), _Asset_blobUrl = new WeakMap(), _Asset_instances = new WeakSet(), _Asset_loadByPath = \n// ACTIONs\nasync function _Asset_loadByPath(assetIdentifier) {\n if (!isUndefined(__classPrivateFieldGet(this, _Asset_path, \"f\"))) {\n __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_load).call(this, __classPrivateFieldGet(this, _Asset_path, \"f\"), assetIdentifier);\n return;\n }\n __classPrivateFieldSet(this, _Asset_data, undefined, \"f\");\n this.notifyController(EVENT_ASSET_WARNING_WITHOUT_PATH);\n}, _Asset_loadByBlobUrl = async function _Asset_loadByBlobUrl(assetIdentifier) {\n await __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_load).call(this, __classPrivateFieldGet(this, _Asset_blobUrl, \"f\"), assetIdentifier);\n __classPrivateFieldGet(this, _Asset_instances, \"m\", _Asset_flushBlob).call(this);\n}, _Asset_load = async function _Asset_load(source, assetIdentifier) {\n const [err, data] = await to(__classPrivateFieldGet(this, _Asset_loader, \"f\").loadAsync(source));\n if (err) {\n __classPrivateFieldSet(this, _Asset_data, undefined, \"f\");\n this.notifyController(EVENT_ASSET_ERROR_LOADING, {\n error: err,\n });\n return;\n }\n __classPrivateFieldSet(this, _Asset_data, data, \"f\");\n this.notifyController(EVENT_ASSET_LOADED, { assetIdentifier });\n}, _Asset_flushBlob = function _Asset_flushBlob() {\n URL.revokeObjectURL(__classPrivateFieldGet(this, _Asset_blobUrl, \"f\"));\n __classPrivateFieldSet(this, _Asset_blobUrl, null, \"f\");\n};\nexport default Asset;\n","import { TextureLoader } from 'three';\nimport Asset from './Asset';\nimport { KEY_ASSETS_BACKGROUND } from '@/constants';\nexport default class Model3d extends Asset {\n constructor({ path }) {\n super({\n key: KEY_ASSETS_BACKGROUND,\n loader: new TextureLoader(),\n path,\n });\n }\n}\n","import { FileLoader } from 'three';\nimport Asset from './Asset';\nimport { KEY_ASSETS_CAMERA_MOVEMENTS } from '@/constants';\nexport default class Explosion extends Asset {\n constructor({ path }) {\n super({\n key: KEY_ASSETS_CAMERA_MOVEMENTS,\n loader: new FileLoader(),\n path,\n });\n }\n}\n","import { HDRJPGLoader } from '@monogrid/gainmap-js';\nimport Asset from './Asset';\nimport { KEY_ASSETS_ENVIRONMENT } from '@/constants';\nexport default class Environment extends Asset {\n constructor({ path, renderer }) {\n super({\n key: KEY_ASSETS_ENVIRONMENT,\n loader: new HDRJPGLoader(renderer),\n path,\n });\n }\n dispose() {\n const data = this.getData();\n data.dispose();\n super.dispose();\n }\n}\n","import { FileLoader } from 'three';\nimport Asset from './Asset';\nimport { KEY_ASSETS_EXPLOSION } from '@/constants';\nexport default class Explosion extends Asset {\n constructor({ path }) {\n super({\n key: KEY_ASSETS_EXPLOSION,\n loader: new FileLoader(),\n path,\n });\n }\n}\n","import { FileLoader } from 'three';\nimport Asset from './Asset';\nimport { KEY_ASSETS_LENSES_CATALOGUE } from '@/constants';\nexport default class LensesCatalogue extends Asset {\n constructor({ path }) {\n super({\n key: KEY_ASSETS_LENSES_CATALOGUE,\n loader: new FileLoader(),\n path,\n });\n }\n}\n","import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';\nimport { PersonalizationsLoaderPlugin } from '@luxottica/gltf-personalization-processor';\nimport { IridescenceMaterialLoaderPlugin } from '@luxottica/vm-renderer-core';\nimport Asset from './Asset';\nimport { KEY_ASSETS_MODEL3D } from '@/constants';\nexport default class Model3d extends Asset {\n constructor({ data, path }) {\n super({\n data,\n key: KEY_ASSETS_MODEL3D,\n loader: new GLTFLoader()\n .register(parser => new IridescenceMaterialLoaderPlugin(parser))\n .register(parser => new PersonalizationsLoaderPlugin(parser)),\n path,\n });\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Settings_instances, _Settings_settings, _Settings_getSetting;\nimport Model from './Model';\nimport { EVENT_SETTINGS_UPDATED } from '@/constants';\nclass Settings extends Model {\n constructor({ settings }) {\n super();\n _Settings_instances.add(this);\n _Settings_settings.set(this, void 0);\n __classPrivateFieldSet(this, _Settings_settings, settings, \"f\");\n }\n // INITs\n init(controller) {\n super.init(controller);\n this.notifyController(EVENT_SETTINGS_UPDATED);\n }\n // GETTERs\n getSettings() {\n return __classPrivateFieldGet(this, _Settings_settings, \"f\");\n }\n // SETTERs\n setSetting({ key, value }) {\n const setting = __classPrivateFieldGet(this, _Settings_instances, \"m\", _Settings_getSetting).call(this, key);\n if (!setting)\n return;\n setting.value = value;\n this.notifyController(EVENT_SETTINGS_UPDATED);\n }\n // ACTIONs\n dispose() {\n super.dispose();\n // To null\n __classPrivateFieldSet(this, _Settings_settings, null, \"f\");\n }\n}\n_Settings_settings = new WeakMap(), _Settings_instances = new WeakSet(), _Settings_getSetting = function _Settings_getSetting(key) {\n const setting = __classPrivateFieldGet(this, _Settings_settings, \"f\").find(setting => setting.key === key);\n return setting;\n};\nexport default Settings;\n","import { FileLoader } from 'three';\nimport Asset from './Asset';\nimport { KEY_ASSETS_SORTING } from '@/constants';\nexport default class Sorting extends Asset {\n constructor({ data, path }) {\n super({\n data,\n key: KEY_ASSETS_SORTING,\n loader: new FileLoader(),\n path,\n });\n }\n}\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_FOCUS } from '@/constants';\nexport default class SettingsUpdatedDispatcher {\n static dispatch(focus) {\n EventDispatcher.dispatch({\n detail: { focus },\n event: EVENT_CALLBACKS_FOCUS,\n target: window,\n });\n }\n}\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_ACTIONS } from '@/constants';\nexport default class ActionDispatcher {\n static dispatch(actions) {\n EventDispatcher.dispatch({\n detail: { actions },\n event: EVENT_CALLBACKS_ACTIONS,\n target: window,\n });\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ActionsManager_instances, _ActionsManager_action, _ActionsManager_actionsStatus, _ActionsManager_callback, _ActionsManager_computeActions, _ActionsManager_updateActionsStatus, _ActionsManager_resetActionsStatus;\nimport { findKey, mapValues } from 'lodash-es';\nimport cameraControls from 'camera-controls';\nimport { ACTION_GESTURES } from '@/constants';\nimport ActionsDispatcher from '@/dispatchers/ActionDispatcher';\nclass ActionsManager {\n constructor(callback) {\n _ActionsManager_instances.add(this);\n _ActionsManager_action.set(this, void 0);\n _ActionsManager_actionsStatus.set(this, void 0);\n _ActionsManager_callback.set(this, void 0);\n __classPrivateFieldSet(this, _ActionsManager_action, null, \"f\");\n __classPrivateFieldSet(this, _ActionsManager_actionsStatus, {\n rotate: false,\n pan: false,\n dolly: false,\n 'dolly-rotate': false,\n 'dolly-pan': false,\n }, \"f\");\n __classPrivateFieldSet(this, _ActionsManager_callback, callback, \"f\");\n }\n // SETTERs\n setAction(action) {\n if (__classPrivateFieldGet(this, _ActionsManager_action, \"f\") === action)\n return;\n __classPrivateFieldSet(this, _ActionsManager_action, action, \"f\");\n __classPrivateFieldGet(this, _ActionsManager_instances, \"m\", _ActionsManager_computeActions).call(this);\n }\n resetAction() {\n this.setAction(cameraControls.ACTION.NONE);\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _ActionsManager_action, null, \"f\");\n __classPrivateFieldSet(this, _ActionsManager_actionsStatus, null, \"f\");\n }\n}\n_ActionsManager_action = new WeakMap(), _ActionsManager_actionsStatus = new WeakMap(), _ActionsManager_callback = new WeakMap(), _ActionsManager_instances = new WeakSet(), _ActionsManager_computeActions = function _ActionsManager_computeActions() {\n const actionBinary = (__classPrivateFieldGet(this, _ActionsManager_action, \"f\") >> 0).toString(2);\n const computedActions = actionBinary\n .split('')\n .reverse()\n .reduce((acc, action, index) => {\n if (action === '0')\n return acc;\n const value = Math.pow(2, index);\n const actionKey = findKey(cameraControls.ACTION, action => action === value);\n if (!actionKey)\n return acc;\n const gesture = ACTION_GESTURES[actionKey];\n if (!gesture)\n return acc;\n acc.push(gesture);\n return acc;\n }, []);\n __classPrivateFieldGet(this, _ActionsManager_instances, \"m\", _ActionsManager_updateActionsStatus).call(this, computedActions);\n}, _ActionsManager_updateActionsStatus = function _ActionsManager_updateActionsStatus(activeActions) {\n __classPrivateFieldGet(this, _ActionsManager_instances, \"m\", _ActionsManager_resetActionsStatus).call(this);\n activeActions.forEach(action => {\n __classPrivateFieldGet(this, _ActionsManager_actionsStatus, \"f\")[action] = true;\n });\n ActionsDispatcher.dispatch(__classPrivateFieldGet(this, _ActionsManager_actionsStatus, \"f\"));\n __classPrivateFieldGet(this, _ActionsManager_callback, \"f\").call(this, __classPrivateFieldGet(this, _ActionsManager_actionsStatus, \"f\"));\n}, _ActionsManager_resetActionsStatus = function _ActionsManager_resetActionsStatus() {\n __classPrivateFieldSet(this, _ActionsManager_actionsStatus, mapValues(__classPrivateFieldGet(this, _ActionsManager_actionsStatus, \"f\"), () => false), \"f\");\n};\nexport default ActionsManager;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _GesturesManager_instances, _GesturesManager_controls, _GesturesManager_gestures, _GesturesManager_enableScroll, _GesturesManager_hasPan, _GesturesManager_setHasPan, _GesturesManager_computeGestures, _GesturesManager_computeMouseGestures, _GesturesManager_computeTouchesGestures, _GesturesManager_computeMouseGesture, _GesturesManager_computeSingleTouchGesture, _GesturesManager_computeMultiTouchGesture;\nimport CameraControls from 'camera-controls';\nimport { merge } from 'lodash-es';\nimport { DEFAULT_SETTINGS_GESTURES } from '@/constants';\nclass GesturesManager {\n constructor({ controls }) {\n _GesturesManager_instances.add(this);\n _GesturesManager_controls.set(this, void 0);\n _GesturesManager_gestures.set(this, void 0);\n _GesturesManager_enableScroll.set(this, void 0);\n _GesturesManager_hasPan.set(this, void 0);\n __classPrivateFieldSet(this, _GesturesManager_controls, controls, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_gestures, null, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_enableScroll, null, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_hasPan, true, \"f\");\n }\n // SETTERs\n setGestures(gestures) {\n // Default gestures are merged with the ones defined by the developer\n __classPrivateFieldSet(this, _GesturesManager_gestures, merge({}, DEFAULT_SETTINGS_GESTURES, gestures), \"f\");\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeGestures).call(this);\n }\n setScrollStatus(status) {\n __classPrivateFieldSet(this, _GesturesManager_enableScroll, status, \"f\");\n if (__classPrivateFieldGet(this, _GesturesManager_gestures, \"f\")) {\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeGestures).call(this);\n }\n }\n // ACTIONs\n enablePan() {\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_setHasPan).call(this, true);\n }\n disablePan() {\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_setHasPan).call(this, false);\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _GesturesManager_controls, null, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_gestures, null, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_enableScroll, null, \"f\");\n __classPrivateFieldSet(this, _GesturesManager_hasPan, null, \"f\");\n }\n}\n_GesturesManager_controls = new WeakMap(), _GesturesManager_gestures = new WeakMap(), _GesturesManager_enableScroll = new WeakMap(), _GesturesManager_hasPan = new WeakMap(), _GesturesManager_instances = new WeakSet(), _GesturesManager_setHasPan = function _GesturesManager_setHasPan(hasPan) {\n __classPrivateFieldSet(this, _GesturesManager_hasPan, hasPan, \"f\");\n if (__classPrivateFieldGet(this, _GesturesManager_gestures, \"f\")) {\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeGestures).call(this);\n }\n}, _GesturesManager_computeGestures = function _GesturesManager_computeGestures() {\n const { mouse, touches } = __classPrivateFieldGet(this, _GesturesManager_gestures, \"f\");\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGestures).call(this, mouse);\n __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeTouchesGestures).call(this, touches);\n}, _GesturesManager_computeMouseGestures = function _GesturesManager_computeMouseGestures(mouse) {\n const { left, middle, right, wheel } = mouse;\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").mouseButtons.left = __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGesture).call(this, left);\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").mouseButtons.middle = __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGesture).call(this, middle);\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").mouseButtons.right = __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGesture).call(this, right);\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").mouseButtons.wheel = __classPrivateFieldGet(this, _GesturesManager_enableScroll, \"f\")\n ? __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGesture).call(this, 'none')\n : __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMouseGesture).call(this, wheel);\n}, _GesturesManager_computeTouchesGestures = function _GesturesManager_computeTouchesGestures(touches) {\n const { one, two, three } = touches;\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").touches.one = __classPrivateFieldGet(this, _GesturesManager_enableScroll, \"f\")\n ? __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeSingleTouchGesture).call(this, 'none')\n : __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeSingleTouchGesture).call(this, one);\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").touches.two = __classPrivateFieldGet(this, _GesturesManager_enableScroll, \"f\")\n ? __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMultiTouchGesture).call(this, 'none')\n : __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMultiTouchGesture).call(this, two);\n __classPrivateFieldGet(this, _GesturesManager_controls, \"f\").touches.three = __classPrivateFieldGet(this, _GesturesManager_enableScroll, \"f\")\n ? __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMultiTouchGesture).call(this, 'none')\n : __classPrivateFieldGet(this, _GesturesManager_instances, \"m\", _GesturesManager_computeMultiTouchGesture).call(this, three);\n}, _GesturesManager_computeMouseGesture = function _GesturesManager_computeMouseGesture(gesture) {\n switch (gesture) {\n case 'dolly':\n return CameraControls.ACTION.DOLLY;\n case 'none':\n return CameraControls.ACTION.NONE;\n case 'pan':\n return __classPrivateFieldGet(this, _GesturesManager_hasPan, \"f\")\n ? CameraControls.ACTION.TRUCK\n : CameraControls.ACTION.NONE;\n case 'rotate':\n return CameraControls.ACTION.ROTATE;\n }\n}, _GesturesManager_computeSingleTouchGesture = function _GesturesManager_computeSingleTouchGesture(gesture) {\n switch (gesture) {\n case 'dolly':\n return CameraControls.ACTION.DOLLY;\n case 'none':\n return CameraControls.ACTION.NONE;\n case 'pan':\n return __classPrivateFieldGet(this, _GesturesManager_hasPan, \"f\")\n ? CameraControls.ACTION.TOUCH_TRUCK\n : CameraControls.ACTION.NONE;\n case 'rotate':\n return CameraControls.ACTION.TOUCH_ROTATE;\n }\n}, _GesturesManager_computeMultiTouchGesture = function _GesturesManager_computeMultiTouchGesture(gesture) {\n switch (gesture) {\n case 'dolly':\n return CameraControls.ACTION.TOUCH_DOLLY;\n case 'dolly-pan':\n return __classPrivateFieldGet(this, _GesturesManager_hasPan, \"f\")\n ? CameraControls.ACTION.TOUCH_DOLLY_TRUCK\n : CameraControls.ACTION.TOUCH_DOLLY;\n case 'dolly-rotate':\n return CameraControls.ACTION.TOUCH_DOLLY_ROTATE;\n case 'none':\n return CameraControls.ACTION.NONE;\n case 'pan':\n return __classPrivateFieldGet(this, _GesturesManager_hasPan, \"f\")\n ? CameraControls.ACTION.TOUCH_TRUCK\n : CameraControls.ACTION.NONE;\n case 'rotate':\n return CameraControls.ACTION.TOUCH_ROTATE;\n }\n};\nexport default GesturesManager;\n","import { Matrix3, Vector3 } from 'three';\nexport const getClosestVertex = (mesh, point) => {\n let minDistance = Infinity;\n const vertices = getVertices(mesh);\n const closestVertex = vertices.reduce((closest, vertex) => {\n const distance = vertex.position.distanceTo(point);\n if (distance >= minDistance)\n return closest;\n minDistance = distance;\n return vertex;\n });\n return closestVertex;\n};\nexport const getVertices = (mesh) => {\n const vertices = [];\n const positionAttribute = mesh.geometry.getAttribute('position');\n const normalAttribute = mesh.geometry.getAttribute('normal');\n const verticiesNumber = positionAttribute.count;\n for (let i = 0; i < verticiesNumber; i++) {\n const position = new Vector3();\n const normal = new Vector3();\n position.fromBufferAttribute(positionAttribute, i);\n mesh.localToWorld(position);\n normal.fromBufferAttribute(normalAttribute, i);\n const { matrixWorld } = mesh;\n const normalMatrix = new Matrix3().getNormalMatrix(matrixWorld);\n normal.applyMatrix3(normalMatrix).normalize();\n vertices.push({\n position,\n normal,\n });\n }\n return vertices;\n};\nexport const isMesh = (object) => {\n return object?.type === 'Mesh';\n};\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Controls_instances, _Controls_renderer, _Controls_view, _Controls_debug, _Controls_mediator, _Controls_camera, _Controls_controls, _Controls_actionsManager, _Controls_gesturesManager, _Controls_cameraMovements, _Controls_isControllingContinuous, _Controls_isControllingDiscrete, _Controls_isResting, _Controls_isSleeping, _Controls_animations, _Controls_boundingArea, _Controls_boundingFit, _Controls_cameraRotationInitial, _Controls_cameraRotationReset, _Controls_frustumSphere, _Controls_scrollInteraction, _Controls_init, _Controls_initActionsManager, _Controls_initAnimations, _Controls_initCamera, _Controls_initControls, _Controls_initGesturesManager, _Controls_getAspect, _Controls_getCameraNearAndFar, _Controls_getDistanceToFitModel, _Controls_getDistanceToFitModelHorizontally, _Controls_getDistanceToFitModelVertically, _Controls_getFovX, _Controls_getFovY, _Controls_getNormalByIntersection, _Controls_isAnimating, _Controls_setCameraNearAndFar, _Controls_setFrustumSphere, _Controls_computeCameraAnimation, _Controls_computeAnimationOrbiting, _Controls_computeAnimationPulse, _Controls_computeAnimationRotation, _Controls_computeLookAt, _Controls_computeLookAtFocus, _Controls_computeLookAtMesh, _Controls_computeLookAtOnSphere, _Controls_computeSpherical, _Controls_handleCameraMovementOnPersonalization, _Controls_handleCameraMovementOnComponent, _Controls_moveCamera;\nimport CameraControls from 'camera-controls';\nimport isTouchDevice from 'is-touch-device';\nimport { debounce, isEqual } from 'lodash-es';\nimport { Box3, MathUtils, Matrix3, Matrix4, PerspectiveCamera, Quaternion, Raycaster, Sphere, Spherical, Vector2, Vector3, Vector4, } from 'three';\nimport { Tween, Easing, Group } from '@tweenjs/tween.js';\nimport { CAMERA_FOV, CAMERA_NEAR_INITIAL, CAMERA_FAR_INITIAL, CAMERA_PAN_MIN, CAMERA_PAN_MAX, CAMERA_MIN_DISTANCE, CAMERA_SMOOTH_TIME, CAMERA_AZIMUTH_ROTATE_SPEED, CAMERA_DRAGGING_SMOOTH_TIME, CAMERA_PERSONALIZATION_DISTANCE, GESTURES_SCROLL_INTERACTION_TIMEOUT, EVENT_VIEW_SET_AUTO_ROTATE_CAMERA, } from '@/constants';\nimport FocusDispatcher from '@/dispatchers/FocusDispatcher';\nimport ActionsManager from '@/managers/ActionsManager';\nimport GesturesManager from '@/managers/GesturesManager';\nimport { cotan, toRadians } from '@/utils/math';\nimport { getClosestVertex, isMesh } from '@/utils/mesh';\nCameraControls.install({\n THREE: {\n Vector2: Vector2,\n Vector3: Vector3,\n Vector4: Vector4,\n Quaternion: Quaternion,\n Matrix4: Matrix4,\n Spherical: Spherical,\n Box3: Box3,\n Sphere: Sphere,\n Raycaster: Raycaster,\n MathUtils: {\n DEG2RAD: MathUtils.DEG2RAD,\n clamp: MathUtils.clamp,\n },\n },\n});\nclass Controls {\n constructor({ mediator, renderer, debug = false, view }) {\n _Controls_instances.add(this);\n _Controls_renderer.set(this, void 0);\n _Controls_view.set(this, void 0);\n _Controls_debug.set(this, void 0);\n _Controls_mediator.set(this, void 0);\n _Controls_camera.set(this, void 0);\n _Controls_controls.set(this, void 0);\n _Controls_actionsManager.set(this, void 0);\n _Controls_gesturesManager.set(this, void 0);\n _Controls_cameraMovements.set(this, void 0);\n _Controls_isControllingContinuous.set(this, void 0);\n _Controls_isControllingDiscrete.set(this, void 0);\n _Controls_isResting.set(this, void 0);\n _Controls_isSleeping.set(this, void 0);\n _Controls_animations.set(this, void 0);\n Object.defineProperty(this, \"autoResetCamera\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"autoRotateCamera\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"autoRotateSpeed\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _Controls_boundingArea.set(this, void 0);\n _Controls_boundingFit.set(this, void 0);\n _Controls_cameraRotationInitial.set(this, void 0);\n _Controls_cameraRotationReset.set(this, void 0);\n _Controls_frustumSphere.set(this, void 0);\n _Controls_scrollInteraction.set(this, void 0);\n __classPrivateFieldSet(this, _Controls_mediator, mediator, \"f\");\n __classPrivateFieldSet(this, _Controls_renderer, renderer, \"f\");\n __classPrivateFieldSet(this, _Controls_view, view, \"f\");\n __classPrivateFieldSet(this, _Controls_debug, debug, \"f\");\n __classPrivateFieldSet(this, _Controls_camera, null, \"f\");\n __classPrivateFieldSet(this, _Controls_controls, null, \"f\");\n __classPrivateFieldSet(this, _Controls_actionsManager, null, \"f\");\n __classPrivateFieldSet(this, _Controls_gesturesManager, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraMovements, null, \"f\");\n __classPrivateFieldSet(this, _Controls_isControllingContinuous, false, \"f\");\n __classPrivateFieldSet(this, _Controls_isControllingDiscrete, false, \"f\");\n __classPrivateFieldSet(this, _Controls_isResting, true, \"f\");\n __classPrivateFieldSet(this, _Controls_isSleeping, true, \"f\");\n __classPrivateFieldSet(this, _Controls_animations, null, \"f\");\n this.autoResetCamera = null;\n this.autoRotateCamera = null;\n this.autoRotateSpeed = null;\n __classPrivateFieldSet(this, _Controls_boundingArea, null, \"f\");\n __classPrivateFieldSet(this, _Controls_boundingFit, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraRotationInitial, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraRotationReset, null, \"f\");\n __classPrivateFieldSet(this, _Controls_frustumSphere, null, \"f\");\n __classPrivateFieldSet(this, _Controls_scrollInteraction, null, \"f\");\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_init).call(this);\n }\n getCamera() {\n return __classPrivateFieldGet(this, _Controls_camera, \"f\");\n }\n getCameraControls() {\n return __classPrivateFieldGet(this, _Controls_controls, \"f\");\n }\n getFrustumSphere() {\n return __classPrivateFieldGet(this, _Controls_frustumSphere, \"f\");\n }\n getGesturesManager() {\n return __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\");\n }\n hasToRender() {\n if (!__classPrivateFieldGet(this, _Controls_isSleeping, \"f\"))\n return true;\n if (this.autoRotateCamera)\n return true;\n if (__classPrivateFieldGet(this, _Controls_isControllingContinuous, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _Controls_isControllingDiscrete, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_isAnimating).call(this))\n return true;\n return false;\n }\n isMoving() {\n if (!__classPrivateFieldGet(this, _Controls_isResting, \"f\"))\n return true;\n if (this.autoRotateCamera)\n return true;\n if (__classPrivateFieldGet(this, _Controls_isControllingContinuous, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _Controls_isControllingDiscrete, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_isAnimating).call(this))\n return true;\n return false;\n }\n // SETTERs\n setBoundingArea(boundingArea) {\n __classPrivateFieldSet(this, _Controls_boundingArea, boundingArea, \"f\");\n const width = __classPrivateFieldGet(this, _Controls_view, \"f\").getWidth();\n const height = __classPrivateFieldGet(this, _Controls_view, \"f\").getHeight();\n const offsetX = __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetX();\n const offsetY = __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetY();\n __classPrivateFieldGet(this, _Controls_camera, \"f\").aspect = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getAspect).call(this);\n __classPrivateFieldGet(this, _Controls_camera, \"f\").setViewOffset(width, height, offsetX, offsetY, width, height);\n __classPrivateFieldGet(this, _Controls_camera, \"f\").updateProjectionMatrix();\n }\n setBoundingFit(boundingFit) {\n __classPrivateFieldSet(this, _Controls_boundingFit, boundingFit, \"f\");\n }\n setCameraAnimationTime(animationTime) {\n __classPrivateFieldGet(this, _Controls_controls, \"f\").smoothTime = animationTime;\n }\n setCameraMovements(cameraMovements) {\n __classPrivateFieldSet(this, _Controls_cameraMovements, cameraMovements, \"f\");\n }\n setCameraRotationInitial(cameraRotation) {\n __classPrivateFieldSet(this, _Controls_cameraRotationInitial, cameraRotation, \"f\");\n }\n setCameraRotationReset(cameraRotation) {\n __classPrivateFieldSet(this, _Controls_cameraRotationReset, cameraRotation, \"f\");\n }\n setGestures(gestures) {\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").setGestures(gestures);\n }\n // ACTIONs\n cameraToInitialPosition() {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'onSphere',\n enableTransition: false,\n ...__classPrivateFieldGet(this, _Controls_cameraRotationInitial, \"f\"),\n });\n }\n clearAnimations() {\n __classPrivateFieldGet(this, _Controls_animations, \"f\").removeAll();\n }\n computeCameraNearAndFar() {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_setFrustumSphere).call(this);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_setCameraNearAndFar).call(this);\n }\n computeMaxDistance() {\n const distanceToFitModel = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getDistanceToFitModel).call(this);\n if (!distanceToFitModel)\n return;\n __classPrivateFieldGet(this, _Controls_controls, \"f\").maxDistance = distanceToFitModel * 1.5;\n }\n handleCameraMovement(target) {\n const value = target.value.toLowerCase();\n if (target.type === 'personalization') {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_handleCameraMovementOnPersonalization).call(this, {\n type: 'personalization',\n value,\n });\n }\n if (target.type === 'component' ||\n target.type === 'generic-animation') {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_handleCameraMovementOnComponent).call(this, {\n type: target.type,\n value,\n });\n }\n }\n focusOnPoint(intersection) {\n const direction = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getNormalByIntersection).call(this, intersection);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'focus',\n direction: direction,\n target: intersection.point,\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").cancel();\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").disablePan();\n FocusDispatcher.dispatch(true);\n }\n resetCamera() {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'onSphere',\n ...__classPrivateFieldGet(this, _Controls_cameraRotationReset, \"f\"),\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance = CAMERA_MIN_DISTANCE;\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").enablePan();\n FocusDispatcher.dispatch(false);\n }\n renderLoop(delta) {\n if (this.autoRotateCamera) {\n const cameraControls = this.getCameraControls();\n cameraControls.azimuthAngle +=\n toRadians(this.autoRotateSpeed) * delta;\n }\n __classPrivateFieldGet(this, _Controls_controls, \"f\").update(delta);\n __classPrivateFieldGet(this, _Controls_animations, \"f\").update();\n this.computeCameraNearAndFar();\n }\n onResize() {\n __classPrivateFieldGet(this, _Controls_camera, \"f\").aspect = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getAspect).call(this);\n __classPrivateFieldGet(this, _Controls_camera, \"f\").setViewOffset(__classPrivateFieldGet(this, _Controls_view, \"f\").getWidth(), __classPrivateFieldGet(this, _Controls_view, \"f\").getHeight(), __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetX(), __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetY(), __classPrivateFieldGet(this, _Controls_view, \"f\").getWidth(), __classPrivateFieldGet(this, _Controls_view, \"f\").getHeight());\n __classPrivateFieldGet(this, _Controls_camera, \"f\").updateProjectionMatrix();\n }\n dispose() {\n __classPrivateFieldGet(this, _Controls_actionsManager, \"f\").dispose();\n __classPrivateFieldGet(this, _Controls_controls, \"f\").dispose();\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").dispose();\n this.clearAnimations();\n // To null\n __classPrivateFieldSet(this, _Controls_camera, null, \"f\");\n __classPrivateFieldSet(this, _Controls_controls, null, \"f\");\n __classPrivateFieldSet(this, _Controls_renderer, null, \"f\");\n __classPrivateFieldSet(this, _Controls_actionsManager, null, \"f\");\n __classPrivateFieldSet(this, _Controls_gesturesManager, null, \"f\");\n __classPrivateFieldSet(this, _Controls_debug, null, \"f\");\n __classPrivateFieldSet(this, _Controls_isControllingContinuous, null, \"f\");\n __classPrivateFieldSet(this, _Controls_isControllingDiscrete, null, \"f\");\n __classPrivateFieldSet(this, _Controls_isResting, null, \"f\");\n __classPrivateFieldSet(this, _Controls_isSleeping, null, \"f\");\n __classPrivateFieldSet(this, _Controls_animations, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraMovements, null, \"f\");\n this.autoResetCamera = null;\n this.autoRotateCamera = null;\n this.autoRotateSpeed = null;\n __classPrivateFieldSet(this, _Controls_boundingArea, null, \"f\");\n __classPrivateFieldSet(this, _Controls_boundingFit, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraRotationInitial, null, \"f\");\n __classPrivateFieldSet(this, _Controls_cameraRotationReset, null, \"f\");\n __classPrivateFieldSet(this, _Controls_frustumSphere, null, \"f\");\n __classPrivateFieldSet(this, _Controls_scrollInteraction, null, \"f\");\n }\n}\n_Controls_renderer = new WeakMap(), _Controls_view = new WeakMap(), _Controls_debug = new WeakMap(), _Controls_mediator = new WeakMap(), _Controls_camera = new WeakMap(), _Controls_controls = new WeakMap(), _Controls_actionsManager = new WeakMap(), _Controls_gesturesManager = new WeakMap(), _Controls_cameraMovements = new WeakMap(), _Controls_isControllingContinuous = new WeakMap(), _Controls_isControllingDiscrete = new WeakMap(), _Controls_isResting = new WeakMap(), _Controls_isSleeping = new WeakMap(), _Controls_animations = new WeakMap(), _Controls_boundingArea = new WeakMap(), _Controls_boundingFit = new WeakMap(), _Controls_cameraRotationInitial = new WeakMap(), _Controls_cameraRotationReset = new WeakMap(), _Controls_frustumSphere = new WeakMap(), _Controls_scrollInteraction = new WeakMap(), _Controls_instances = new WeakSet(), _Controls_init = function _Controls_init() {\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_initCamera).call(this);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_initControls).call(this);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_initAnimations).call(this);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_initActionsManager).call(this);\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_initGesturesManager).call(this);\n}, _Controls_initActionsManager = function _Controls_initActionsManager() {\n __classPrivateFieldSet(this, _Controls_actionsManager, new ActionsManager(actions => {\n __classPrivateFieldGet(this, _Controls_view, \"f\").displayOrbitPoint(actions);\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('actions', actions);\n }), \"f\");\n}, _Controls_initAnimations = function _Controls_initAnimations() {\n __classPrivateFieldSet(this, _Controls_animations, new Group(), \"f\");\n}, _Controls_initCamera = function _Controls_initCamera() {\n const { near, far } = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getCameraNearAndFar).call(this);\n __classPrivateFieldSet(this, _Controls_camera, new PerspectiveCamera(CAMERA_FOV, __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getAspect).call(this), near, far), \"f\");\n const width = __classPrivateFieldGet(this, _Controls_view, \"f\").getWidth();\n const height = __classPrivateFieldGet(this, _Controls_view, \"f\").getHeight();\n __classPrivateFieldGet(this, _Controls_camera, \"f\").setViewOffset(width, height, __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetX(), __classPrivateFieldGet(this, _Controls_view, \"f\").getOffsetY(), width, height);\n}, _Controls_initControls = function _Controls_initControls() {\n __classPrivateFieldSet(this, _Controls_controls, new CameraControls(__classPrivateFieldGet(this, _Controls_camera, \"f\"), __classPrivateFieldGet(this, _Controls_renderer, \"f\").domElement), \"f\");\n __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance = CAMERA_MIN_DISTANCE;\n __classPrivateFieldGet(this, _Controls_controls, \"f\").smoothTime = CAMERA_SMOOTH_TIME;\n __classPrivateFieldGet(this, _Controls_controls, \"f\").azimuthRotateSpeed = CAMERA_AZIMUTH_ROTATE_SPEED;\n __classPrivateFieldGet(this, _Controls_controls, \"f\").draggingSmoothTime = CAMERA_DRAGGING_SMOOTH_TIME;\n const boundary = new Box3(CAMERA_PAN_MIN, CAMERA_PAN_MAX);\n __classPrivateFieldGet(this, _Controls_controls, \"f\").setBoundary(boundary);\n const debouncedResetIsControllingDiscrete = debounce(() => {\n __classPrivateFieldSet(this, _Controls_isControllingDiscrete, false, \"f\");\n __classPrivateFieldGet(this, _Controls_actionsManager, \"f\").resetAction();\n }, 100);\n const debouncedResetScrollStatus = debounce(() => {\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").setScrollStatus(true);\n }, GESTURES_SCROLL_INTERACTION_TIMEOUT);\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('controlstart', () => {\n __classPrivateFieldSet(this, _Controls_isControllingContinuous, true, \"f\");\n __classPrivateFieldGet(this, _Controls_mediator, \"f\").notify(EVENT_VIEW_SET_AUTO_ROTATE_CAMERA, false);\n if (!isTouchDevice())\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").setScrollStatus(false);\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('controlstart');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('control', () => {\n __classPrivateFieldGet(this, _Controls_actionsManager, \"f\").setAction(__classPrivateFieldGet(this, _Controls_controls, \"f\").currentAction);\n if (!isTouchDevice() && __classPrivateFieldGet(this, _Controls_scrollInteraction, \"f\")) {\n debouncedResetScrollStatus();\n }\n if (!__classPrivateFieldGet(this, _Controls_isControllingContinuous, \"f\")) {\n __classPrivateFieldSet(this, _Controls_isControllingDiscrete, true, \"f\");\n // dolly only\n __classPrivateFieldGet(this, _Controls_actionsManager, \"f\").setAction(CameraControls.ACTION.DOLLY);\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").setScrollStatus(false);\n debouncedResetIsControllingDiscrete();\n }\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('control');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('controlend', () => {\n __classPrivateFieldSet(this, _Controls_isControllingContinuous, false, \"f\");\n __classPrivateFieldGet(this, _Controls_actionsManager, \"f\").resetAction();\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('controlend');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('transitionstart', () => {\n __classPrivateFieldSet(this, _Controls_isResting, false, \"f\");\n __classPrivateFieldSet(this, _Controls_isSleeping, false, \"f\");\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('transitionstart');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('update', () => {\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\")) {\n __classPrivateFieldGet(this, _Controls_view, \"f\").showPanBox();\n console.log('update');\n }\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('wake', () => {\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('wake');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('rest', () => {\n __classPrivateFieldSet(this, _Controls_isResting, true, \"f\");\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('rest');\n });\n __classPrivateFieldGet(this, _Controls_controls, \"f\").addEventListener('sleep', () => {\n __classPrivateFieldSet(this, _Controls_isResting, true, \"f\");\n __classPrivateFieldSet(this, _Controls_isSleeping, true, \"f\");\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\"))\n console.log('sleep');\n });\n}, _Controls_initGesturesManager = function _Controls_initGesturesManager() {\n __classPrivateFieldSet(this, _Controls_gesturesManager, new GesturesManager({\n controls: __classPrivateFieldGet(this, _Controls_controls, \"f\"),\n }), \"f\");\n}, _Controls_getAspect = function _Controls_getAspect() {\n if (!__classPrivateFieldGet(this, _Controls_boundingArea, \"f\"))\n return 1;\n const { topLeft, bottomRight } = __classPrivateFieldGet(this, _Controls_boundingArea, \"f\");\n const aspect = ((bottomRight.x - topLeft.x) * __classPrivateFieldGet(this, _Controls_view, \"f\").getWidth()) /\n __classPrivateFieldGet(this, _Controls_view, \"f\").getHeight();\n return aspect;\n}, _Controls_getCameraNearAndFar = function _Controls_getCameraNearAndFar() {\n if (!__classPrivateFieldGet(this, _Controls_frustumSphere, \"f\")) {\n return { near: CAMERA_NEAR_INITIAL, far: CAMERA_FAR_INITIAL };\n }\n const distance = __classPrivateFieldGet(this, _Controls_controls, \"f\").distance;\n const { radius } = __classPrivateFieldGet(this, _Controls_frustumSphere, \"f\");\n const near = Math.max(distance - radius, 0.001);\n const far = distance + radius;\n return { near, far };\n}, _Controls_getDistanceToFitModel = function _Controls_getDistanceToFitModel() {\n if (!__classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere())\n return;\n const distanceToFitModelHorizontally = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getDistanceToFitModelHorizontally).call(this);\n const distanceToFitModelVertically = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getDistanceToFitModelVertically).call(this);\n switch (__classPrivateFieldGet(this, _Controls_boundingFit, \"f\")) {\n case 'auto':\n return Math.max(distanceToFitModelHorizontally, distanceToFitModelVertically);\n case 'horizontal':\n return distanceToFitModelHorizontally;\n case 'vertical':\n return distanceToFitModelVertically;\n }\n}, _Controls_getDistanceToFitModelHorizontally = function _Controls_getDistanceToFitModelHorizontally() {\n // cot(θ) = adjacent / opposite,\n // thus adjacent = opposite * cot(θ)\n const { radius } = __classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere();\n const theta = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getFovX).call(this) / 2;\n const opposite = radius / Math.sin(Math.PI / 2 - theta);\n const adjacent = opposite * cotan(theta);\n return adjacent;\n}, _Controls_getDistanceToFitModelVertically = function _Controls_getDistanceToFitModelVertically() {\n if (!__classPrivateFieldGet(this, _Controls_boundingArea, \"f\"))\n return 0;\n // cot(θ) = adjacent / opposite,\n // thus adjacent = opposite * cot(θ)\n const { topLeft, bottomRight } = __classPrivateFieldGet(this, _Controls_boundingArea, \"f\");\n const { radius } = __classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere();\n const theta = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getFovY).call(this) / 2;\n const adjustment = 1 / (bottomRight.y - topLeft.y);\n const opposite = (radius * adjustment) / Math.sin(Math.PI / 2 - theta);\n const adjacent = opposite * cotan(theta);\n return adjacent;\n}, _Controls_getFovX = function _Controls_getFovX() {\n const aspect = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getAspect).call(this);\n const fovY = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getFovY).call(this);\n const semiFovY = fovY / 2;\n // tan(β) = AR * tan(α),\n // where AR is the aspect ratio,\n // thus atan(tan(β)) = atan(AR * tan(α)),\n // thus β = atan(AR * tan(α))\n const fovX = 2 * Math.atan(aspect * Math.tan(semiFovY));\n return fovX;\n}, _Controls_getFovY = function _Controls_getFovY() {\n const fovY = toRadians(CAMERA_FOV);\n return fovY;\n}, _Controls_getNormalByIntersection = function _Controls_getNormalByIntersection(intersection) {\n const normal = intersection.face?.normal;\n if (!normal)\n return;\n const { object } = intersection;\n const { matrixWorld } = object;\n const direction = new Vector3().copy(normal);\n const normalMatrix = new Matrix3().getNormalMatrix(matrixWorld);\n direction.applyMatrix3(normalMatrix).normalize();\n return direction;\n}, _Controls_isAnimating = function _Controls_isAnimating() {\n return __classPrivateFieldGet(this, _Controls_animations, \"f\").getAll().length > 0;\n}, _Controls_setCameraNearAndFar = function _Controls_setCameraNearAndFar() {\n const { near, far } = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getCameraNearAndFar).call(this);\n __classPrivateFieldGet(this, _Controls_camera, \"f\").near = near;\n __classPrivateFieldGet(this, _Controls_camera, \"f\").far = far;\n __classPrivateFieldGet(this, _Controls_camera, \"f\").updateProjectionMatrix();\n}, _Controls_setFrustumSphere = function _Controls_setFrustumSphere() {\n if (!__classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere())\n return;\n const center = __classPrivateFieldGet(this, _Controls_controls, \"f\").getTarget(new Vector3(), false);\n const { center: modelSphereCenter, radius: modelSphereRadius } = __classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere();\n const animationsManager = __classPrivateFieldGet(this, _Controls_view, \"f\").getAnimationsManager();\n const explosionOffset = animationsManager.getExplosionMaxOffset();\n const distance = center.distanceTo(modelSphereCenter);\n let radius = distance + modelSphereRadius;\n if (!animationsManager.isDefault())\n radius += explosionOffset;\n __classPrivateFieldSet(this, _Controls_frustumSphere, new Sphere(center, radius), \"f\");\n if (__classPrivateFieldGet(this, _Controls_debug, \"f\")) {\n __classPrivateFieldGet(this, _Controls_view, \"f\").showFrustumSphere();\n }\n}, _Controls_computeCameraAnimation = function _Controls_computeCameraAnimation(animation) {\n const { name, duration = 1000 } = animation;\n switch (name) {\n // 2025-01-15 17:56:39 - Tommaso Iacolettig\n // Non è più utilizzata, da rimuovere in una prossima release?\n case 'orbiting':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeAnimationOrbiting).call(this, duration);\n break;\n // 2025-01-15 17:56:39 - Tommaso Iacolettig\n // Non è più utilizzata, da rimuovere in una prossima release?\n case 'rotation':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeAnimationRotation).call(this, duration);\n break;\n case 'pulse':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeAnimationPulse).call(this, duration);\n break;\n }\n}, _Controls_computeAnimationOrbiting = function _Controls_computeAnimationOrbiting(duration) {\n const cameraControls = this.getCameraControls();\n const radians = Math.PI / 2;\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'onSphere',\n ...__classPrivateFieldGet(this, _Controls_cameraRotationReset, \"f\"),\n });\n const self = this;\n const animation = new Tween({ delta: 0 })\n .to({ delta: 1 }, duration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(function (value) {\n const angle = radians + value.delta * 2 * Math.PI;\n const azimuthAngle = 18 - Math.cos(angle) * 40;\n const polarAngle = 70 + Math.sin(angle) * 20;\n const azimuthAngleRad = azimuthAngle * (Math.PI / 180);\n const polarAngleRad = polarAngle * (Math.PI / 180);\n cameraControls.rotateTo(azimuthAngleRad, polarAngleRad, true);\n })\n .onComplete(function () {\n __classPrivateFieldGet(self, _Controls_animations, \"f\").remove(animation);\n })\n .start();\n __classPrivateFieldGet(this, _Controls_animations, \"f\").add(animation);\n}, _Controls_computeAnimationPulse = function _Controls_computeAnimationPulse(duration) {\n const cameraControls = this.getCameraControls();\n const distanceToFitModel = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getDistanceToFitModel).call(this);\n let distance = cameraControls.distance;\n let zoomInDistance = 0;\n let deltaDollyDistance = 0;\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'onSphere',\n ...__classPrivateFieldGet(this, _Controls_cameraRotationReset, \"f\"),\n });\n const self = this;\n const zoom = new Tween({ delta: 0 })\n .to({ delta: 1 }, duration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(function (value) {\n const newDistance = zoomInDistance - deltaDollyDistance * value.delta;\n cameraControls.dollyTo(newDistance, true);\n })\n .onComplete(function () {\n __classPrivateFieldGet(self, _Controls_animations, \"f\").remove(zoom);\n });\n const reset = new Tween({ distance })\n .to({ distance: distanceToFitModel }, duration / 2)\n .easing(Easing.Quadratic.Out)\n .onUpdate(function (value) {\n cameraControls.dollyTo(value.distance, true);\n })\n .onComplete(function (value) {\n distance = value.distance;\n zoomInDistance = Math.min(distance - 0.3, cameraControls.maxDistance);\n deltaDollyDistance = zoomInDistance - distance;\n __classPrivateFieldGet(self, _Controls_animations, \"f\").remove(reset);\n zoom.start();\n })\n .start();\n __classPrivateFieldGet(this, _Controls_animations, \"f\").add(reset, zoom);\n}, _Controls_computeAnimationRotation = function _Controls_computeAnimationRotation(duration) {\n const cameraControls = this.getCameraControls();\n const radians = -2 * Math.PI;\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'onSphere',\n ...__classPrivateFieldGet(this, _Controls_cameraRotationReset, \"f\"),\n });\n const self = this;\n const animation = new Tween({ radians: 0 })\n .to({ radians: radians }, duration)\n .easing(Easing.Linear.None)\n .onUpdate(function (value) {\n cameraControls.rotateTo(value.radians, Math.PI / 2, true);\n })\n .onComplete(function () {\n __classPrivateFieldGet(self, _Controls_animations, \"f\").remove(animation);\n })\n .start();\n __classPrivateFieldGet(this, _Controls_animations, \"f\").add(animation);\n}, _Controls_computeLookAt = function _Controls_computeLookAt(cameraMovement) {\n let lookAt;\n if (cameraMovement.type === 'focus')\n lookAt = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeLookAtFocus).call(this, cameraMovement);\n if (cameraMovement.type === 'mesh')\n lookAt = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeLookAtMesh).call(this, cameraMovement);\n if (cameraMovement.type === 'onSphere')\n lookAt = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeLookAtOnSphere).call(this, cameraMovement);\n if (lookAt)\n return lookAt;\n return {\n position: new Vector3(),\n target: new Vector3(),\n };\n}, _Controls_computeLookAtFocus = function _Controls_computeLookAtFocus(focus) {\n const { direction, distance, target } = focus;\n const cameraOffsetDirection = direction ??\n __classPrivateFieldGet(this, _Controls_camera, \"f\").getWorldDirection(new Vector3()).multiplyScalar(-1);\n const cameraDistance = distance ?? __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance;\n const cameraPosition = new Vector3().addVectors(target, cameraOffsetDirection.multiplyScalar(cameraDistance));\n return {\n position: cameraPosition,\n target,\n };\n}, _Controls_computeLookAtMesh = function _Controls_computeLookAtMesh(movement) {\n const { distance, target } = movement;\n const model = __classPrivateFieldGet(this, _Controls_view, \"f\").getModel();\n const mesh = model.gltf.getObjectByName(target);\n if (!mesh) {\n console.warn('Mesh not found', target);\n return;\n }\n if (!isMesh(mesh)) {\n console.warn('Mesh not found', target);\n return;\n }\n const box = new Box3().setFromObject(mesh);\n const center = box.getCenter(new Vector3());\n const { position: targetPosition, normal: targetNormal } = getClosestVertex(mesh, center);\n const cameraOffsetDirection = targetNormal ??\n __classPrivateFieldGet(this, _Controls_camera, \"f\").getWorldDirection(new Vector3()).multiplyScalar(-1);\n const cameraDistance = distance ?? __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance;\n const cameraPosition = new Vector3().addVectors(targetPosition, cameraOffsetDirection.multiplyScalar(cameraDistance));\n __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance = cameraDistance;\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").disablePan();\n FocusDispatcher.dispatch(true);\n return {\n position: cameraPosition,\n target: targetPosition,\n };\n}, _Controls_computeLookAtOnSphere = function _Controls_computeLookAtOnSphere(onSphere) {\n const distanceToFitModel = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_getDistanceToFitModel).call(this);\n if (!distanceToFitModel)\n return;\n const { phi, theta, fillFactor } = onSphere;\n const radius = fillFactor\n ? distanceToFitModel / fillFactor\n : distanceToFitModel;\n const spherical = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeSpherical).call(this, radius, { phi, theta });\n const { center } = __classPrivateFieldGet(this, _Controls_view, \"f\").getModelSphere();\n const offset = new Vector3().setFromSpherical(spherical);\n const position = new Vector3().addVectors(center, offset);\n return {\n position,\n target: center,\n };\n}, _Controls_computeSpherical = function _Controls_computeSpherical(radius, cameraRotation) {\n const phi = cameraRotation.phi ?? 0;\n const theta = cameraRotation.theta ?? 0;\n const phiAdjusted = phi + 90;\n const phiInRadians = toRadians(phiAdjusted);\n const thetaInRadians = toRadians(theta);\n const spherical = new Spherical(radius, phiInRadians, thetaInRadians).makeSafe();\n return spherical;\n}, _Controls_handleCameraMovementOnPersonalization = function _Controls_handleCameraMovementOnPersonalization(target) {\n const model = __classPrivateFieldGet(this, _Controls_view, \"f\").getModel();\n const personalizations = model.gltf.userData.rtrViewer.personalizations;\n if (!personalizations) {\n console.warn('Personalizations not available');\n return;\n }\n const personalizationData = personalizations.find((personalization) => personalization.target.toLowerCase() === target.value);\n if (!personalizationData) {\n console.warn('Personalization not found for', target.value);\n return;\n }\n const mesh = personalizationData.meshName;\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, {\n type: 'mesh',\n target: mesh,\n distance: CAMERA_PERSONALIZATION_DISTANCE,\n });\n}, _Controls_handleCameraMovementOnComponent = function _Controls_handleCameraMovementOnComponent(target) {\n const cameraMovement = __classPrivateFieldGet(this, _Controls_cameraMovements, \"f\").find(data => isEqual(data.target, target));\n if (!cameraMovement) {\n console.warn('Camera movement not found', target);\n return;\n }\n const { movement } = cameraMovement;\n switch (movement.type) {\n case 'animation':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeCameraAnimation).call(this, movement);\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").enablePan();\n FocusDispatcher.dispatch(false);\n break;\n case 'focus':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, movement);\n break;\n case 'onSphere':\n __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_moveCamera).call(this, movement);\n __classPrivateFieldGet(this, _Controls_gesturesManager, \"f\").enablePan();\n FocusDispatcher.dispatch(false);\n break;\n }\n}, _Controls_moveCamera = function _Controls_moveCamera(cameraMovement) {\n __classPrivateFieldGet(this, _Controls_controls, \"f\").minDistance = CAMERA_MIN_DISTANCE;\n const { enableTransition = true } = cameraMovement;\n const { position, target } = __classPrivateFieldGet(this, _Controls_instances, \"m\", _Controls_computeLookAt).call(this, cameraMovement);\n __classPrivateFieldGet(this, _Controls_controls, \"f\").setLookAt(position.x, position.y, position.z, target.x, target.y, target.z, enableTransition);\n};\nexport default Controls;\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_RENDERED } from '@/constants';\nexport default class RenderedDispatcher {\n static dispatch() {\n EventDispatcher.dispatch({\n event: EVENT_CALLBACKS_RENDERED,\n target: window,\n });\n }\n}\n","import EventDispatcher from './EventDispatcher';\nimport { EVENT_CALLBACKS_SETTINGS_UPDATED } from '@/constants';\nexport default class SettingsUpdatedDispatcher {\n static dispatch(settings) {\n EventDispatcher.dispatch({\n detail: { settings },\n event: EVENT_CALLBACKS_SETTINGS_UPDATED,\n target: window,\n });\n }\n}\n","export const STATE_DEFAULT = 'default';\nexport const STATE_EXPLODED = 'exploded';\nexport const STATE_EXPLODING = 'exploding';\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AnimationsManager_instances, _AnimationsManager_groups, _AnimationsManager_explosionEntries, _AnimationsManager_states, _AnimationsManager_animations, _AnimationsManager_getObject3d, _AnimationsManager_getGroup, _AnimationsManager_getState, _AnimationsManager_setStatesValue, _AnimationsManager_setStateValue, _AnimationsManager_computeStates, _AnimationsManager_explodeOut, _AnimationsManager_explodeIn, _AnimationsManager_updateExplosionEntry, _AnimationsManager_updateExplosionTarget, _AnimationsManager_updateExplosionTargetOut, _AnimationsManager_updateExplosionTargetIn, _AnimationsManager_updateTransform, _AnimationsManager_updatePosition;\nimport { Group, Tween, Easing } from '@tweenjs/tween.js';\nimport { STATE_DEFAULT, STATE_EXPLODED, STATE_EXPLODING, } from '@/constants/states';\n// type Callbacks = {\n// onExplosionFinished: Function;\n// };\nclass AnimationsManager {\n // #callbacks: Callbacks;\n constructor() {\n _AnimationsManager_instances.add(this);\n _AnimationsManager_groups.set(this, void 0);\n _AnimationsManager_explosionEntries.set(this, void 0);\n _AnimationsManager_states.set(this, void 0);\n _AnimationsManager_animations.set(this, void 0);\n __classPrivateFieldSet(this, _AnimationsManager_groups, null, \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_explosionEntries, null, \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_states, [], \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_animations, new Group(), \"f\");\n // this.#callbacks = callbacks;\n }\n // GETTERs\n isDefault() {\n return __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").every(state => state.value === STATE_DEFAULT);\n }\n isExploded() {\n return __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").every(state => state.value === STATE_EXPLODED);\n }\n isExploding() {\n return __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").some(state => state.value === STATE_EXPLODING);\n }\n getExplosionMaxOffset() {\n const maxOffset = __classPrivateFieldGet(this, _AnimationsManager_explosionEntries, \"f\").reduce((acc, entry) => {\n const { targets } = entry;\n const offset = Math.max(...targets.map(target => Math.abs(target.offset)));\n acc = Math.max(acc, offset);\n return acc;\n }, 0);\n return maxOffset;\n }\n // SETTERs\n setExplosion(explosionEntries) {\n __classPrivateFieldSet(this, _AnimationsManager_explosionEntries, explosionEntries, \"f\");\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_computeStates).call(this);\n }\n setGlasses(glasses) {\n const { groups } = glasses;\n __classPrivateFieldSet(this, _AnimationsManager_groups, groups, \"f\");\n if (!__classPrivateFieldGet(this, _AnimationsManager_explosionEntries, \"f\"))\n return;\n this.clear();\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_computeStates).call(this);\n }\n // ACTIONs\n update() {\n __classPrivateFieldGet(this, _AnimationsManager_animations, \"f\")?.update();\n }\n toggleExplosion() {\n if (this.isExploding())\n return;\n if (this.isDefault()) {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_explodeOut).call(this);\n }\n else {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_explodeIn).call(this);\n }\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_setStatesValue).call(this, STATE_EXPLODING);\n }\n clear() {\n __classPrivateFieldGet(this, _AnimationsManager_animations, \"f\").removeAll();\n }\n dispose() {\n this.clear();\n // To null\n __classPrivateFieldSet(this, _AnimationsManager_animations, null, \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_groups, null, \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_explosionEntries, null, \"f\");\n __classPrivateFieldSet(this, _AnimationsManager_states, null, \"f\");\n }\n}\n_AnimationsManager_groups = new WeakMap(), _AnimationsManager_explosionEntries = new WeakMap(), _AnimationsManager_states = new WeakMap(), _AnimationsManager_animations = new WeakMap(), _AnimationsManager_instances = new WeakSet(), _AnimationsManager_getObject3d = function _AnimationsManager_getObject3d({ entity, name }) {\n if (entity === 'group')\n return __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_getGroup).call(this, name);\n return undefined;\n}, _AnimationsManager_getGroup = function _AnimationsManager_getGroup(name) {\n if (!(name in __classPrivateFieldGet(this, _AnimationsManager_groups, \"f\")))\n return;\n const key = name;\n return __classPrivateFieldGet(this, _AnimationsManager_groups, \"f\")[key];\n}, _AnimationsManager_getState = function _AnimationsManager_getState(id) {\n return __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").find(state => state.id === id);\n}, _AnimationsManager_setStatesValue = function _AnimationsManager_setStatesValue(value) {\n __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").forEach(state => __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_setStateValue).call(this, { id: state.id, value }));\n}, _AnimationsManager_setStateValue = function _AnimationsManager_setStateValue({ id, value }) {\n const state = __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_getState).call(this, id);\n if (!state)\n return;\n state.value = value;\n}, _AnimationsManager_computeStates = function _AnimationsManager_computeStates() {\n __classPrivateFieldSet(this, _AnimationsManager_states, [], \"f\");\n __classPrivateFieldGet(this, _AnimationsManager_explosionEntries, \"f\").forEach(explosionEntry => {\n const { entity, name, targets } = explosionEntry;\n const object3d = __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_getObject3d).call(this, { entity, name });\n if (!object3d)\n return;\n targets.forEach(target => {\n __classPrivateFieldGet(this, _AnimationsManager_states, \"f\").push({\n id: target.id,\n value: STATE_DEFAULT,\n });\n });\n });\n}, _AnimationsManager_explodeOut = function _AnimationsManager_explodeOut() {\n __classPrivateFieldGet(this, _AnimationsManager_explosionEntries, \"f\").forEach(explosionEntry => __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updateExplosionEntry).call(this, { explosionEntry, direction: 'out' }));\n}, _AnimationsManager_explodeIn = function _AnimationsManager_explodeIn() {\n __classPrivateFieldGet(this, _AnimationsManager_explosionEntries, \"f\").forEach(explosionEntry => __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updateExplosionEntry).call(this, { explosionEntry, direction: 'in' }));\n}, _AnimationsManager_updateExplosionEntry = function _AnimationsManager_updateExplosionEntry({ explosionEntry, direction, }) {\n const { entity, name, targets } = explosionEntry;\n const object3d = __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_getObject3d).call(this, { entity, name });\n if (!object3d)\n return;\n targets.forEach(target => __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updateExplosionTarget).call(this, { object3d, target, direction }));\n}, _AnimationsManager_updateExplosionTarget = function _AnimationsManager_updateExplosionTarget({ object3d, target, direction, }) {\n if (direction === 'out') {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updateExplosionTargetOut).call(this, {\n object3d,\n target,\n });\n }\n if (direction === 'in') {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updateExplosionTargetIn).call(this, {\n object3d,\n target,\n });\n }\n}, _AnimationsManager_updateExplosionTargetOut = function _AnimationsManager_updateExplosionTargetOut({ object3d, target, }) {\n const { id, transform, axis, offset, duration } = target;\n const self = this;\n const animation = new Tween({ offset: 0 })\n .to({ offset: offset }, duration)\n .easing(Easing.Quadratic.InOut)\n .onUpdate(function (value) {\n __classPrivateFieldGet(self, _AnimationsManager_instances, \"m\", _AnimationsManager_updateTransform).call(self, {\n object3d,\n transform,\n axis,\n offset: value.offset,\n });\n })\n .onComplete(() => {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_setStateValue).call(this, { id, value: STATE_EXPLODED });\n })\n .start();\n __classPrivateFieldGet(this, _AnimationsManager_animations, \"f\").add(animation);\n}, _AnimationsManager_updateExplosionTargetIn = function _AnimationsManager_updateExplosionTargetIn({ object3d, target, }) {\n const { id, transform, axis, offset, duration } = target;\n const self = this;\n const animation = new Tween({ offset })\n .to({ offset: 0 }, duration)\n .easing(Easing.Quadratic.InOut)\n .onUpdate(function (value) {\n __classPrivateFieldGet(self, _AnimationsManager_instances, \"m\", _AnimationsManager_updateTransform).call(self, {\n object3d,\n transform,\n axis,\n offset: value.offset,\n });\n })\n .onComplete(() => {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_setStateValue).call(this, { id, value: STATE_DEFAULT });\n })\n .start();\n __classPrivateFieldGet(this, _AnimationsManager_animations, \"f\").add(animation);\n}, _AnimationsManager_updateTransform = function _AnimationsManager_updateTransform({ object3d, transform, axis, offset, }) {\n if (transform === 'position') {\n __classPrivateFieldGet(this, _AnimationsManager_instances, \"m\", _AnimationsManager_updatePosition).call(this, { object3d, axis, offset });\n }\n}, _AnimationsManager_updatePosition = function _AnimationsManager_updatePosition({ object3d, axis, offset, }) {\n const position = object3d.position;\n const initialPosition = object3d.userData.rtrViewer.initialPosition;\n position[axis] = initialPosition[axis] + offset;\n};\nexport default AnimationsManager;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _MatchMediaObserver_instances, _MatchMediaObserver_callback, _MatchMediaObserver_media, _MatchMediaObserver_boundOnChange, _MatchMediaObserver_onChange;\nimport { isNull } from 'lodash-es';\nclass MatchMediaObserver {\n constructor(callback) {\n _MatchMediaObserver_instances.add(this);\n _MatchMediaObserver_callback.set(this, void 0);\n _MatchMediaObserver_media.set(this, void 0);\n _MatchMediaObserver_boundOnChange.set(this, void 0);\n __classPrivateFieldSet(this, _MatchMediaObserver_callback, callback, \"f\");\n __classPrivateFieldSet(this, _MatchMediaObserver_media, null, \"f\");\n __classPrivateFieldSet(this, _MatchMediaObserver_boundOnChange, __classPrivateFieldGet(this, _MatchMediaObserver_instances, \"m\", _MatchMediaObserver_onChange).bind(this), \"f\");\n }\n // METHODs\n observe(mediaQuery) {\n if (!isNull(__classPrivateFieldGet(this, _MatchMediaObserver_media, \"f\"))) {\n __classPrivateFieldGet(this, _MatchMediaObserver_media, \"f\").removeEventListener('change', __classPrivateFieldGet(this, _MatchMediaObserver_boundOnChange, \"f\"));\n }\n __classPrivateFieldSet(this, _MatchMediaObserver_media, matchMedia(mediaQuery), \"f\");\n __classPrivateFieldGet(this, _MatchMediaObserver_media, \"f\").addEventListener('change', __classPrivateFieldGet(this, _MatchMediaObserver_boundOnChange, \"f\"));\n }\n disconnect() {\n // Remove event listeners\n __classPrivateFieldGet(this, _MatchMediaObserver_media, \"f\").removeEventListener('change', __classPrivateFieldGet(this, _MatchMediaObserver_boundOnChange, \"f\"));\n // To null\n __classPrivateFieldSet(this, _MatchMediaObserver_callback, null, \"f\");\n __classPrivateFieldSet(this, _MatchMediaObserver_media, null, \"f\");\n __classPrivateFieldSet(this, _MatchMediaObserver_boundOnChange, null, \"f\");\n }\n}\n_MatchMediaObserver_callback = new WeakMap(), _MatchMediaObserver_media = new WeakMap(), _MatchMediaObserver_boundOnChange = new WeakMap(), _MatchMediaObserver_instances = new WeakSet(), _MatchMediaObserver_onChange = function _MatchMediaObserver_onChange() {\n __classPrivateFieldGet(this, _MatchMediaObserver_callback, \"f\").call(this);\n};\nexport default MatchMediaObserver;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PixelRatioManager_instances, _PixelRatioManager_callback, _PixelRatioManager_hasDynamicDprOnZoom, _PixelRatioManager_observer, _PixelRatioManager_uaParser, _PixelRatioManager_init, _PixelRatioManager_initUaParser, _PixelRatioManager_initHasDynamicDprOnZoom, _PixelRatioManager_initObserver, _PixelRatioManager_initMatchMediaObserver, _PixelRatioManager_initResizeObserver, _PixelRatioManager_getWidthRatio, _PixelRatioManager_getHeightRatio, _PixelRatioManager_getZoomLevel, _PixelRatioManager_getPixelRatio;\nimport { UAParser } from 'ua-parser-js';\nimport MatchMediaObserver from '@/observers/MatchMediaObserver';\nclass PixelRatioManager {\n constructor(callback) {\n _PixelRatioManager_instances.add(this);\n _PixelRatioManager_callback.set(this, void 0);\n _PixelRatioManager_hasDynamicDprOnZoom.set(this, void 0);\n _PixelRatioManager_observer.set(this, void 0);\n _PixelRatioManager_uaParser.set(this, void 0);\n __classPrivateFieldSet(this, _PixelRatioManager_callback, callback, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_hasDynamicDprOnZoom, null, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_observer, null, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_uaParser, null, \"f\");\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_init).call(this);\n __classPrivateFieldGet(this, _PixelRatioManager_callback, \"f\").call(this, __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getPixelRatio).call(this));\n }\n // ACTIONs\n dispose() {\n // Disconnect observers\n __classPrivateFieldGet(this, _PixelRatioManager_observer, \"f\").disconnect();\n // To null\n __classPrivateFieldSet(this, _PixelRatioManager_callback, null, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_hasDynamicDprOnZoom, null, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_observer, null, \"f\");\n __classPrivateFieldSet(this, _PixelRatioManager_uaParser, null, \"f\");\n }\n}\n_PixelRatioManager_callback = new WeakMap(), _PixelRatioManager_hasDynamicDprOnZoom = new WeakMap(), _PixelRatioManager_observer = new WeakMap(), _PixelRatioManager_uaParser = new WeakMap(), _PixelRatioManager_instances = new WeakSet(), _PixelRatioManager_init = function _PixelRatioManager_init() {\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_initUaParser).call(this);\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_initHasDynamicDprOnZoom).call(this);\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_initObserver).call(this);\n}, _PixelRatioManager_initUaParser = function _PixelRatioManager_initUaParser() {\n __classPrivateFieldSet(this, _PixelRatioManager_uaParser, new UAParser(), \"f\");\n}, _PixelRatioManager_initHasDynamicDprOnZoom = function _PixelRatioManager_initHasDynamicDprOnZoom() {\n const { name } = __classPrivateFieldGet(this, _PixelRatioManager_uaParser, \"f\").getBrowser();\n const isSafari = name?.includes('Safari');\n __classPrivateFieldSet(this, _PixelRatioManager_hasDynamicDprOnZoom, !isSafari, \"f\");\n}, _PixelRatioManager_initObserver = function _PixelRatioManager_initObserver() {\n if (__classPrivateFieldGet(this, _PixelRatioManager_hasDynamicDprOnZoom, \"f\")) {\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_initMatchMediaObserver).call(this);\n return;\n }\n __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_initResizeObserver).call(this);\n}, _PixelRatioManager_initMatchMediaObserver = function _PixelRatioManager_initMatchMediaObserver() {\n __classPrivateFieldSet(this, _PixelRatioManager_observer, new MatchMediaObserver(() => {\n __classPrivateFieldGet(this, _PixelRatioManager_callback, \"f\").call(this, __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getPixelRatio).call(this));\n __classPrivateFieldGet(this, _PixelRatioManager_observer, \"f\").observe(`(resolution: ${window.devicePixelRatio}dppx)`);\n }), \"f\");\n __classPrivateFieldGet(this, _PixelRatioManager_observer, \"f\").observe(`(resolution: ${window.devicePixelRatio}dppx)`);\n}, _PixelRatioManager_initResizeObserver = function _PixelRatioManager_initResizeObserver() {\n __classPrivateFieldSet(this, _PixelRatioManager_observer, new ResizeObserver(() => {\n __classPrivateFieldGet(this, _PixelRatioManager_callback, \"f\").call(this, __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getPixelRatio).call(this));\n }), \"f\");\n __classPrivateFieldGet(this, _PixelRatioManager_observer, \"f\").observe(document.body);\n}, _PixelRatioManager_getWidthRatio = function _PixelRatioManager_getWidthRatio() {\n const outerWidth = window.outerWidth;\n const innerWidth = window.innerWidth;\n const ratio = outerWidth / innerWidth;\n return ratio;\n}, _PixelRatioManager_getHeightRatio = function _PixelRatioManager_getHeightRatio() {\n const outerHeight = window.outerHeight;\n const innerHeight = window.innerHeight;\n const ratio = outerHeight / innerHeight;\n return ratio;\n}, _PixelRatioManager_getZoomLevel = function _PixelRatioManager_getZoomLevel() {\n const widthRatio = __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getWidthRatio).call(this);\n const heightRatio = __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getHeightRatio).call(this);\n const zoomLevel = Math.min(widthRatio, heightRatio);\n return zoomLevel;\n}, _PixelRatioManager_getPixelRatio = function _PixelRatioManager_getPixelRatio() {\n const dpr = window.devicePixelRatio;\n if (__classPrivateFieldGet(this, _PixelRatioManager_hasDynamicDprOnZoom, \"f\"))\n return dpr;\n const zoomLevel = __classPrivateFieldGet(this, _PixelRatioManager_instances, \"m\", _PixelRatioManager_getZoomLevel).call(this);\n return dpr * zoomLevel;\n};\nexport default PixelRatioManager;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TicksManager_tick, _TicksManager_callbacks;\nimport { size } from 'lodash-es';\nclass TicksManager {\n constructor() {\n _TicksManager_tick.set(this, void 0);\n _TicksManager_callbacks.set(this, void 0);\n __classPrivateFieldSet(this, _TicksManager_tick, 0, \"f\");\n __classPrivateFieldSet(this, _TicksManager_callbacks, {}, \"f\");\n }\n // GETTERs\n hasCallbacks() {\n return size(__classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")) > 0;\n }\n // SETTERs\n next() {\n __classPrivateFieldSet(this, _TicksManager_tick, __classPrivateFieldGet(this, _TicksManager_tick, \"f\") + 1, \"f\");\n }\n // ACTIONs\n onNext(callback) {\n const nextTick = __classPrivateFieldGet(this, _TicksManager_tick, \"f\") + 1;\n if (!(nextTick in __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\"))) {\n __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")[nextTick] = [];\n }\n __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")[nextTick].push(callback);\n }\n manageCallbacks() {\n if (!(__classPrivateFieldGet(this, _TicksManager_tick, \"f\") in __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")))\n return;\n const callbacks = __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")[__classPrivateFieldGet(this, _TicksManager_tick, \"f\")];\n callbacks.forEach(callback => {\n callback();\n });\n delete __classPrivateFieldGet(this, _TicksManager_callbacks, \"f\")[__classPrivateFieldGet(this, _TicksManager_tick, \"f\")];\n }\n dispose() {\n // To null\n __classPrivateFieldSet(this, _TicksManager_tick, null, \"f\");\n __classPrivateFieldSet(this, _TicksManager_callbacks, null, \"f\");\n }\n}\n_TicksManager_tick = new WeakMap(), _TicksManager_callbacks = new WeakMap();\nexport default TicksManager;\n","import { getVertices as getVerticesFromMesh, isMesh } from './mesh';\nexport const getMaterials = (object) => {\n const materials = new Set();\n object.traverse(child => {\n if (!isMesh(child))\n return;\n if (Array.isArray(child.material))\n return;\n materials.add(child.material);\n });\n return materials;\n};\nexport const getVertices = (object) => {\n const vertices = [];\n object.traverse(child => {\n if (!isMesh(child))\n return;\n const meshVertices = getVerticesFromMesh(child);\n vertices.push(...meshVertices);\n });\n return vertices;\n};\n","export const disposeMaterials = (disposables = []) => {\n const textureMaps = [\n 'map',\n 'aoMap',\n 'alphaMap',\n 'bumpMap',\n 'displacementMap',\n 'envMap',\n 'lightMap',\n 'emissiveMap',\n 'normalMap',\n 'metalnessMap',\n 'roughnessMap',\n 'anisotropyMap',\n 'clearcoatMap',\n 'clearcoatNormalMap',\n 'clearcoatRoughnessMap',\n 'iridescenceMap',\n 'iridescenceThicknessMap',\n 'sheenColorMap',\n 'sheenRoughnessMap',\n 'specularMap',\n 'specularColorMap',\n 'specularIntensityMap',\n 'thicknessMap',\n 'transmissionMap',\n ];\n const disposeMaterial = (material) => {\n if (material.isMaterial) {\n if (Array.isArray(material)) {\n material.forEach((mtl) => {\n if (mtl.uniforms) {\n Object.keys(mtl.uniforms).forEach(key => {\n if (mtl.uniforms[key].value) {\n let kv = mtl.uniforms[key].value;\n if (Array.isArray(kv) && kv.length > 0) {\n kv.forEach(val => {\n if (val.type && val.type === 1009)\n val.dispose();\n });\n }\n else {\n if (kv.type && kv.type === 1009)\n kv.dispose();\n }\n }\n });\n }\n else {\n for (const prop in mtl) {\n textureMaps.forEach(tex_map => {\n if (prop === tex_map) {\n if (mtl[prop])\n mtl[prop].dispose();\n }\n });\n }\n }\n mtl.dispose();\n });\n }\n else {\n if (material.uniforms) {\n Object.keys(material.uniforms).forEach(key => {\n if (material.uniforms[key].value) {\n let kv = material.uniforms[key].value;\n if (Array.isArray(kv) && kv.length > 0) {\n kv.forEach(val => {\n if (val.type && val.type === 1009)\n val.dispose();\n });\n }\n else {\n if (kv.type && kv.type === 1009)\n kv.dispose();\n }\n }\n });\n }\n else {\n for (const prop in material) {\n textureMaps.forEach(tex_map => {\n if (prop === tex_map) {\n if (material[prop]) {\n // console.log('dispose', prop, material[prop]);\n // Dispose ImageBitmap\n // https://github.com/mrdoob/three.js/issues/23953#issuecomment-1110698194\n // if (material[prop] instanceof Texture ) {\n // if (material[prop].source.data instanceof ImageBitmap) {\n // material[prop].source.data?.close?.(); // for ImageBitmaps\n // }\n // }\n material[prop].dispose();\n }\n }\n });\n }\n }\n material.dispose();\n }\n // Remove material\n material = null;\n }\n };\n disposables.forEach((child) => {\n if (child.isMesh || child.isPoints || child.isLine) {\n // Dispose mesh material\n disposeMaterial(child.material);\n // Remove mesh geometry\n child.geometry.dispose();\n }\n else if (child.isMaterial) {\n // Dispose material\n disposeMaterial(child);\n }\n });\n};\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _View3d_instances, _View3d_container, _View3d_mediator, _View3d_metadata, _View3d_animations, _View3d_animationsManager, _View3d_clock, _View3d_controls, _View3d_lensesManager, _View3d_loop, _View3d_personalizator, _View3d_pixelRatioManager, _View3d_raycaster, _View3d_sceneSorter, _View3d_ticksManager, _View3d_debug, _View3d_isAnimating, _View3d_isFirstRendering, _View3d_isMovingCache, _View3d_isResizing, _View3d_backgroundCache, _View3d_backgroundFit, _View3d_boundingArea, _View3d_environmentCache, _View3d_isTouchDown, _View3d_lensesCatalogue, _View3d_lensesName, _View3d_lensesOpacity, _View3d_model, _View3d_modelBox, _View3d_modelSphere, _View3d_orbitPoint, _View3d_pendingFiles, _View3d_scrollInteraction, _View3d_showBackground, _View3d_showEnvironment, _View3d_status, _View3d_touchMovePosition, _View3d_touchStartPosition, _View3d_boundOnDoubleTap, _View3d_boundOnDrop, _View3d_boundOnLongPress, _View3d_boundOnResizeEnd, _View3d_boundOnResizeStart, _View3d_boundOnSingleTap, _View3d_initClock, _View3d_initTicksManager, _View3d_initLoop, _View3d_initRenderer, _View3d_initScene, _View3d_initRaycaster, _View3d_initSceneSorter, _View3d_initLensesManager, _View3d_initPersonalizator, _View3d_initAnimations, _View3d_initControls, _View3d_initAnimationsManager, _View3d_initPixelRatioManager, _View3d_initContainer, _View3d_hasToRender, _View3d_isMoving, _View3d_getLensesDescription, _View3d_hasToRecomputeBackground, _View3d_setBackground, _View3d_setEnvironment, _View3d_setExplosion, _View3d_setLensesCatalogue, _View3d_setModel, _View3d_setSorting, _View3d_setDegugPerformanceUI, _View3d_setBackgroundFit, _View3d_setBoundingArea, _View3d_setClearColor, _View3d_setHasDragAndDrop, _View3d_setLensesName, _View3d_setLensesOpacity, _View3d_setOrbitPoint, _View3d_setQualityMoving, _View3d_setQualityStill, _View3d_setScrollInteraction, _View3d_setShowBackground, _View3d_setShowEnvironment, _View3d_setStatus, _View3d_setTransmission, _View3d_setDebugMemory, _View3d_updateAsset, _View3d_updateSetting, _View3d_checkIsMoving, _View3d_renderLoop, _View3d_computeSceneBackground, _View3d_computeActualBackground, _View3d_computeLensesParameters, _View3d_computeScrollInteraction, _View3d_clearAnimations, _View3d_clearScene, _View3d_findDifferences, _View3d_selectiveUnload, _View3d_showModelBox, _View3d_showModelSphere, _View3d_onDoubleTap, _View3d_onDrop, _View3d_onLongPress, _View3d_onResizeStart, _View3d_onResize, _View3d_onResizeEnd, _View3d_onSingleTap, _View3d_render;\n// @ts-ignore\nimport { createGameLoop as createLoop } from '@wmcmurray/game-loop-js';\nimport to from 'await-to-js';\nimport isTouchDevice from 'is-touch-device';\nimport { debounce, isBoolean, isEmpty, isNull, mapValues, some, } from 'lodash-es';\nimport { Box3, Box3Helper, Clock, Color, Mesh, MeshBasicMaterial, PMREMGenerator, Raycaster, Scene, Sphere, SphereGeometry, Vector2, Vector3, Texture, } from 'three';\nimport { Tween, Easing, Group } from '@tweenjs/tween.js';\nimport { SceneSorter } from '@luxottica/glasses-rt-webglrenderer';\nimport { Personalizator, } from '@luxottica/gltf-personalization-processor';\nimport { LensesManager } from '@luxottica/vm-renderer-core';\nimport Controls from '@/components/Controls';\nimport { CAMERA_PAN_MIN, CAMERA_PAN_MAX, ENGINE_LENSES_OPACITY_MAX, ENGINE_LENSES_OPACITY_MIN, EVENT_CONTAINER_DOUBLE_TAP, EVENT_CONTAINER_DROP, EVENT_CONTAINER_LONG_PRESS, EVENT_CONTAINER_RESIZE_END, EVENT_CONTAINER_RESIZE_START, EVENT_CONTAINER_SINGLE_TAP, EVENT_VIEW_IS_MOVING, EVENT_VIEW_IS_STILL, EVENT_VIEW_PENDING_FILES, EVENT_VIEW_PERFORMANCE, EVENT_VIEW_SELECTED_COMPONENT, EVENT_VIEW_SET_LENSES_OPACITY, GESTURES_SCROLL_INTERACTION_TIMEOUT, KEY_ASSETS_BACKGROUND, KEY_ASSETS_CAMERA_MOVEMENTS, KEY_ASSETS_ENVIRONMENT, KEY_ASSETS_EXPLOSION, KEY_ASSETS_LENSES_CATALOGUE, KEY_ASSETS_MODEL3D, KEY_ASSETS_SORTING, KEY_SETTINGS_AUTO_RESET_CAMERA, KEY_SETTINGS_AUTO_ROTATE_CAMERA, KEY_SETTINGS_AUTO_ROTATE_SPEED, KEY_SETTINGS_BACKGROUND_FIT, KEY_SETTINGS_BOUNDING_AREA, KEY_SETTINGS_BOUNDING_FIT, KEY_SETTINGS_CAMERA_ANIMATION_TIME, KEY_SETTINGS_CAMERA_ROTATION_INITIAL, KEY_SETTINGS_CAMERA_ROTATION_RESET, KEY_SETTINGS_CLEAR_COLOR, KEY_SETTINGS_GESTURES, KEY_SETTINGS_HAS_DRAG_AND_DROP, KEY_SETTINGS_LENSES_NAME, KEY_SETTINGS_LENSES_OPACITY, KEY_SETTINGS_ORBIT_POINT, KEY_SETTINGS_QUALITY_MOVING, KEY_SETTINGS_QUALITY_STILL, KEY_SETTINGS_SCROLL_INTERACTION, KEY_SETTINGS_SHOW_BACKGROUND, KEY_SETTINGS_SHOW_ENVIRONMENT, KEY_SETTINGS_STATUS, KEY_SETTINGS_TRANSMISSION, KEY_SETTINGS_DEBUG_MEMORY, PERFORMANCE_FPS_MAX, } from '@/constants';\nimport ErrorDispatcher from '@/dispatchers/ErrorDispatcher';\nimport RenderedDispatcher from '@/dispatchers/RenderedDispatcher';\nimport SettingsUpdatedDispatcher from '@/dispatchers/SettingsUpdatedDispatcher';\nimport AnimationsManager from '@/managers/AnimationsManager';\nimport PixelRatioManager from '@/managers/PixelRatioManager';\nimport TicksManager from '@/managers/TicksManager';\nimport { getMaterials, getVertices } from '@/utils/object3d';\nimport { cover, fill } from '@/utils/texture';\n// import { isMesh } from '@/utils/mesh';\nimport { disposeMaterials } from '@/utils/material';\nclass View3d {\n constructor({ container, renderer }) {\n _View3d_instances.add(this);\n _View3d_container.set(this, void 0);\n Object.defineProperty(this, \"renderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _View3d_mediator.set(this, void 0);\n _View3d_metadata.set(this, void 0);\n _View3d_animations.set(this, void 0);\n _View3d_animationsManager.set(this, void 0);\n _View3d_clock.set(this, void 0);\n _View3d_controls.set(this, void 0);\n _View3d_lensesManager.set(this, void 0);\n _View3d_loop.set(this, void 0);\n _View3d_personalizator.set(this, void 0);\n _View3d_pixelRatioManager.set(this, void 0);\n _View3d_raycaster.set(this, void 0);\n Object.defineProperty(this, \"scene\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _View3d_sceneSorter.set(this, void 0);\n _View3d_ticksManager.set(this, void 0);\n _View3d_debug.set(this, void 0);\n Object.defineProperty(this, \"debugMemory\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _View3d_isAnimating.set(this, void 0);\n _View3d_isFirstRendering.set(this, void 0);\n _View3d_isMovingCache.set(this, void 0);\n _View3d_isResizing.set(this, void 0);\n _View3d_backgroundCache.set(this, void 0);\n _View3d_backgroundFit.set(this, void 0);\n _View3d_boundingArea.set(this, void 0);\n _View3d_environmentCache.set(this, void 0);\n _View3d_isTouchDown.set(this, void 0);\n _View3d_lensesCatalogue.set(this, void 0);\n _View3d_lensesName.set(this, void 0);\n _View3d_lensesOpacity.set(this, void 0);\n _View3d_model.set(this, void 0);\n _View3d_modelBox.set(this, void 0);\n _View3d_modelSphere.set(this, void 0);\n _View3d_orbitPoint.set(this, void 0);\n _View3d_pendingFiles.set(this, void 0);\n _View3d_scrollInteraction.set(this, void 0);\n _View3d_showBackground.set(this, void 0);\n _View3d_showEnvironment.set(this, void 0);\n _View3d_status.set(this, void 0);\n _View3d_touchMovePosition.set(this, void 0);\n _View3d_touchStartPosition.set(this, void 0);\n _View3d_boundOnDoubleTap.set(this, void 0);\n _View3d_boundOnDrop.set(this, void 0);\n _View3d_boundOnLongPress.set(this, void 0);\n _View3d_boundOnResizeEnd.set(this, void 0);\n _View3d_boundOnResizeStart.set(this, void 0);\n _View3d_boundOnSingleTap.set(this, void 0);\n __classPrivateFieldSet(this, _View3d_container, container, \"f\");\n this.renderer = renderer;\n __classPrivateFieldSet(this, _View3d_mediator, null, \"f\");\n __classPrivateFieldSet(this, _View3d_metadata, null, \"f\");\n __classPrivateFieldSet(this, _View3d_animations, null, \"f\");\n __classPrivateFieldSet(this, _View3d_animationsManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_clock, null, \"f\");\n __classPrivateFieldSet(this, _View3d_controls, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_loop, null, \"f\");\n __classPrivateFieldSet(this, _View3d_personalizator, null, \"f\");\n __classPrivateFieldSet(this, _View3d_pixelRatioManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_raycaster, null, \"f\");\n this.scene = null;\n __classPrivateFieldSet(this, _View3d_sceneSorter, null, \"f\");\n __classPrivateFieldSet(this, _View3d_ticksManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_debug, false, \"f\");\n this.debugMemory = false;\n __classPrivateFieldSet(this, _View3d_isAnimating, false, \"f\");\n __classPrivateFieldSet(this, _View3d_isFirstRendering, true, \"f\");\n __classPrivateFieldSet(this, _View3d_isMovingCache, false, \"f\");\n __classPrivateFieldSet(this, _View3d_isResizing, false, \"f\");\n __classPrivateFieldSet(this, _View3d_backgroundCache, null, \"f\");\n __classPrivateFieldSet(this, _View3d_backgroundFit, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundingArea, null, \"f\");\n __classPrivateFieldSet(this, _View3d_environmentCache, null, \"f\");\n __classPrivateFieldSet(this, _View3d_isTouchDown, false, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesCatalogue, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesName, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesOpacity, null, \"f\");\n __classPrivateFieldSet(this, _View3d_model, null, \"f\");\n __classPrivateFieldSet(this, _View3d_modelBox, null, \"f\");\n __classPrivateFieldSet(this, _View3d_modelSphere, null, \"f\");\n __classPrivateFieldSet(this, _View3d_orbitPoint, null, \"f\");\n __classPrivateFieldSet(this, _View3d_pendingFiles, null, \"f\");\n __classPrivateFieldSet(this, _View3d_scrollInteraction, null, \"f\");\n __classPrivateFieldSet(this, _View3d_showBackground, null, \"f\");\n __classPrivateFieldSet(this, _View3d_showEnvironment, null, \"f\");\n __classPrivateFieldSet(this, _View3d_status, null, \"f\");\n __classPrivateFieldSet(this, _View3d_touchMovePosition, null, \"f\");\n __classPrivateFieldSet(this, _View3d_touchStartPosition, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnDoubleTap, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onDoubleTap).bind(this), \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnDrop, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onDrop).bind(this), \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnLongPress, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onLongPress).bind(this), \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnResizeEnd, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onResizeEnd).bind(this), \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnResizeStart, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onResizeStart).bind(this), \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnSingleTap, __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onSingleTap).bind(this), \"f\");\n }\n // INITs\n init(mediator, metadata) {\n __classPrivateFieldSet(this, _View3d_mediator, mediator, \"f\");\n __classPrivateFieldSet(this, _View3d_metadata, metadata, \"f\");\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initClock).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initTicksManager).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initLoop).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initRenderer).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initScene).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initRaycaster).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initSceneSorter).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initLensesManager).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initPersonalizator).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initAnimations).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initControls).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initAnimationsManager).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initPixelRatioManager).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_initContainer).call(this);\n }\n // GETTERs\n getAnimationsManager() {\n return __classPrivateFieldGet(this, _View3d_animationsManager, \"f\");\n }\n getControls() {\n return __classPrivateFieldGet(this, _View3d_controls, \"f\");\n }\n getModel() {\n return __classPrivateFieldGet(this, _View3d_model, \"f\");\n }\n getModelSphere() {\n return __classPrivateFieldGet(this, _View3d_modelSphere, \"f\");\n }\n getOffsetX() {\n if (!__classPrivateFieldGet(this, _View3d_boundingArea, \"f\"))\n return 0;\n const { topLeft, bottomRight } = __classPrivateFieldGet(this, _View3d_boundingArea, \"f\");\n const left = this.getWidth() * topLeft.x;\n const right = this.getWidth() * bottomRight.x;\n const mean = (left + right) / 2;\n const semiWidth = this.getWidth() / 2;\n const offset = semiWidth - mean;\n return offset;\n }\n getOffsetY() {\n if (!__classPrivateFieldGet(this, _View3d_boundingArea, \"f\"))\n return 0;\n const { topLeft, bottomRight } = __classPrivateFieldGet(this, _View3d_boundingArea, \"f\");\n const top = this.getHeight() * topLeft.y;\n const bottom = this.getHeight() * bottomRight.y;\n const mean = (top + bottom) / 2;\n const semiHeight = this.getHeight() / 2;\n const offset = semiHeight - mean;\n return offset;\n }\n getWidth() {\n return __classPrivateFieldGet(this, _View3d_container, \"f\").getWidth();\n }\n getHeight() {\n return __classPrivateFieldGet(this, _View3d_container, \"f\").getHeight();\n }\n getIntersections(offsetX, offsetY) {\n const raycaster = new Raycaster();\n const normalizedX = (offsetX / __classPrivateFieldGet(this, _View3d_container, \"f\").getWidth()) * 2.0 - 1;\n const normalizedY = -(offsetY / __classPrivateFieldGet(this, _View3d_container, \"f\").getHeight()) * 2.0 + 1;\n const normalizedCoords = new Vector2(normalizedX, normalizedY);\n raycaster.setFromCamera(normalizedCoords, __classPrivateFieldGet(this, _View3d_controls, \"f\").getCamera());\n const models = this.scene.children.filter(child => 'isGroup' in child);\n const intersections = raycaster.intersectObjects(models);\n return intersections;\n }\n getPendingFiles() {\n return __classPrivateFieldGet(this, _View3d_pendingFiles, \"f\");\n }\n // Others\n async setPersonalization(personalization) {\n const [err] = await to(__classPrivateFieldGet(this, _View3d_personalizator, \"f\").setPersonalization(personalization));\n if (err) {\n ErrorDispatcher.dispatch({\n code: 'VALIDATION_FAILED',\n context: 'runtime',\n error: err,\n });\n return;\n }\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").onNext(() => {\n // This is a trick for visually updating the personalization\n });\n }\n // ACTIONs\n updateAssets(assets) {\n assets.forEach(asset => __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_updateAsset).call(this, asset));\n if (__classPrivateFieldGet(this, _View3d_isFirstRendering, \"f\")) {\n __classPrivateFieldSet(this, _View3d_isFirstRendering, false, \"f\");\n __classPrivateFieldGet(this, _View3d_controls, \"f\").cameraToInitialPosition();\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeLensesParameters).call(this);\n }\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").onNext(() => {\n RenderedDispatcher.dispatch();\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\"))\n console.log('Assets updated');\n });\n }\n updateSettings(settings) {\n if (isEmpty(settings))\n return;\n settings.forEach(setting => __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_updateSetting).call(this, setting));\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").onNext(() => {\n SettingsUpdatedDispatcher.dispatch(settings);\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\"))\n console.log('Settings updated');\n });\n }\n async clearPersonalizations() {\n await __classPrivateFieldGet(this, _View3d_personalizator, \"f\").clearPersonalizations();\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").onNext(() => {\n // This is a trick for visually updating the personalization\n });\n }\n flushPendingFiles() {\n __classPrivateFieldSet(this, _View3d_pendingFiles, null, \"f\");\n }\n toggleExplosion() {\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").toggleExplosion();\n }\n displayOrbitPoint(actions) {\n if (!__classPrivateFieldGet(this, _View3d_orbitPoint, \"f\"))\n return;\n const activeActions = mapValues(actions, (value, key) => {\n if (isBoolean(__classPrivateFieldGet(this, _View3d_orbitPoint, \"f\"))) {\n return value;\n }\n if (key in __classPrivateFieldGet(this, _View3d_orbitPoint, \"f\")) {\n return value && __classPrivateFieldGet(this, _View3d_orbitPoint, \"f\")[key];\n }\n return false;\n });\n const displayOrbitPoint = some(activeActions);\n __classPrivateFieldGet(this, _View3d_container, \"f\").displayOrbitPoint(displayOrbitPoint);\n }\n toggleFullscreen() {\n __classPrivateFieldGet(this, _View3d_container, \"f\").toggleFullscreen();\n }\n toggleLensesOpacity(duration) {\n if (__classPrivateFieldGet(this, _View3d_isAnimating, \"f\"))\n return;\n const mean = (ENGINE_LENSES_OPACITY_MIN + ENGINE_LENSES_OPACITY_MAX) / 2;\n const target = __classPrivateFieldGet(this, _View3d_lensesOpacity, \"f\") < mean\n ? ENGINE_LENSES_OPACITY_MAX\n : ENGINE_LENSES_OPACITY_MIN;\n __classPrivateFieldSet(this, _View3d_isAnimating, true, \"f\");\n const self = this;\n const animation = new Tween({\n opacity: __classPrivateFieldGet(this, _View3d_lensesOpacity, \"f\"),\n })\n .to({ opacity: target }, duration)\n .easing(Easing.Linear.None)\n .onUpdate(function (value) {\n __classPrivateFieldGet(self, _View3d_mediator, \"f\").notify(EVENT_VIEW_SET_LENSES_OPACITY, value.opacity);\n })\n .onComplete(function () {\n __classPrivateFieldSet(self, _View3d_isAnimating, false, \"f\");\n })\n .start();\n __classPrivateFieldGet(this, _View3d_animations, \"f\").add(animation);\n }\n showFrustumSphere() {\n const oldHelper = this.scene.getObjectByName('frustum-sphere-helper');\n if (oldHelper)\n this.scene.remove(oldHelper);\n const frustumSphere = __classPrivateFieldGet(this, _View3d_controls, \"f\").getFrustumSphere();\n const geometry = new SphereGeometry(frustumSphere.radius, 36, 18);\n const material = new MeshBasicMaterial({\n color: 0xff00ff,\n wireframe: true,\n });\n const helper = new Mesh(geometry, material);\n helper.name = 'frustum-sphere-helper';\n this.scene.add(helper);\n }\n showPanBox() {\n const oldHelper = this.scene.getObjectByName('pan-box-helper');\n if (oldHelper)\n this.scene.remove(oldHelper);\n const cameraControls = __classPrivateFieldGet(this, _View3d_controls, \"f\").getCameraControls();\n const panBoxMin = new Vector3()\n .copy(CAMERA_PAN_MIN)\n .add(cameraControls.getTarget(new Vector3()));\n const panBoxMax = new Vector3()\n .copy(CAMERA_PAN_MAX)\n .add(cameraControls.getTarget(new Vector3()));\n const panBox = new Box3(panBoxMin, panBoxMax);\n const helper = new Box3Helper(panBox, new Color(0xff0000));\n helper.name = 'pan-box-helper';\n this.scene.add(helper);\n }\n async dispose() {\n const element = __classPrivateFieldGet(this, _View3d_container, \"f\").getElement();\n element.removeEventListener(EVENT_CONTAINER_DOUBLE_TAP, __classPrivateFieldGet(this, _View3d_boundOnDoubleTap, \"f\"));\n element.removeEventListener(EVENT_CONTAINER_DROP, __classPrivateFieldGet(this, _View3d_boundOnDrop, \"f\"));\n element.removeEventListener(EVENT_CONTAINER_LONG_PRESS, __classPrivateFieldGet(this, _View3d_boundOnLongPress, \"f\"));\n element.removeEventListener(EVENT_CONTAINER_RESIZE_END, __classPrivateFieldGet(this, _View3d_boundOnResizeEnd, \"f\"));\n element.removeEventListener(EVENT_CONTAINER_RESIZE_START, __classPrivateFieldGet(this, _View3d_boundOnResizeStart, \"f\"));\n element.removeEventListener(EVENT_CONTAINER_SINGLE_TAP, __classPrivateFieldGet(this, _View3d_boundOnSingleTap, \"f\"));\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_clearAnimations).call(this);\n __classPrivateFieldGet(this, _View3d_controls, \"f\").dispose();\n __classPrivateFieldGet(this, _View3d_container, \"f\").dispose();\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").dispose();\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").dispose();\n __classPrivateFieldGet(this, _View3d_pixelRatioManager, \"f\").dispose();\n this.renderer.dispose();\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").dispose();\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").dispose();\n await __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_clearScene).call(this);\n // To null\n __classPrivateFieldSet(this, _View3d_container, null, \"f\");\n this.renderer = null;\n __classPrivateFieldSet(this, _View3d_mediator, null, \"f\");\n __classPrivateFieldSet(this, _View3d_metadata, null, \"f\");\n __classPrivateFieldSet(this, _View3d_animations, null, \"f\");\n __classPrivateFieldSet(this, _View3d_animationsManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_clock, null, \"f\");\n __classPrivateFieldSet(this, _View3d_controls, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_loop, null, \"f\");\n __classPrivateFieldSet(this, _View3d_personalizator, null, \"f\");\n __classPrivateFieldSet(this, _View3d_pixelRatioManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_raycaster, null, \"f\");\n this.scene = null;\n __classPrivateFieldSet(this, _View3d_sceneSorter, null, \"f\");\n __classPrivateFieldSet(this, _View3d_ticksManager, null, \"f\");\n __classPrivateFieldSet(this, _View3d_debug, null, \"f\");\n this.debugMemory = null;\n __classPrivateFieldSet(this, _View3d_isAnimating, null, \"f\");\n __classPrivateFieldSet(this, _View3d_isFirstRendering, null, \"f\");\n __classPrivateFieldSet(this, _View3d_isMovingCache, null, \"f\");\n __classPrivateFieldSet(this, _View3d_isResizing, null, \"f\");\n __classPrivateFieldSet(this, _View3d_backgroundCache, null, \"f\");\n __classPrivateFieldSet(this, _View3d_backgroundFit, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundingArea, null, \"f\");\n __classPrivateFieldSet(this, _View3d_environmentCache, null, \"f\");\n __classPrivateFieldSet(this, _View3d_isTouchDown, false, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesCatalogue, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesName, null, \"f\");\n __classPrivateFieldSet(this, _View3d_lensesOpacity, null, \"f\");\n __classPrivateFieldSet(this, _View3d_model, null, \"f\");\n __classPrivateFieldSet(this, _View3d_modelBox, null, \"f\");\n __classPrivateFieldSet(this, _View3d_modelSphere, null, \"f\");\n __classPrivateFieldSet(this, _View3d_orbitPoint, null, \"f\");\n __classPrivateFieldSet(this, _View3d_pendingFiles, null, \"f\");\n __classPrivateFieldSet(this, _View3d_scrollInteraction, null, \"f\");\n __classPrivateFieldSet(this, _View3d_showBackground, null, \"f\");\n __classPrivateFieldSet(this, _View3d_showEnvironment, null, \"f\");\n __classPrivateFieldSet(this, _View3d_status, null, \"f\");\n __classPrivateFieldSet(this, _View3d_touchMovePosition, null, \"f\");\n __classPrivateFieldSet(this, _View3d_touchStartPosition, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnDoubleTap, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnDrop, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnLongPress, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnResizeEnd, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnResizeStart, null, \"f\");\n __classPrivateFieldSet(this, _View3d_boundOnSingleTap, null, \"f\");\n }\n}\n_View3d_container = new WeakMap(), _View3d_mediator = new WeakMap(), _View3d_metadata = new WeakMap(), _View3d_animations = new WeakMap(), _View3d_animationsManager = new WeakMap(), _View3d_clock = new WeakMap(), _View3d_controls = new WeakMap(), _View3d_lensesManager = new WeakMap(), _View3d_loop = new WeakMap(), _View3d_personalizator = new WeakMap(), _View3d_pixelRatioManager = new WeakMap(), _View3d_raycaster = new WeakMap(), _View3d_sceneSorter = new WeakMap(), _View3d_ticksManager = new WeakMap(), _View3d_debug = new WeakMap(), _View3d_isAnimating = new WeakMap(), _View3d_isFirstRendering = new WeakMap(), _View3d_isMovingCache = new WeakMap(), _View3d_isResizing = new WeakMap(), _View3d_backgroundCache = new WeakMap(), _View3d_backgroundFit = new WeakMap(), _View3d_boundingArea = new WeakMap(), _View3d_environmentCache = new WeakMap(), _View3d_isTouchDown = new WeakMap(), _View3d_lensesCatalogue = new WeakMap(), _View3d_lensesName = new WeakMap(), _View3d_lensesOpacity = new WeakMap(), _View3d_model = new WeakMap(), _View3d_modelBox = new WeakMap(), _View3d_modelSphere = new WeakMap(), _View3d_orbitPoint = new WeakMap(), _View3d_pendingFiles = new WeakMap(), _View3d_scrollInteraction = new WeakMap(), _View3d_showBackground = new WeakMap(), _View3d_showEnvironment = new WeakMap(), _View3d_status = new WeakMap(), _View3d_touchMovePosition = new WeakMap(), _View3d_touchStartPosition = new WeakMap(), _View3d_boundOnDoubleTap = new WeakMap(), _View3d_boundOnDrop = new WeakMap(), _View3d_boundOnLongPress = new WeakMap(), _View3d_boundOnResizeEnd = new WeakMap(), _View3d_boundOnResizeStart = new WeakMap(), _View3d_boundOnSingleTap = new WeakMap(), _View3d_instances = new WeakSet(), _View3d_initClock = function _View3d_initClock() {\n __classPrivateFieldSet(this, _View3d_clock, new Clock(), \"f\");\n}, _View3d_initTicksManager = function _View3d_initTicksManager() {\n __classPrivateFieldSet(this, _View3d_ticksManager, new TicksManager(), \"f\");\n}, _View3d_initLoop = function _View3d_initLoop() {\n __classPrivateFieldSet(this, _View3d_loop, createLoop(() => {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_checkIsMoving).call(this);\n if (!__classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_hasToRender).call(this))\n return;\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").next();\n if (__classPrivateFieldGet(this, _View3d_isResizing, \"f\"))\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_onResize).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_renderLoop).call(this);\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").manageCallbacks();\n }, PERFORMANCE_FPS_MAX), \"f\");\n}, _View3d_initRenderer = function _View3d_initRenderer() {\n this.renderer.setAnimationLoop(__classPrivateFieldGet(this, _View3d_loop, \"f\").loop);\n}, _View3d_initScene = function _View3d_initScene() {\n this.scene = new Scene();\n}, _View3d_initRaycaster = function _View3d_initRaycaster() {\n __classPrivateFieldSet(this, _View3d_raycaster, new Raycaster(), \"f\");\n}, _View3d_initSceneSorter = function _View3d_initSceneSorter() {\n __classPrivateFieldSet(this, _View3d_sceneSorter, new SceneSorter(this.scene, __classPrivateFieldGet(this, _View3d_raycaster, \"f\"), this.renderer), \"f\");\n}, _View3d_initLensesManager = function _View3d_initLensesManager() {\n __classPrivateFieldSet(this, _View3d_lensesManager, new LensesManager(this.renderer), \"f\");\n}, _View3d_initPersonalizator = function _View3d_initPersonalizator() {\n __classPrivateFieldSet(this, _View3d_personalizator, new Personalizator({\n metadata: {\n // 2024-11-26 12:24:10 - Tommaso Iacolettig\n // env può essere 'development' o 'production',\n // mentre metadata.env può essere 'development', 'mock', 'production' o 'static'.\n // Fino a quando env non viene rimosso da metadata, dobbiamo usare @ts-ignore.\n // @ts-ignore\n env: __classPrivateFieldGet(this, _View3d_metadata, \"f\").env ?? __classPrivateFieldGet(this, _View3d_metadata, \"f\").envs?.asset,\n },\n }), \"f\");\n}, _View3d_initAnimations = function _View3d_initAnimations() {\n __classPrivateFieldSet(this, _View3d_animations, new Group(), \"f\");\n}, _View3d_initControls = function _View3d_initControls() {\n __classPrivateFieldSet(this, _View3d_controls, new Controls({\n renderer: this.renderer,\n mediator: __classPrivateFieldGet(this, _View3d_mediator, \"f\"),\n view: this,\n debug: __classPrivateFieldGet(this, _View3d_debug, \"f\"),\n }), \"f\");\n}, _View3d_initAnimationsManager = function _View3d_initAnimationsManager() {\n __classPrivateFieldSet(this, _View3d_animationsManager, new AnimationsManager(), \"f\");\n}, _View3d_initPixelRatioManager = function _View3d_initPixelRatioManager() {\n __classPrivateFieldSet(this, _View3d_pixelRatioManager, new PixelRatioManager(pixelRatio => {\n this.renderer.setPixelRatio(pixelRatio);\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\"))\n console.log('pixelRatio', pixelRatio);\n }), \"f\");\n}, _View3d_initContainer = function _View3d_initContainer() {\n const element = __classPrivateFieldGet(this, _View3d_container, \"f\").getElement();\n const canvas = this.renderer.domElement;\n element.appendChild(canvas);\n const debouncedResetScrollStatus = debounce(() => {\n const gesturesManager = __classPrivateFieldGet(this, _View3d_controls, \"f\").getGesturesManager();\n gesturesManager.setScrollStatus(true);\n canvas.style.touchAction = 'pan-y';\n }, GESTURES_SCROLL_INTERACTION_TIMEOUT);\n element.addEventListener(EVENT_CONTAINER_DOUBLE_TAP, __classPrivateFieldGet(this, _View3d_boundOnDoubleTap, \"f\"));\n element.addEventListener(EVENT_CONTAINER_DROP, __classPrivateFieldGet(this, _View3d_boundOnDrop, \"f\"));\n element.addEventListener(EVENT_CONTAINER_LONG_PRESS, __classPrivateFieldGet(this, _View3d_boundOnLongPress, \"f\"));\n element.addEventListener(EVENT_CONTAINER_RESIZE_END, __classPrivateFieldGet(this, _View3d_boundOnResizeEnd, \"f\"));\n element.addEventListener(EVENT_CONTAINER_RESIZE_START, __classPrivateFieldGet(this, _View3d_boundOnResizeStart, \"f\"));\n element.addEventListener(EVENT_CONTAINER_SINGLE_TAP, __classPrivateFieldGet(this, _View3d_boundOnSingleTap, \"f\"));\n element.addEventListener('touchstart', event => {\n const { clientX, clientY } = event.changedTouches[0];\n __classPrivateFieldSet(this, _View3d_touchStartPosition, { x: clientX, y: clientY }, \"f\");\n });\n element.addEventListener('touchmove', event => {\n if (!__classPrivateFieldGet(this, _View3d_scrollInteraction, \"f\")) {\n return;\n }\n const { clientX, clientY } = event.changedTouches[0];\n debouncedResetScrollStatus();\n if (__classPrivateFieldGet(this, _View3d_isTouchDown, \"f\"))\n return;\n __classPrivateFieldSet(this, _View3d_touchMovePosition, { x: clientX, y: clientY }, \"f\");\n const xDiff = Math.abs(__classPrivateFieldGet(this, _View3d_touchMovePosition, \"f\").x - __classPrivateFieldGet(this, _View3d_touchStartPosition, \"f\").x);\n const yDiff = Math.abs(__classPrivateFieldGet(this, _View3d_touchMovePosition, \"f\").y - __classPrivateFieldGet(this, _View3d_touchStartPosition, \"f\").y);\n if (xDiff > yDiff) {\n const gesturesManager = __classPrivateFieldGet(this, _View3d_controls, \"f\").getGesturesManager();\n gesturesManager.setScrollStatus(false);\n canvas.style.touchAction = 'none';\n }\n __classPrivateFieldSet(this, _View3d_isTouchDown, true, \"f\");\n });\n element.addEventListener('touchend', () => {\n __classPrivateFieldSet(this, _View3d_touchMovePosition, { x: 0, y: 0 }, \"f\");\n __classPrivateFieldSet(this, _View3d_touchStartPosition, { x: 0, y: 0 }, \"f\");\n __classPrivateFieldSet(this, _View3d_isTouchDown, false, \"f\");\n });\n}, _View3d_hasToRender = function _View3d_hasToRender() {\n if (__classPrivateFieldGet(this, _View3d_ticksManager, \"f\").hasCallbacks())\n return true;\n if (__classPrivateFieldGet(this, _View3d_controls, \"f\").hasToRender())\n return true;\n if (__classPrivateFieldGet(this, _View3d_isResizing, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _View3d_isAnimating, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _View3d_animationsManager, \"f\").isExploding())\n return true;\n return false;\n}, _View3d_isMoving = function _View3d_isMoving() {\n if (__classPrivateFieldGet(this, _View3d_controls, \"f\").isMoving())\n return true;\n if (__classPrivateFieldGet(this, _View3d_isResizing, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _View3d_isAnimating, \"f\"))\n return true;\n if (__classPrivateFieldGet(this, _View3d_animationsManager, \"f\").isExploding())\n return true;\n return false;\n}, _View3d_getLensesDescription = function _View3d_getLensesDescription() {\n if (!__classPrivateFieldGet(this, _View3d_lensesCatalogue, \"f\"))\n return;\n const lensesDescription = __classPrivateFieldGet(this, _View3d_lensesCatalogue, \"f\").find(lenses => lenses.name === __classPrivateFieldGet(this, _View3d_lensesName, \"f\"));\n return lensesDescription;\n}, _View3d_hasToRecomputeBackground = function _View3d_hasToRecomputeBackground() {\n if (__classPrivateFieldGet(this, _View3d_backgroundFit, \"f\") === 'cover')\n return true;\n return false;\n}, _View3d_setBackground = function _View3d_setBackground(background) {\n if (!isNull(background)) {\n __classPrivateFieldSet(this, _View3d_backgroundCache, background, \"f\");\n }\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n}, _View3d_setEnvironment = function _View3d_setEnvironment(environment) {\n const pmremGenerator = new PMREMGenerator(this.renderer);\n pmremGenerator.compileEquirectangularShader();\n const env = pmremGenerator.fromEquirectangular(environment).texture;\n __classPrivateFieldSet(this, _View3d_environmentCache, env, \"f\");\n this.scene.environment = env;\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").setEnvironmentMap(env);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n pmremGenerator.dispose();\n}, _View3d_setExplosion = function _View3d_setExplosion(explosion) {\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").setExplosion(explosion);\n}, _View3d_setLensesCatalogue = function _View3d_setLensesCatalogue(lensesCatalogue) {\n __classPrivateFieldSet(this, _View3d_lensesCatalogue, lensesCatalogue, \"f\");\n}, _View3d_setModel = function _View3d_setModel(model) {\n __classPrivateFieldSet(this, _View3d_model, model, \"f\");\n const { gltf: modelScene, boundingBox: box } = model;\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").clear();\n __classPrivateFieldGet(this, _View3d_animations, \"f\").removeAll();\n // Texture Dispose and Scene Management\n if (this.scene.children[0]) {\n const diff = __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_findDifferences).call(this, this.scene.children[0], model.gltf);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_selectiveUnload).call(this, diff);\n }\n this.scene.clear();\n const boxCenter = box.getCenter(new Vector3());\n modelScene.position.x += modelScene.position.x - boxCenter.x;\n modelScene.position.y += modelScene.position.y - boxCenter.y;\n modelScene.position.z += modelScene.position.z - boxCenter.z;\n const modelBox = new Box3().setFromObject(modelScene);\n __classPrivateFieldSet(this, _View3d_modelBox, modelBox, \"f\");\n const modelBoxCenter = modelBox.getCenter(new Vector3());\n const vertices = getVertices(modelScene);\n const points = vertices.map(vertex => vertex.position);\n const modelSphere = new Sphere().setFromPoints(points, modelBoxCenter);\n __classPrivateFieldSet(this, _View3d_modelSphere, modelSphere, \"f\");\n this.scene.add(modelScene);\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").setGlasses(model);\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").setGlasses(model);\n __classPrivateFieldGet(this, _View3d_controls, \"f\").computeMaxDistance();\n // 2024-11-20 12:10:56 - Tommaso Iacolettig\n // This method returs a promise, but it is not awaited.\n // We should consider to await it or to handle the promise in a different way.\n __classPrivateFieldGet(this, _View3d_personalizator, \"f\").setModel({\n scene: modelScene,\n userData: {\n luxottica: {\n personalizations: modelScene.userData.rtrViewer.personalizations,\n },\n },\n });\n if (!__classPrivateFieldGet(this, _View3d_isFirstRendering, \"f\")) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeLensesParameters).call(this);\n }\n __classPrivateFieldGet(this, _View3d_ticksManager, \"f\").onNext(() => {\n if (__classPrivateFieldGet(this, _View3d_controls, \"f\").autoResetCamera) {\n __classPrivateFieldGet(this, _View3d_clock, \"f\").start();\n __classPrivateFieldGet(this, _View3d_controls, \"f\").resetCamera();\n }\n });\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\")) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_showModelBox).call(this);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_showModelSphere).call(this);\n }\n}, _View3d_setSorting = function _View3d_setSorting(sorting) {\n const isPrecomputed = !isNull(sorting);\n const sortInfo = isPrecomputed ? sorting : undefined;\n const optimizeOrders = isPrecomputed;\n const sortingMethod = isPrecomputed ? 'multilayer' : 'pivot';\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setSortInfo(sortInfo);\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setSorting(__classPrivateFieldGet(this, _View3d_model, \"f\"), sortingMethod, 'open', optimizeOrders);\n}, _View3d_setDegugPerformanceUI = function _View3d_setDegugPerformanceUI(element) {\n const performanceDivContainer = document.createElement('div');\n performanceDivContainer.id = 'performance-monitor';\n performanceDivContainer.innerHTML = `\n
\n Geometries: \n
\n\n Textures: \n
\n\n Programs: \n
\n\n Renderer Calls: \n
\n\n Triangles: \n
\n `;\n performanceDivContainer.style.cssText =\n 'position: fixed; z-index: 9999; bottom: 1rem; left: 1rem; padding: 1rem; background-color: rgba(0, 0, 0, 0.85); color: white; font-size: 1rem;';\n element.appendChild(performanceDivContainer);\n}, _View3d_setBackgroundFit = function _View3d_setBackgroundFit(backgroundFit) {\n __classPrivateFieldSet(this, _View3d_backgroundFit, backgroundFit, \"f\");\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n}, _View3d_setBoundingArea = function _View3d_setBoundingArea(boundingArea) {\n __classPrivateFieldSet(this, _View3d_boundingArea, boundingArea, \"f\");\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setBoundingArea(__classPrivateFieldGet(this, _View3d_boundingArea, \"f\"));\n __classPrivateFieldGet(this, _View3d_container, \"f\").setBoundingArea(__classPrivateFieldGet(this, _View3d_boundingArea, \"f\"));\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\"))\n __classPrivateFieldGet(this, _View3d_container, \"f\").displayBoundingArea();\n}, _View3d_setClearColor = function _View3d_setClearColor(clearColor) {\n this.renderer.setClearColor(clearColor);\n}, _View3d_setHasDragAndDrop = function _View3d_setHasDragAndDrop(hasDragAndDrop) {\n __classPrivateFieldGet(this, _View3d_container, \"f\").setHasDragAndDrop(hasDragAndDrop);\n}, _View3d_setLensesName = function _View3d_setLensesName(lensesName) {\n __classPrivateFieldSet(this, _View3d_lensesName, lensesName, \"f\");\n if (__classPrivateFieldGet(this, _View3d_isFirstRendering, \"f\"))\n return;\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeLensesParameters).call(this);\n}, _View3d_setLensesOpacity = function _View3d_setLensesOpacity(lensesOpacity) {\n __classPrivateFieldSet(this, _View3d_lensesOpacity, lensesOpacity, \"f\");\n if (__classPrivateFieldGet(this, _View3d_isFirstRendering, \"f\"))\n return;\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeLensesParameters).call(this);\n}, _View3d_setOrbitPoint = function _View3d_setOrbitPoint(orbitPoint) {\n __classPrivateFieldSet(this, _View3d_orbitPoint, orbitPoint, \"f\");\n}, _View3d_setQualityMoving = function _View3d_setQualityMoving(quality) {\n const status = 'moving';\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setQualityLevel(status, quality);\n // This is a trick for visually updating the quality level\n if (__classPrivateFieldGet(this, _View3d_status, \"f\") === status) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setStatus).call(this, status);\n }\n}, _View3d_setQualityStill = function _View3d_setQualityStill(quality) {\n const status = 'still';\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setQualityLevel(status, quality);\n // This is a trick for visually updating the quality level\n if (__classPrivateFieldGet(this, _View3d_status, \"f\") === status) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setStatus).call(this, status);\n }\n}, _View3d_setScrollInteraction = function _View3d_setScrollInteraction(scrollInteraction) {\n __classPrivateFieldSet(this, _View3d_scrollInteraction, scrollInteraction, \"f\");\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeScrollInteraction).call(this, scrollInteraction);\n}, _View3d_setShowBackground = function _View3d_setShowBackground(showBackground) {\n __classPrivateFieldSet(this, _View3d_showBackground, showBackground, \"f\");\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n}, _View3d_setShowEnvironment = function _View3d_setShowEnvironment(showEnvironment) {\n __classPrivateFieldSet(this, _View3d_showEnvironment, showEnvironment, \"f\");\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n}, _View3d_setStatus = function _View3d_setStatus(status) {\n __classPrivateFieldSet(this, _View3d_status, status, \"f\");\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setQuality(status);\n}, _View3d_setTransmission = function _View3d_setTransmission(transmission) {\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").activateTransmission(transmission);\n}, _View3d_setDebugMemory = function _View3d_setDebugMemory(debugMemory) {\n // UI Check\n const element = __classPrivateFieldGet(this, _View3d_container, \"f\").getElement();\n // Manage UI\n if (element.querySelector('#performance-monitor') &&\n debugMemory == false) {\n element.querySelector('#performance-monitor')?.remove();\n }\n else if (!element.querySelector('#performance-monitor') &&\n debugMemory == true) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setDegugPerformanceUI).call(this, element);\n }\n // Debug Set\n this.debugMemory = debugMemory;\n}, _View3d_updateAsset = function _View3d_updateAsset(asset) {\n const { key, data } = asset;\n switch (key) {\n case KEY_ASSETS_BACKGROUND:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setBackground).call(this, data);\n break;\n case KEY_ASSETS_CAMERA_MOVEMENTS:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setCameraMovements(data);\n break;\n case KEY_ASSETS_ENVIRONMENT:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setEnvironment).call(this, data);\n break;\n case KEY_ASSETS_EXPLOSION:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setExplosion).call(this, data);\n break;\n case KEY_ASSETS_LENSES_CATALOGUE:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setLensesCatalogue).call(this, data);\n break;\n case KEY_ASSETS_MODEL3D:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setModel).call(this, data);\n break;\n case KEY_ASSETS_SORTING:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setSorting).call(this, data);\n break;\n }\n}, _View3d_updateSetting = function _View3d_updateSetting(setting) {\n const { key, value = undefined } = setting;\n switch (key) {\n case KEY_SETTINGS_AUTO_RESET_CAMERA:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").autoResetCamera = value;\n break;\n case KEY_SETTINGS_AUTO_ROTATE_SPEED:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").autoRotateSpeed = value;\n break;\n case KEY_SETTINGS_AUTO_ROTATE_CAMERA:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").autoRotateCamera = value;\n break;\n case KEY_SETTINGS_BACKGROUND_FIT:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setBackgroundFit).call(this, value);\n break;\n case KEY_SETTINGS_BOUNDING_AREA:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setBoundingArea).call(this, value);\n break;\n case KEY_SETTINGS_BOUNDING_FIT:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setBoundingFit(value);\n break;\n case KEY_SETTINGS_CAMERA_ANIMATION_TIME:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setCameraAnimationTime(value);\n break;\n case KEY_SETTINGS_CAMERA_ROTATION_INITIAL:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setCameraRotationInitial(value);\n break;\n case KEY_SETTINGS_CAMERA_ROTATION_RESET:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setCameraRotationReset(value);\n break;\n case KEY_SETTINGS_CLEAR_COLOR:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setClearColor).call(this, value);\n break;\n case KEY_SETTINGS_GESTURES:\n __classPrivateFieldGet(this, _View3d_controls, \"f\").setGestures(value);\n break;\n case KEY_SETTINGS_HAS_DRAG_AND_DROP:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setHasDragAndDrop).call(this, value);\n break;\n case KEY_SETTINGS_LENSES_NAME:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setLensesName).call(this, value);\n break;\n case KEY_SETTINGS_LENSES_OPACITY:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setLensesOpacity).call(this, value);\n break;\n case KEY_SETTINGS_ORBIT_POINT:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setOrbitPoint).call(this, value);\n break;\n case KEY_SETTINGS_QUALITY_MOVING:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setQualityMoving).call(this, value);\n break;\n case KEY_SETTINGS_QUALITY_STILL:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setQualityStill).call(this, value);\n break;\n case KEY_SETTINGS_SCROLL_INTERACTION:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setScrollInteraction).call(this, value);\n break;\n case KEY_SETTINGS_SHOW_BACKGROUND:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setShowBackground).call(this, value);\n break;\n case KEY_SETTINGS_SHOW_ENVIRONMENT:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setShowEnvironment).call(this, value);\n break;\n case KEY_SETTINGS_STATUS:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setStatus).call(this, value);\n break;\n case KEY_SETTINGS_TRANSMISSION:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setTransmission).call(this, value);\n break;\n case KEY_SETTINGS_DEBUG_MEMORY:\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_setDebugMemory).call(this, value);\n break;\n }\n}, _View3d_checkIsMoving = function _View3d_checkIsMoving() {\n const isMoving = __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_isMoving).call(this);\n if (__classPrivateFieldGet(this, _View3d_isMovingCache, \"f\") === isMoving)\n return;\n if (isMoving) {\n __classPrivateFieldGet(this, _View3d_clock, \"f\").start();\n __classPrivateFieldGet(this, _View3d_mediator, \"f\").notify(EVENT_VIEW_IS_MOVING);\n }\n else {\n __classPrivateFieldGet(this, _View3d_mediator, \"f\").notify(EVENT_VIEW_IS_STILL);\n }\n __classPrivateFieldSet(this, _View3d_isMovingCache, isMoving, \"f\");\n}, _View3d_renderLoop = function _View3d_renderLoop() {\n const delta = __classPrivateFieldGet(this, _View3d_clock, \"f\").getDelta();\n if (__classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_isMoving).call(this)) {\n __classPrivateFieldGet(this, _View3d_mediator, \"f\").notify(EVENT_VIEW_PERFORMANCE, delta);\n }\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").update();\n __classPrivateFieldGet(this, _View3d_animations, \"f\").update();\n __classPrivateFieldGet(this, _View3d_controls, \"f\").renderLoop(delta);\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_render).call(this);\n}, _View3d_computeSceneBackground = function _View3d_computeSceneBackground() {\n if (__classPrivateFieldGet(this, _View3d_showEnvironment, \"f\")) {\n this.scene.background = __classPrivateFieldGet(this, _View3d_environmentCache, \"f\");\n return;\n }\n if (__classPrivateFieldGet(this, _View3d_showBackground, \"f\")) {\n this.scene.background = __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeActualBackground).call(this);\n return;\n }\n this.scene.background = null;\n}, _View3d_computeActualBackground = function _View3d_computeActualBackground() {\n switch (__classPrivateFieldGet(this, _View3d_backgroundFit, \"f\")) {\n case 'cover':\n return cover(__classPrivateFieldGet(this, _View3d_backgroundCache, \"f\"), __classPrivateFieldGet(this, _View3d_container, \"f\").getAspect());\n case 'fill':\n return fill(__classPrivateFieldGet(this, _View3d_backgroundCache, \"f\"));\n }\n}, _View3d_computeLensesParameters = function _View3d_computeLensesParameters() {\n const lens = __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_getLensesDescription).call(this);\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").setLensesMaterial(lens);\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").setLensesMaterialParameters({\n statesInterpolation: __classPrivateFieldGet(this, _View3d_lensesOpacity, \"f\"),\n });\n}, _View3d_computeScrollInteraction = function _View3d_computeScrollInteraction(scrollInteraction) {\n const canvas = this.renderer.domElement;\n const touchAction = scrollInteraction ? 'pan-y' : 'none';\n canvas.style.touchAction = touchAction;\n const gesturesManager = __classPrivateFieldGet(this, _View3d_controls, \"f\").getGesturesManager();\n gesturesManager.setScrollStatus(scrollInteraction);\n}, _View3d_clearAnimations = function _View3d_clearAnimations() {\n __classPrivateFieldGet(this, _View3d_animationsManager, \"f\").clear();\n __classPrivateFieldGet(this, _View3d_controls, \"f\").clearAnimations();\n __classPrivateFieldGet(this, _View3d_animations, \"f\").removeAll();\n}, _View3d_clearScene = async function _View3d_clearScene() {\n const disposables = [];\n // console.log( 'Memory: ', this.renderer.info.memory );\n // console.log( 'Render: ', this.renderer.info.render );\n // Remove GLTF model from the scene\n this.scene.traverse(child => {\n this.scene.remove(child);\n disposables.push(child);\n });\n // Dispose materials and geometries\n disposeMaterials(disposables);\n // Dispose scene children\n this.scene.traverse((obj) => {\n obj?.parent?.remove(obj);\n });\n this.scene.clear();\n // Remove background and environment\n if (this.scene.background instanceof Texture) {\n this.scene.background.dispose();\n this.scene.background = null;\n }\n if (this.scene.environment instanceof Texture) {\n this.scene.environment.dispose();\n this.scene.environment = null;\n }\n this.scene = null;\n // Kill canvas\n this.renderer.clear();\n this.renderer.dispose();\n if (this.renderer.domElement) {\n this.renderer.domElement.width = 0;\n this.renderer.domElement.height = 0;\n this.renderer.domElement = null;\n }\n this.renderer = null;\n // Hail Mary\n // this.renderer.forceContextLoss();\n // console.log('Memory: ', this.renderer.info.memory);\n // console.log('Render: ', this.renderer.info.render);\n}, _View3d_findDifferences = function _View3d_findDifferences(obj1, obj2) {\n const materials1 = getMaterials(obj1);\n const materials2 = getMaterials(obj2);\n // Find items that exist in set1 but not in set2\n const differences = new Set([...materials1].filter(x => !materials2.has(x)));\n if (__classPrivateFieldGet(this, _View3d_debug, \"f\"))\n console.log(differences);\n return differences;\n}, _View3d_selectiveUnload = function _View3d_selectiveUnload(materials) {\n disposeMaterials(materials);\n}, _View3d_showModelBox = function _View3d_showModelBox() {\n const helper = new Box3Helper(__classPrivateFieldGet(this, _View3d_modelBox, \"f\"), new Color(0x000000));\n helper.name = 'model-box-helper';\n this.scene.add(helper);\n}, _View3d_showModelSphere = function _View3d_showModelSphere() {\n const geometry = new SphereGeometry(__classPrivateFieldGet(this, _View3d_modelSphere, \"f\").radius, 36, 18);\n const material = new MeshBasicMaterial({\n color: 0x0000ff,\n wireframe: true,\n });\n const helper = new Mesh(geometry, material);\n helper.name = 'model-sphere-helper';\n this.scene.add(helper);\n}, _View3d_onDoubleTap = function _View3d_onDoubleTap(event) {\n if (isTouchDevice()) {\n __classPrivateFieldGet(this, _View3d_controls, \"f\").resetCamera();\n return;\n }\n const { offsetX, offsetY } = event.detail;\n const intersections = this.getIntersections(offsetX, offsetY);\n if (intersections.length === 0) {\n __classPrivateFieldGet(this, _View3d_controls, \"f\").resetCamera();\n return;\n }\n __classPrivateFieldGet(this, _View3d_controls, \"f\").focusOnPoint(intersections[0]);\n}, _View3d_onDrop = function _View3d_onDrop(event) {\n const files = event.detail;\n __classPrivateFieldSet(this, _View3d_pendingFiles, files, \"f\");\n __classPrivateFieldGet(this, _View3d_mediator, \"f\").notify(EVENT_VIEW_PENDING_FILES);\n}, _View3d_onLongPress = function _View3d_onLongPress(event) {\n if (!isTouchDevice())\n return;\n const { offsetX, offsetY } = event.detail;\n const intersections = this.getIntersections(offsetX, offsetY);\n if (intersections.length === 0)\n return;\n __classPrivateFieldGet(this, _View3d_controls, \"f\").focusOnPoint(intersections[0]);\n}, _View3d_onResizeStart = function _View3d_onResizeStart() {\n __classPrivateFieldSet(this, _View3d_isResizing, true, \"f\");\n}, _View3d_onResize = function _View3d_onResize() {\n __classPrivateFieldGet(this, _View3d_controls, \"f\").onResize();\n this.renderer.setSize(__classPrivateFieldGet(this, _View3d_container, \"f\").getWidth(), __classPrivateFieldGet(this, _View3d_container, \"f\").getHeight(), true);\n __classPrivateFieldGet(this, _View3d_controls, \"f\").computeMaxDistance();\n const { distance, maxDistance } = __classPrivateFieldGet(this, _View3d_controls, \"f\").getCameraControls();\n if (distance > maxDistance) {\n __classPrivateFieldGet(this, _View3d_controls, \"f\").getCameraControls().dollyTo(maxDistance, true);\n }\n if (__classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_hasToRecomputeBackground).call(this)) {\n __classPrivateFieldGet(this, _View3d_instances, \"m\", _View3d_computeSceneBackground).call(this);\n }\n}, _View3d_onResizeEnd = function _View3d_onResizeEnd() {\n __classPrivateFieldSet(this, _View3d_isResizing, false, \"f\");\n}, _View3d_onSingleTap = async function _View3d_onSingleTap(event) {\n const { offsetX, offsetY } = event.detail;\n const intersections = this.getIntersections(offsetX, offsetY);\n if (intersections.length === 0)\n return;\n const meshName = intersections[0].object.name;\n const { components } = __classPrivateFieldGet(this, _View3d_model, \"f\").gltf.userData\n .rtrViewer;\n if (!components)\n return;\n const component = components.find(component => component.meshes.includes(meshName));\n if (!component)\n return;\n __classPrivateFieldGet(this, _View3d_mediator, \"f\").notify(EVENT_VIEW_SELECTED_COMPONENT, component.type);\n}, _View3d_render = function _View3d_render() {\n const camera = __classPrivateFieldGet(this, _View3d_controls, \"f\").getCamera();\n const controls = __classPrivateFieldGet(this, _View3d_controls, \"f\").getCameraControls();\n __classPrivateFieldGet(this, _View3d_sceneSorter, \"f\").setCameraFromSpherical(controls.azimuthAngle, controls.polarAngle, camera.position, controls.getTarget(new Vector3()));\n __classPrivateFieldGet(this, _View3d_lensesManager, \"f\").onBeforeRenderLenses(camera);\n this.renderer.render(this.scene, camera);\n if (this.debugMemory == true) {\n // @ts-ignore\n const data = this.renderer.info;\n // console.log(data);\n const geometries = document.getElementById('performance-monitor-memory-geometries');\n if (geometries) {\n geometries.textContent = data.memory.geometries;\n }\n const textures = document.getElementById('performance-monitor-memory-textures');\n if (textures) {\n textures.textContent = data.memory.textures;\n }\n const programs = document.getElementById('performance-monitor-programs');\n if (programs) {\n programs.textContent = data.programs.length;\n }\n const calls = document.getElementById('performance-monitor-render-calls');\n if (calls) {\n calls.textContent = data.render.calls;\n }\n const triangles = document.getElementById('performance-monitor-render-triangles');\n if (triangles) {\n triangles.textContent = data.render.triangles;\n }\n // const memory = document.getElementById('performance-monitor-gpu-memory');\n // if (memory) {\n // memory.textContent = `${(performance as any).memory} MB`;\n // // Calc uncompressedSize =