{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.scss?ea15","webpack:///./src/components/TopHeader/TopHeader.scss?cac7","webpack:///./src/components/ShareModal/ShareModal.scss?026d","webpack:///./src/components/Viewer/Viewer.scss?5ec2","webpack:///./src/components/Popup/Popup.scss?7a89","webpack:///./src/views/Sandbox/Sandbox.scss?bf65","webpack:///./src/App.vue","webpack:///./src/components/TopHeader/TopHeader.vue","webpack:///./src/components/TopHeader/TopHeader.js","webpack:///./src/components/TopHeader/TopHeader.vue?ff36","webpack:///./src/App.js","webpack:///./src/App.vue?8ecf","webpack:///./src/views/Sandbox/Sandbox.vue","webpack:///./src/components/Viewer/Viewer.vue","webpack:///./src/components/EnvMapConfig/EnvMapConfig.vue","webpack:///./src/components/EnvMapConfig/EnvMapConfig.js","webpack:///./src/components/EnvMapConfig/EnvMapConfig.vue?411c","webpack:///./src/components/LightConfig/LightConfig.vue","webpack:///./src/components/LightIntensityConfig/LightIntensityConfig.vue","webpack:///./src/components/LightIntensityConfig/LightIntensityConfig.js","webpack:///./src/components/LightIntensityConfig/LightIntensityConfig.vue?6a70","webpack:///./src/components/LightConfig/LightConfig.js","webpack:///./src/components/LightConfig/LightConfig.vue?31e8","webpack:///./src/components/ShareModal/ShareModal.vue","webpack:///./src/services/AzureBlobService/AzureBlobService.js","webpack:///./src/helpers/Base64Util.js","webpack:///./src/helpers/HashUtil.js","webpack:///./src/components/ShareModal/ShareModal.js","webpack:///./src/components/ShareModal/ShareModal.vue?1351","webpack:///./src/services/PopupService/PopupService.js","webpack:///./src/components/Viewer/Viewer.js","webpack:///./src/components/Viewer/Viewer.vue?6824","webpack:///./src/components/DragAndDrop/DragAndDrop.vue","webpack:///./src/components/DragAndDrop/DragAndDrop.js","webpack:///./src/components/DragAndDrop/DragAndDrop.vue?08a5","webpack:///./src/components/Popup/Popup.vue","webpack:///./src/components/Popup/Popup.js","webpack:///./src/components/Popup/Popup.vue?389c","webpack:///./src/views/Sandbox/Sandbox.js","webpack:///./src/views/Sandbox/Sandbox.vue?aa4d","webpack:///./src/router/index.js","webpack:///./src/viewerSetup.js","webpack:///./src/store/index.js","webpack:///./src/main.js","webpack:///./src/components/DragAndDrop/DragAndDrop.scss?d5df","webpack:///./src/components/LightConfig/LightConfig.scss?935c","webpack:///./src/components/LightIntensityConfig/LightIntensityConfig.scss?2800","webpack:///./src/components/EnvMapConfig/EnvMapConfig.scss?2fe3","webpack:///./src/assets/images/globe_circle.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","__exports__","components","TopHeader","render","loadingFile","isFileLoaded","loadFile","payload","modelPayload","initialSceneProperties","sceneProperties","id","expandedSections","toggleSection","animations","animation","for","type","checkedAnimations","initialLightProperties","lightProperties","initialEnvMapProperties","envMapProperties","disabled","toggleLoop","loopEnabled","toggleAnimation","isPlaying","min","max","maxLength","currentTime","step","dragTimeline","updateShadows","createShareableLink","showModal","closeModal","sceneVariables","envMapIntensity","updateEnvMapIntensity","style","sliderBackground","envMapLoadedInterval","props","watch","handler","newValue","this","deep","intensity","toFixed","methods","viewer","Math","envmapRefreshIntensity","mounted","setInterval","clearInterval","ref","draggable","src","boundingElementLoaded","initialIntensity","lightIntensity","updateLightIntensity","lightLoadedInterval","Number","entities","directionalLight1","LightIntensityConfig","point","Vector2","cssPoint","threeDPoint","Vector3","boundEventListeners","computed","slider","$refs","boundingElement","placePointInDefaultPosition","normalize","set","x","sqrt","y","newCssPoint","copy","divideScalar","addScalar","multiplyScalar","width","left","top","updateLightPosition","UpdateLightBoundingSphere","lightPosition","position","z","display","onPointerDown","e","preventDefault","addEventListener","onPointerUp","once","onPointerMove","classList","add","removeEventListener","remove","getBoundingClientRect","boundingX","boundingY","tempPoint","clientX","clientY","subScalar","addEventListeners","removeEventListeners","newPoint","beforeUnmount","updated","finishedLoading","hasError","shareableLink","readonly","copyLink","$emit","baseUrl","queryParams","AzureBlobService","putBlob","content","metadata","callback","urlPath","xhr","XMLHttpRequest","open","setRequestHeader","entries","readyState","status","send","checkBlob","getBlob","responseType","response","getBlobMetadata","metadataKeys","getResponseHeader","b64","T","Base64Util","encodeString","string","btoa","decodeString","encodedString","atob","encodeBuffer","buffer","q","dataView","DataView","pos","byteLength","getUint8","join","decodeToBuffer","encodedData","decodedBuffer","ArrayBuffer","index","val","valb","charCodeAt","setUint8","HashUtil","SHA1","byteBuffer","crypto","subtle","digest","hash","bytes","Uint8Array","reduce","output","byte","toString","padStart","encodedModelPath","encodedProperties","File","emits","getEncodedPath","hashFile","success","navigator","clipboard","writeText","floatElements","keys","floatVariables","uIntElements","uintVariables","arrayBuffer","dataview","setFloat32","setUint32","filename","blob","Blob","then","url","present","subject","Subject","PopupService","sendMessage","message","duration","next","text","getMessage","asObservable","LightConfig","EnvMapConfig","ShareModal","executionId","timeScale","cameraPositionX","undefined","cameraPositionY","cameraPositionZ","controlsTargetX","controlsTargetY","controlsTargetZ","lightPositionX","lightPositionY","lightPositionZ","animationsSelection","oldValue","updateTimeline","forEach","pauseAnimation","getMaxTime","playAnimation","uuidv4","currentExecution","animationPromises","finishedFullAnimation","hasFullAnimationFinished","setAnimationAtTime","resetAnimation","Promise","all","detail","deltaTime","target","valueAsNumber","three","camera","controls","lightBasePosition","getAnimationsSelection","selection","setBit","includes","number","bitOffset","mask","setAnimationsSelection","selectionNumber","getBit","bitIndex","renderAssetViewer","path","URL","createObjectURL","part","invert","visible","loadenvmap","envmapRefresh","loadpart","cameraPosition","getFloat32","controlsTarget","getUint32","update","err","console","error","accept","uploadFile","event","files","handleFile","file","readFile","payloadFile","newFile","resolve","reject","reader","FileReader","readAsArrayBuffer","onload","onerror","dropArea","document","querySelector","handleFileMethod","preventDefaults","stopPropagation","highlight","unhighlight","handleDrop","dataTransfer","log","items","getAsFile","toLowerCase","endsWith","eventName","body","fadeIn","fadeOut","closePopup","FADE_DURATION","closeTimeout","showPopup","visibilityDuration","clearTimeout","setTimeout","resetVisibility","subscribe","Viewer","DragAndDrop","Popup","$route","query","fileHash","blobSuccess","metadataSuccess","scene","replaceAll","routes","component","Sandbox","router","createRouter","history","createWebHashHistory","setupViewer","viewerDomNode","manifestPath","getAttribute","initialize","hasAttribute","assetViewer","createStore","state","mutations","actions","createApp","App","use","store","mount"],"mappings":"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","file":"js/app.364f769d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./App.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./TopHeader.scss?vue&type=style&index=0&id=643921ca&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./ShareModal.scss?vue&type=style&index=0&id=ce247ab6&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./Viewer.scss?vue&type=style&index=0&id=084356e4&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./Popup.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./Sandbox.scss?vue&type=style&index=0&lang=scss\"","\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\n \r\n ThermoFisher | Immersive Technologies | EVE Sandbox\r\n \r\n\r\n\r\n\r\n\r\n","export default {\n name: 'TopHeader',\n};\n","import { render } from \"./TopHeader.vue?vue&type=template&id=643921ca&scoped=true\"\nimport script from \"./TopHeader.js?vue&type=script&lang=js\"\nexport * from \"./TopHeader.js?vue&type=script&lang=js\"\n\nimport \"./TopHeader.scss?vue&type=style&index=0&id=643921ca&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-643921ca\"]])\n\nexport default __exports__","import TopHeader from './components/TopHeader/TopHeader.vue';\r\n\r\nexport default {\r\n name: 'App',\r\n components: {\r\n TopHeader,\r\n },\r\n};\r\n","import { render } from \"./App.vue?vue&type=template&id=36e8fc7d\"\nimport script from \"./App.js?vue&type=script&lang=js\"\nexport * from \"./App.js?vue&type=script&lang=js\"\n\nimport \"./App.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n Loading...\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n Animations\r\n \r\n \r\n \r\n \r\n {{ animation }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Light\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Environment Map\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\n \n Intensity:\n {{ envMapIntensity }}\n \n \n\n\n\n\n","export default {\r\n name: 'EnvMapConfig',\r\n data() {\r\n return {\r\n sliderBackground: 'linear-gradient(to right, #1e8ae7, #1e8ae7 50%, #acacac 50%, #acacac)',\r\n envMapIntensity: null,\r\n envMapLoadedInterval: null,\r\n };\r\n },\r\n props: {\r\n initialEnvMapProperties: Object,\r\n },\r\n watch: {\r\n envMapIntensity: {\r\n handler(newValue) {\r\n this.sliderBackground = `linear-gradient(to right, #1e8ae7, #1e8ae7 ${newValue * 100}%,\r\n #acacac ${newValue * 100}%, #acacac)`;\r\n },\r\n deep: true,\r\n },\r\n initialEnvMapProperties: {\r\n handler(newValue) {\r\n this.envMapIntensity = newValue.intensity.toFixed(2);\r\n this.updateEnvMapIntensity();\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n async updateEnvMapIntensity() {\r\n if (!window.viewer) {\r\n return;\r\n }\r\n window.viewer.envMapIntensity = Math.min(Math.max(this.envMapIntensity, 0), 1);\r\n window.viewer.envmapRefreshIntensity();\r\n },\r\n },\r\n mounted() {\r\n this.envMapLoadedInterval = setInterval(() => {\r\n if (window.viewer) {\r\n this.envMapIntensity = window.viewer.envMapIntensity;\r\n clearInterval(this.envMapLoadedInterval);\r\n }\r\n }, 250);\r\n },\r\n};\r\n","import { render } from \"./EnvMapConfig.vue?vue&type=template&id=1d778cd9&scoped=true\"\nimport script from \"./EnvMapConfig.js?vue&type=script&lang=js\"\nexport * from \"./EnvMapConfig.js?vue&type=script&lang=js\"\n\nimport \"./EnvMapConfig.scss?vue&type=style&index=0&id=1d778cd9&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d778cd9\"]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\n \n Intensity:\n {{ lightIntensity }}\n \n \n\n\n\n\n","export default {\r\n name: 'LightIntensityConfig',\r\n data() {\r\n return {\r\n sliderBackground: 'linear-gradient(to right, #1e8ae7, #1e8ae7 50%, #acacac 50%, #acacac)',\r\n lightIntensity: null,\r\n lightLoadedInterval: null,\r\n };\r\n },\r\n props: {\r\n initialIntensity: Number,\r\n },\r\n watch: {\r\n lightIntensity: {\r\n handler(newValue) {\r\n this.sliderBackground = `linear-gradient(to right, #1e8ae7, #1e8ae7 ${newValue * 100}%,\r\n #acacac ${newValue * 100}%, #acacac)`;\r\n },\r\n deep: true,\r\n },\r\n initialIntensity: {\r\n handler(newValue) {\r\n this.lightIntensity = newValue.toFixed(2);\r\n this.updateLightIntensity();\r\n },\r\n deep: true,\r\n },\r\n },\r\n mounted() {\r\n this.lightLoadedInterval = setInterval(() => {\r\n if (window.viewer?.entities?.directionalLight1) {\r\n this.lightIntensity = window.viewer.entities.directionalLight1.intensity;\r\n clearInterval(this.lightLoadedInterval);\r\n }\r\n }, 250);\r\n },\r\n methods: {\r\n async updateLightIntensity() {\r\n if (!window.viewer || !window.viewer.entities.directionalLight1) {\r\n return;\r\n }\r\n window.viewer.updateLightIntensity(Math.min(Math.max(this.lightIntensity, 0), 1));\r\n },\r\n },\r\n};\r\n","import { render } from \"./LightIntensityConfig.vue?vue&type=template&id=72139d12&scoped=true\"\nimport script from \"./LightIntensityConfig.js?vue&type=script&lang=js\"\nexport * from \"./LightIntensityConfig.js?vue&type=script&lang=js\"\n\nimport \"./LightIntensityConfig.scss?vue&type=style&index=0&id=72139d12&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-72139d12\"]])\n\nexport default __exports__","import { Vector2, Vector3 } from 'three';\r\nimport LightIntensityConfig from '../LightIntensityConfig/LightIntensityConfig.vue';\r\n\r\nexport default {\r\n name: 'LightConfig',\r\n components: {\r\n LightIntensityConfig,\r\n },\r\n data() {\r\n return {\r\n point: new Vector2(),\r\n cssPoint: new Vector2(),\r\n threeDPoint: new Vector3(),\r\n boundingElementLoaded: false,\r\n boundEventListeners: false,\r\n };\r\n },\r\n props: {\r\n initialLightProperties: Object,\r\n },\r\n computed: {\r\n slider() {\r\n return this.$refs.slider;\r\n },\r\n boundingElement() {\r\n return this.$refs.boundingElement;\r\n },\r\n },\r\n watch: {\r\n boundingElementLoaded() {\r\n this.placePointInDefaultPosition();\r\n },\r\n point: {\r\n deep: true,\r\n handler(newValue) {\r\n if (newValue.length() > 1) {\r\n this.point.normalize();\r\n return;\r\n }\r\n this.threeDPoint.set(\r\n newValue.x,\r\n Math.sqrt(1 - newValue.x ** 2 - newValue.y ** 2) || 0,\r\n newValue.y,\r\n );\r\n const newCssPoint = new Vector2();\r\n newCssPoint\r\n .copy(newValue)\r\n .divideScalar(2)\r\n .addScalar(0.5)\r\n .multiplyScalar(this.boundingElement.width);\r\n this.cssPoint = newCssPoint;\r\n },\r\n },\r\n cssPoint: {\r\n deep: true,\r\n handler(newValue) {\r\n this.slider.style.left = `${newValue.x}px`;\r\n this.slider.style.top = `${newValue.y}px`;\r\n },\r\n },\r\n threeDPoint: {\r\n deep: true,\r\n handler(newValue) {\r\n if (!newValue) {\r\n return;\r\n }\r\n window.viewer.updateLightPosition(newValue);\r\n window.viewer.UpdateLightBoundingSphere();\r\n window.viewer.updateShadows();\r\n },\r\n },\r\n initialLightProperties: {\r\n deep: true,\r\n handler(newValue) {\r\n if (!newValue) {\r\n return;\r\n }\r\n const lightPosition = newValue.position;\r\n this.point = new Vector2(lightPosition.x, lightPosition.z);\r\n this.slider.style.display = 'block';\r\n },\r\n },\r\n },\r\n methods: {\r\n onPointerDown(e) {\r\n e.preventDefault();\r\n window.addEventListener('pointerup', this.onPointerUp, {\r\n once: true,\r\n });\r\n window.addEventListener('pointermove', this.onPointerMove);\r\n this.slider.classList.add('grabbing');\r\n\r\n return true;\r\n },\r\n onPointerUp() {\r\n window.removeEventListener('pointermove', this.onPointerMove);\r\n this.slider.classList.remove('grabbing');\r\n },\r\n onPointerMove(e) {\r\n const { x: boundingX, y: boundingY } = this.boundingElement.getBoundingClientRect();\r\n const tempPoint = new Vector2();\r\n tempPoint\r\n .set(e.clientX - boundingX, e.clientY - boundingY)\r\n .divideScalar(this.boundingElement.width)\r\n .subScalar(0.5)\r\n .multiplyScalar(2);\r\n this.point = tempPoint;\r\n },\r\n addEventListeners() {\r\n this.slider.addEventListener('pointerdown', this.onPointerDown);\r\n this.boundEventListeners = true;\r\n },\r\n removeEventListeners() {\r\n if (this.boundEventListeners) {\r\n this.slider.removeEventListener('pointerdown', this.onPointerDown);\r\n this.boundEventListeners = false;\r\n }\r\n },\r\n placePointInDefaultPosition() {\r\n if (this.boundingElementLoaded) {\r\n const newPoint = new Vector2(0, 0);\r\n this.slider.style.display = 'block';\r\n this.point = newPoint;\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.removeEventListeners();\r\n this.addEventListeners();\r\n if (this.boundingElementLoaded) {\r\n this.placePointInDefaultPosition();\r\n }\r\n },\r\n beforeUnmount() {\r\n this.removeEventListeners();\r\n },\r\n updated() {\r\n this.removeEventListeners();\r\n this.addEventListeners();\r\n },\r\n};\r\n","import { render } from \"./LightConfig.vue?vue&type=template&id=63d199fc&scoped=true\"\nimport script from \"./LightConfig.js?vue&type=script&lang=js\"\nexport * from \"./LightConfig.js?vue&type=script&lang=js\"\n\nimport \"./LightConfig.scss?vue&type=style&index=0&id=63d199fc&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-63d199fc\"]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n There was an error in getting the shareable link. Please try again.\r\n \r\n \r\n \r\n You can now share the current scene with the following link:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","const baseUrl = 'https://evesandboxstorage.blob.core.windows.net/uploads';\r\nconst queryParams = 'sp=racwd&st=2022-01-20T16:33:46Z&se=2022-12-02T00:33:46Z&spr=https&sv=2020-08-04&sr=c&sig=jlWpB58t1GgL6EqLKkdoDP7VNkz%2BKjPOK5uPsuG24Ck%3D';\r\n\r\nexport const AzureBlobService = {\r\n putBlob(name, content, metadata, callback) {\r\n const urlPath = `${baseUrl}/${name}.glb?${queryParams}`;\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('PUT', urlPath, true);\r\n xhr.setRequestHeader('Content-Type', 'model/gltf-binary');\r\n xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');\r\n for (const [key, value] of Object.entries(metadata)) {\r\n xhr.setRequestHeader(`x-ms-meta-${key}`, value);\r\n }\r\n\r\n xhr.addEventListener('readystatechange', () => {\r\n if (xhr.readyState === 4 && xhr.status === 201) {\r\n callback(name, true);\r\n } else if (xhr.readyState === 4 && xhr.status !== 200) {\r\n callback('', false);\r\n }\r\n });\r\n\r\n xhr.send(content);\r\n },\r\n checkBlob(name, callback) {\r\n const urlPath = `${baseUrl}/${name}.glb?${queryParams}`;\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', urlPath, true);\r\n\r\n xhr.addEventListener('readystatechange', () => {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n callback(name, true);\r\n } else if (xhr.readyState === 4 && xhr.status !== 200) {\r\n callback('', false);\r\n }\r\n });\r\n\r\n xhr.send();\r\n },\r\n getBlob(name, callback) {\r\n const urlPath = `${baseUrl}/${name}.glb?${queryParams}`;\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', urlPath, true);\r\n xhr.responseType = 'blob';\r\n\r\n xhr.addEventListener('readystatechange', () => {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n callback(xhr.response, true);\r\n } else if (xhr.readyState === 4 && xhr.status !== 200) {\r\n callback(null, false);\r\n }\r\n });\r\n\r\n xhr.send();\r\n },\r\n getBlobMetadata(name, metadataKeys, callback) {\r\n const urlPath = `${baseUrl}/${name}.glb?comp=metadata&${queryParams}`;\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', urlPath, true);\r\n\r\n xhr.addEventListener('readystatechange', () => {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n const metadata = {};\r\n for (let i = 0; i < metadataKeys.length; i++) {\r\n metadata[metadataKeys[i]] = xhr.getResponseHeader(`x-ms-meta-${metadataKeys[i]}`);\r\n }\r\n callback(metadata, true);\r\n } else if (xhr.readyState === 4 && xhr.status !== 200) {\r\n callback({}, false);\r\n }\r\n });\r\n\r\n xhr.send();\r\n },\r\n};\r\n","const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\nconst T = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,\r\n -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3,\r\n 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1,\r\n -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r\n 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\r\n\r\nexport const Base64Util = {\r\n encodeString(string) {\r\n return btoa(string);\r\n },\r\n decodeString(encodedString) {\r\n return atob(encodedString);\r\n },\r\n encodeBuffer(buffer) {\r\n const result = [];\r\n const dataView = new DataView(buffer, 0);\r\n let i;\r\n let q;\r\n let pos = 0;\r\n if (dataView.byteLength === 1) {\r\n i = 0;\r\n result[pos++] = b64[(dataView.getUint8(i) >> 2) & 0x3F];\r\n q = (dataView.getUint8(i++) & 0x03) << 4;\r\n result[pos++] = b64[q | ((dataView.getUint8(i) & 0xF0) >> 4)];\r\n result[pos++] = '=';\r\n result[pos++] = '=';\r\n } else {\r\n for (i = 0; i < dataView.byteLength - 2; i++) {\r\n result[pos++] = b64[(dataView.getUint8(i) >> 2) & 0x3F];\r\n q = (dataView.getUint8(i++) & 0x03) << 4;\r\n result[pos++] = b64[q | ((dataView.getUint8(i) & 0xF0) >> 4)];\r\n q = (dataView.getUint8(i++) & 0x0F) << 2;\r\n result[pos++] = b64[q | ((dataView.getUint8(i) & 0xC0) >> 6)];\r\n result[pos++] = b64[dataView.getUint8(i) & 0x3F];\r\n }\r\n if (i < dataView.byteLength) {\r\n result[pos++] = b64[(dataView.getUint8(i) >> 2) & 0x3F];\r\n if (i === (dataView.byteLength - 1)) {\r\n result[pos++] = b64[(dataView.getUint8(i) & 0x3) << 4];\r\n result[pos++] = '=';\r\n } else {\r\n q = (dataView.getUint8(i++) & 0x03) << 4;\r\n result[pos++] = b64[q | ((dataView.getUint8(i) & 0xF0) >> 4)];\r\n result[pos++] = b64[(dataView.getUint8(i) & 0xF) << 2];\r\n }\r\n result[pos++] = '=';\r\n }\r\n }\r\n return result.join('');\r\n },\r\n decodeToBuffer(encodedData, length) {\r\n const decodedBuffer = new ArrayBuffer(length);\r\n const dataView = new DataView(decodedBuffer, 0);\r\n let index = 0;\r\n let val = 0;\r\n let valb = -8;\r\n for (let i = 0; i < encodedData.length; i++) {\r\n if (T[encodedData.charCodeAt(i)] === -1) {\r\n break;\r\n }\r\n val = (val << 6) + T[encodedData.charCodeAt(i)];\r\n valb += 6;\r\n if (valb >= 0) {\r\n dataView.setUint8(index++, (val >> valb) & 0xFF);\r\n valb -= 8;\r\n }\r\n }\r\n return decodedBuffer;\r\n },\r\n};\r\n","export const HashUtil = {\r\n /**\r\n * @return {number}\r\n */\r\n async SHA1(byteBuffer) {\r\n try {\r\n const hash = await crypto.subtle.digest('SHA-1', byteBuffer);\r\n const bytes = new Uint8Array(hash);\r\n\r\n return bytes.reduce(\r\n (output, byte) => (output += byte.toString(16).padStart(2, '0')),\r\n );\r\n } catch (err) {\r\n return '00';\r\n }\r\n },\r\n};\r\n","import { AzureBlobService } from '../../services/AzureBlobService/AzureBlobService';\r\nimport { Base64Util } from '../../helpers/Base64Util';\r\nimport { HashUtil } from '../../helpers/HashUtil';\r\n\r\nexport default {\r\n name: 'ShareModal',\r\n data() {\r\n return {\r\n encodedModelPath: '',\r\n encodedProperties: '',\r\n shareableLink: '',\r\n finishedLoading: false,\r\n hasError: false,\r\n };\r\n },\r\n props: {\r\n sceneVariables: Object,\r\n payload: File,\r\n },\r\n emits: [\r\n 'close',\r\n ],\r\n methods: {\r\n getEncodedPath(hashFile, success) {\r\n if (success) {\r\n this.encodedModelPath = Base64Util.encodeString(hashFile);\r\n this.shareableLink = `https://evesandbox.z13.web.core.windows.net/#/?file=${this.encodedModelPath}&scene=${this.encodedProperties}`;\r\n } else {\r\n this.hasError = true;\r\n }\r\n this.finishedLoading = true;\r\n },\r\n copyLink() {\r\n navigator.clipboard.writeText(this.shareableLink);\r\n },\r\n },\r\n mounted() {\r\n const floatElements = Object.keys(this.sceneVariables.floatVariables);\r\n const uIntElements = Object.keys(this.sceneVariables.uintVariables);\r\n const arrayBuffer = new ArrayBuffer((floatElements.length + uIntElements.length) * 4);\r\n const dataview = new DataView(arrayBuffer, 0);\r\n for (let i = 0; i < floatElements.length; i++) {\r\n dataview.setFloat32(i * 4, this.sceneVariables.floatVariables[floatElements[i]], true);\r\n }\r\n for (let i = 0; i < uIntElements.length; i++) {\r\n dataview.setUint32((floatElements.length + i) * 4,\r\n this.sceneVariables.uintVariables[uIntElements[i]], true);\r\n }\r\n this.encodedProperties = Base64Util.encodeBuffer(arrayBuffer);\r\n const metadata = {\r\n filename: this.payload.name,\r\n };\r\n const blob = new Blob([this.payload.content]);\r\n blob.arrayBuffer().then((buffer) => {\r\n HashUtil.SHA1(buffer).then((hash) => {\r\n AzureBlobService.checkBlob(hash, (url, present) => {\r\n if (!present) {\r\n AzureBlobService.putBlob(hash, blob, metadata, this.getEncodedPath);\r\n } else {\r\n this.getEncodedPath(hash, true);\r\n }\r\n });\r\n });\r\n });\r\n },\r\n};\r\n","import { render } from \"./ShareModal.vue?vue&type=template&id=ce247ab6&scoped=true\"\nimport script from \"./ShareModal.js?vue&type=script&lang=js\"\nexport * from \"./ShareModal.js?vue&type=script&lang=js\"\n\nimport \"./ShareModal.scss?vue&type=style&index=0&id=ce247ab6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ce247ab6\"]])\n\nexport default __exports__","import { Subject } from 'rxjs';\r\n\r\nconst subject = new Subject();\r\n\r\nexport const PopupService = {\r\n sendMessage: (message, duration) => subject.next({ text: message, duration }),\r\n getMessage: () => subject.asObservable(),\r\n};\r\n","import { v4 as uuidv4 } from 'uuid';\nimport EnvMapConfig from '../EnvMapConfig/EnvMapConfig.vue';\nimport LightConfig from '../LightConfig/LightConfig.vue';\nimport ShareModal from '../ShareModal/ShareModal.vue';\nimport { PopupService } from '../../services/PopupService/PopupService';\n\nexport default {\n name: 'Viewer',\n components: {\n LightConfig,\n EnvMapConfig,\n ShareModal,\n },\n data() {\n return {\n animations: [],\n checkedAnimations: [],\n isPlaying: false,\n loopEnabled: false,\n executionId: '',\n maxLength: 0,\n currentTime: 0,\n timeScale: 2,\n expandedSections: [true, true, true],\n showModal: false,\n sceneVariables: {\n floatVariables: {\n cameraPositionX: undefined,\n cameraPositionY: undefined,\n cameraPositionZ: undefined,\n controlsTargetX: undefined,\n controlsTargetY: undefined,\n controlsTargetZ: undefined,\n lightPositionX: undefined,\n lightPositionY: undefined,\n lightPositionZ: undefined,\n lightIntensity: undefined,\n envMapIntensity: undefined,\n },\n uintVariables: {\n animationsSelection: undefined,\n },\n },\n lightProperties: null,\n envMapProperties: null,\n };\n },\n props: {\n payload: File,\n initialSceneProperties: ArrayBuffer,\n },\n watch: {\n checkedAnimations: {\n handler(newValue, oldValue) {\n if (this.isPlaying) {\n this.executionId = '';\n window.viewer.removeEventListener('step-update', this.updateTimeline);\n oldValue.forEach((animation) => {\n window.viewer.pauseAnimation(animation);\n });\n this.isPlaying = false;\n }\n this.maxLength = window.viewer.getMaxTime(newValue);\n },\n deep: true,\n },\n },\n methods: {\n toggleAnimation(isPlaying) {\n if (!isPlaying) {\n this.playAnimation(uuidv4());\n } else {\n this.pauseAnimation();\n }\n this.isPlaying = !isPlaying;\n },\n toggleLoop() {\n this.loopEnabled = !this.loopEnabled;\n },\n playAnimation(currentExecution) {\n this.executionId = currentExecution;\n const animationPromises = [];\n const finishedFullAnimation = window.viewer.hasFullAnimationFinished(this.checkedAnimations);\n if (finishedFullAnimation) {\n this.currentTime = 0;\n }\n window.viewer.addEventListener('step-update', this.updateTimeline);\n this.checkedAnimations.forEach((animation, index) => {\n window.viewer.setAnimationAtTime(animation, this.currentTime);\n if (finishedFullAnimation) {\n window.viewer.resetAnimation(animation);\n }\n animationPromises[index] = window.viewer.playAnimation(animation, this.timeScale);\n });\n this.updateShadows();\n Promise.all(animationPromises).then(() => {\n if (currentExecution !== this.executionId) {\n return;\n }\n this.currentTime = this.maxLength;\n window.viewer.removeEventListener('step-update', this.updateTimeline);\n if (this.loopEnabled) {\n this.playAnimation(currentExecution);\n return;\n }\n this.isPlaying = false;\n });\n },\n pauseAnimation() {\n this.executionId = '';\n window.viewer.removeEventListener('step-update', this.updateTimeline);\n this.checkedAnimations.forEach((animation) => {\n window.viewer.pauseAnimation(animation);\n });\n },\n updateTimeline(e) {\n this.currentTime += e.detail.deltaTime * this.timeScale;\n if (this.currentTime > this.maxLength) {\n this.currentTime = this.maxLength;\n }\n },\n dragTimeline(e) {\n if (this.isPlaying) {\n this.pauseAnimation();\n this.isPlaying = false;\n }\n this.currentTime = e.target.valueAsNumber;\n if (this.maxLength - e.target.valueAsNumber < 0.0001) {\n this.currentTime = this.maxLength;\n }\n this.checkedAnimations.forEach((animation) => {\n window.viewer.setAnimationAtTime(animation, this.currentTime);\n });\n },\n updateShadows() {\n window.viewer.updateShadows();\n },\n toggleSection(index) {\n this.expandedSections[index] = !this.expandedSections[index];\n },\n createShareableLink() {\n this.sceneVariables.floatVariables = {\n cameraPositionX: window.viewer.three.camera.position.x,\n cameraPositionY: window.viewer.three.camera.position.y,\n cameraPositionZ: window.viewer.three.camera.position.z,\n controlsTargetX: window.viewer.controls.target.x,\n controlsTargetY: window.viewer.controls.target.y,\n controlsTargetZ: window.viewer.controls.target.z,\n lightPositionX: window.viewer.lightBasePosition.x,\n lightPositionY: window.viewer.lightBasePosition.y,\n lightPositionZ: window.viewer.lightBasePosition.z,\n lightIntensity: window.viewer.entities.directionalLight1.intensity,\n envMapIntensity: window.viewer.envMapIntensity,\n };\n this.sceneVariables.uintVariables = {\n animationsSelection: this.getAnimationsSelection(),\n };\n this.showModal = true;\n },\n closeModal() {\n this.showModal = false;\n },\n getAnimationsSelection() {\n let selection = 0;\n for (let i = 0; i < this.animations.length; i++) {\n selection = this.setBit(selection, i, this.checkedAnimations.includes(this.animations[i]));\n }\n return selection;\n },\n setBit(number, bitOffset, value) {\n const mask = 1 << bitOffset;\n return (number & ~mask) | (value << bitOffset);\n },\n setAnimationsSelection(selectionNumber) {\n this.checkedAnimations = [];\n for (let i = 0; i < this.animations.length; i++) {\n if (this.getBit(selectionNumber, i)) {\n this.checkedAnimations.push(this.animations[i]);\n }\n }\n },\n getBit(number, bitIndex) {\n const mask = 1 << bitIndex;\n return (number & mask) >> bitIndex;\n },\n },\n mounted() {\n window.renderAssetViewer();\n const { name, content } = this.payload;\n const path = URL.createObjectURL(new Blob([content]));\n const part = {\n name,\n path,\n mode: 'BASE',\n invert: false,\n visible: true,\n };\n window.viewer.loadenvmap('./envmap/EmptyLab_AboveTable.hdr').then(() => {\n window.viewer.envmapRefresh();\n });\n window.viewer.loadpart(part, () => {}, (animations) => {\n this.animations = Object.keys(animations);\n window.viewer.envmapRefresh();\n if (this.initialSceneProperties) {\n try {\n const dataview = new DataView(this.initialSceneProperties, 0);\n const cameraPosition = {\n x: dataview.getFloat32(0, true),\n y: dataview.getFloat32(4, true),\n z: dataview.getFloat32(8, true),\n };\n const controlsTarget = {\n x: dataview.getFloat32(12, true),\n y: dataview.getFloat32(16, true),\n z: dataview.getFloat32(20, true),\n };\n const lightPosition = {\n x: dataview.getFloat32(24, true),\n y: dataview.getFloat32(28, true),\n z: dataview.getFloat32(32, true),\n };\n const lightIntensity = dataview.getFloat32(36, true);\n const envMapIntensity = dataview.getFloat32(40, true);\n const animationsSelection = dataview.getUint32(44, true);\n\n window.viewer.three.camera.position.x = cameraPosition.x;\n window.viewer.three.camera.position.y = cameraPosition.y;\n window.viewer.three.camera.position.z = cameraPosition.z;\n window.viewer.controls.target.x = controlsTarget.x;\n window.viewer.controls.target.y = controlsTarget.y;\n window.viewer.controls.target.z = controlsTarget.z;\n window.viewer.controls.update();\n this.lightProperties = {\n position: lightPosition,\n intensity: lightIntensity,\n };\n this.envMapProperties = {\n intensity: envMapIntensity,\n };\n this.setAnimationsSelection(animationsSelection);\n } catch (err) {\n console.error(err);\n PopupService.sendMessage('Failed loading the established scene properties. Default scene will be loaded', 5000);\n }\n }\n });\n },\n};\n","import { render } from \"./Viewer.vue?vue&type=template&id=084356e4&scoped=true\"\nimport script from \"./Viewer.js?vue&type=script&lang=js\"\nexport * from \"./Viewer.js?vue&type=script&lang=js\"\n\nimport \"./Viewer.scss?vue&type=style&index=0&id=084356e4&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-084356e4\"]])\n\nexport default __exports__","\n \n \n \n \n Drag files to upload, or\n \n Choose file\n \n \n \n\n\n\n\n","export default {\n name: 'DragAndDrop',\n emits: [\n 'fileUploaded',\n ],\n methods: {\n uploadFile(event) {\n if (event.target.files.length === 1) {\n this.handleFile(event.target.files[0]);\n }\n },\n async handleFile(file) {\n const payloadFile = await this.readFile(file);\n this.$emit('fileUploaded', payloadFile);\n },\n readFile(file) {\n const newFile = file;\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = (e) => {\n newFile.content = e.target.result;\n resolve(newFile);\n };\n\n reader.onerror = (e) => {\n reject(e);\n };\n });\n },\n },\n mounted() {\n const dropArea = document.querySelector('.drop-zone');\n const handleFileMethod = this.handleFile;\n if (dropArea !== null) {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n dropArea.addEventListener(eventName, preventDefaults, false);\n document.body.addEventListener(eventName, preventDefaults, false);\n });\n ['dragenter', 'dragover'].forEach((eventName) => {\n dropArea.addEventListener(eventName, highlight, false);\n });\n ['dragleave', 'drop'].forEach((eventName) => {\n dropArea.addEventListener(eventName, unhighlight, false);\n });\n dropArea.addEventListener('drop', handleDrop, false);\n }\n\n function preventDefaults(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n function highlight() {\n dropArea.classList.add('drop-zone-highlight');\n }\n\n function unhighlight() {\n dropArea.classList.remove('drop-zone-highlight');\n }\n\n function handleDrop(e) {\n const files = e.dataTransfer;\n if (files.length > 1) {\n console.log('Do not send more than one file');\n return;\n }\n const file = e.dataTransfer.items[0].getAsFile();\n if (!(file.name.toLowerCase().endsWith('.glb') || file.name.toLowerCase().endsWith('.gltf'))) {\n console.log('Only send GLB/GLTF files');\n return;\n }\n handleFileMethod(file);\n }\n },\n};\n","import { render } from \"./DragAndDrop.vue?vue&type=template&id=b20b4138&scoped=true\"\nimport script from \"./DragAndDrop.js?vue&type=script&lang=js\"\nexport * from \"./DragAndDrop.js?vue&type=script&lang=js\"\n\nimport \"./DragAndDrop.scss?vue&type=style&index=0&id=b20b4138&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b20b4138\"]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n Error: \r\n {{ text }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { PopupService } from '../../services/PopupService/PopupService';\r\n\r\nconst FADE_DURATION = 750;\r\n\r\nexport default {\r\n name: 'Popup',\r\n data() {\r\n return {\r\n fadeIn: false,\r\n fadeOut: false,\r\n text: '',\r\n closeTimeout: null,\r\n };\r\n },\r\n methods: {\r\n showPopup(visibilityDuration) {\r\n clearTimeout(this.closeTimeout);\r\n this.fadeIn = true;\r\n this.closeTimeout = setTimeout(() => this.closePopup(), visibilityDuration);\r\n },\r\n closePopup() {\r\n clearTimeout(this.closeTimeout);\r\n this.fadeOut = true;\r\n this.closeTimeout = setTimeout(() => this.resetVisibility(), FADE_DURATION);\r\n },\r\n resetVisibility() {\r\n this.fadeIn = false;\r\n this.fadeOut = false;\r\n },\r\n },\r\n mounted() {\r\n PopupService.getMessage().subscribe((message) => {\r\n this.text = message.text;\r\n clearTimeout(this.closeTimeout);\r\n this.resetVisibility();\r\n this.showPopup(message.duration);\r\n });\r\n },\r\n};\r\n","import { render } from \"./Popup.vue?vue&type=template&id=53540cf9\"\nimport script from \"./Popup.js?vue&type=script&lang=js\"\nexport * from \"./Popup.js?vue&type=script&lang=js\"\n\nimport \"./Popup.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Viewer from '@/components/Viewer/Viewer.vue';\r\nimport DragAndDrop from '@/components/DragAndDrop/DragAndDrop.vue';\r\nimport Popup from '@/components/Popup/Popup.vue';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { Base64Util } from '../../helpers/Base64Util';\r\nimport { AzureBlobService } from '../../services/AzureBlobService/AzureBlobService';\r\nimport { PopupService } from '../../services/PopupService/PopupService';\r\n\r\nexport default {\r\n name: 'Sandbox',\r\n components: {\r\n Viewer,\r\n DragAndDrop,\r\n Popup,\r\n },\r\n data() {\r\n return {\r\n isFileLoaded: false,\r\n modelPayload: null,\r\n sceneProperties: null,\r\n loadingFile: false,\r\n };\r\n },\r\n methods: {\r\n loadFile(file) {\r\n this.modelPayload = file;\r\n this.isFileLoaded = true;\r\n },\r\n },\r\n mounted() {\r\n if (this.$route.query.file) {\r\n this.loadingFile = true;\r\n try {\r\n const fileHash = Base64Util.decodeString(this.$route.query.file);\r\n AzureBlobService.getBlob(fileHash, (response, blobSuccess) => {\r\n if (blobSuccess) {\r\n AzureBlobService.getBlobMetadata(fileHash, ['filename'], (metadata, metadataSuccess) => {\r\n const file = new File([response], metadataSuccess ? metadata.filename : uuidv4());\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(file);\r\n reader.onload = (e) => {\r\n file.content = e.target.result;\r\n this.modelPayload = file;\r\n this.isFileLoaded = true;\r\n this.loadingFile = false;\r\n };\r\n });\r\n } else {\r\n PopupService.sendMessage('Failed loading the file', 5000);\r\n this.loadingFile = false;\r\n }\r\n });\r\n } catch (err) {\r\n console.error(err);\r\n PopupService.sendMessage('Failed loading the file', 5000);\r\n this.loadingFile = false;\r\n return;\r\n }\r\n }\r\n if (this.$route.query.scene) {\r\n try {\r\n this.sceneProperties = Base64Util.decodeToBuffer(this.$route.query.scene.replaceAll(' ', '+'), 48);\r\n } catch (err) {\r\n console.error(err);\r\n PopupService.sendMessage('Failed decoding the established scene properties', 5000);\r\n }\r\n }\r\n },\r\n};\r\n","import { render } from \"./Sandbox.vue?vue&type=template&id=7c39a2af\"\nimport script from \"./Sandbox.js?vue&type=script&lang=js\"\nexport * from \"./Sandbox.js?vue&type=script&lang=js\"\n\nimport \"./Sandbox.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/mnt/c/Users/alejandro.favela/Documents/Projects/ImmTech/immtech-eve-sandbox/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHashHistory } from 'vue-router';\r\nimport Sandbox from '@/views/Sandbox/Sandbox.vue';\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n name: 'Sandbox',\r\n component: Sandbox,\r\n // route level code-splitting\r\n // this generates a separate chunk (about.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n // component: () => import(/* webpackChunkName: \"about\" */ '../views/Dashboard/Dashboard.vue'),\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHashHistory(),\r\n routes,\r\n});\r\n\r\nexport default router;\r\n","import { Viewer } from 'immtech-asset-viewer';\n\nexport function setupViewer() {\n function renderAssetViewer(target = '.assetViewer') {\n const viewerDomNode = document.querySelector(target);\n\n if (!viewerDomNode) {\n console.error('No assetViewer node found.');\n return;\n }\n\n const manifestPath = viewerDomNode.getAttribute('manifestPath');\n const viewer = new Viewer(viewerDomNode, manifestPath);\n\n viewer.initialize();\n console.log('Viewer initialized');\n\n if (viewerDomNode.hasAttribute('id')) {\n window[viewerDomNode.getAttribute('id')] = viewer;\n } else {\n window.assetViewer = viewer;\n }\n }\n\n window.renderAssetViewer = renderAssetViewer;\n}\n","import { createStore } from 'vuex';\n\nexport default createStore({\n state: {\n },\n mutations: {\n },\n actions: {\n },\n modules: {\n },\n});\n","import { createApp } from 'vue';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport { setupViewer } from './viewerSetup';\r\nimport store from './store';\r\n\r\nsetupViewer();\r\n\r\ncreateApp(App).use(store).use(router).mount('#app');\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./DragAndDrop.scss?vue&type=style&index=0&id=b20b4138&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./LightConfig.scss?vue&type=style&index=0&id=63d199fc&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./LightIntensityConfig.scss?vue&type=style&index=0&id=72139d12&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./EnvMapConfig.scss?vue&type=style&index=0&id=1d778cd9&scoped=true&lang=scss\"","module.exports = __webpack_public_path__ + \"img/globe_circle.b0de7cad.svg\";"],"sourceRoot":""}