New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@wannaby/wanna-model-viewer

Package Overview
Dependencies
Maintainers
3
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wannaby/wanna-model-viewer - npm Package Compare versions

Comparing version 0.0.6 to 0.0.7

2

dist/index.js

@@ -1,2 +0,2 @@

function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=e(require("react")),r=e(require("prop-types")),n=e(require("query-string")),s=require("three/examples/jsm/WebGL"),o=e(require("jszip")),i=e(require("axios")),a=require("simple-dropzone"),l=require("three"),h=e(require("glob-to-regexp")),c=require("gltf-validator"),d=e(require("three/examples/jsm/libs/stats.module")),u=require("three/examples/jsm/loaders/GLTFLoader"),p=require("three/examples/jsm/controls/OrbitControls"),m=require("three/examples/jsm/loaders/RGBELoader"),f=require("dat.gui");function g(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var v=function(e){function r(t){var r;return(r=e.call(this,t)||this).state={downloadInProgress:!1,downloadProgress:0,error:""},r}g(r,e);var n=r.prototype;return n.componentDidMount=function(){try{return Promise.resolve(this.downloadFile()).then(function(){})}catch(e){return Promise.reject(e)}},n.downloadFile=function(){try{var e=this,t=e.props,r=t.url,n=t.onLoadFiles,s=new o;e.setState({downloadInProgress:!0,downloadProgress:0,error:""});var a=function(t,o){try{var a=Promise.resolve(i.get(r,{onDownloadProgress:function(t){var r=Math.round(100*t.loaded/t.total);e.setState({downloadProgress:r})},responseType:"blob"})).then(function(t){return Promise.resolve(s.loadAsync(t.data)).then(function(t){var r=new Map,s=Object.values(t.files).map(function(e){try{var n=e.name,s=function(){if(!n.startsWith("__MACOSX/"))return Promise.resolve(t.file(e.name).async("blob")).then(function(e){e.name=n,r.set(n,e)})}();return Promise.resolve(s&&s.then?s.then(function(){}):void 0)}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(s)).then(function(){e.setState({downloadInProgress:!1}),n(r)})})})}catch(e){return o(e)}return a&&a.then?a.then(void 0,o):a}(0,function(t){e.setState({error:t.message,downloadInProgress:!1})});return Promise.resolve(a&&a.then?a.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.render=function(){var e=this.state,r=e.downloadInProgress,n=e.downloadProgress,s=e.error;return t.createElement("div",{className:"_wfEBQ"},s&&t.createElement("div",{className:"mv-error"},"Error: ",s),r&&t.createElement("div",{className:"_wfEBQ"},n&&n>0?t.createElement("div",{className:"_puu7g"},"Downloading: ",n," %"):null))},r}(t.Component);v.propTypes={onLoadFiles:r.func.isRequired,url:r.string.isRequired};var E=function(e){function r(t){var r;return(r=e.call(this,t)||this).dropEl=null,r.inputEl=null,r.state={showSpinner:!1},r}g(r,e);var n=r.prototype;return n.componentDidMount=function(){var e=this,t=this.props.onLoadFiles,r=new a.SimpleDropzone(this.dropEl,this.inputEl);r.on("drop",function(e){return t(e.files)}),r.on("dropstart",function(){return e.setState({showSpinner:!0})}),r.on("droperror",function(){return e.setState({showSpinner:!1})})},n.render=function(){var e=this,r=this.state.showSpinner;return t.createElement("main",{className:"_1aO4D"},t.createElement("div",{className:"_2Z2uK",ref:function(t){e.dropEl=t}},t.createElement("div",{className:"_3-R8b"},t.createElement("p",null,"Drag GLTF file, folder or ZIP archive here")),t.createElement("div",{className:"_2S_9r"},t.createElement("input",{multiple:"",name:"file-input[]",ref:function(t){e.inputEl=t},type:"file"}),t.createElement("label",{htmlFor:"file-input",onClick:function(){e.inputEl.click()}},t.createElement("svg",{height:"17",viewBox:"0 0 20 17",width:"20",xmlns:"http://www.w3.org/2000/svg"},t.createElement("path",{d:"M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"})),t.createElement("span",null,"Upload")))),r&&t.createElement("div",{className:"_zvUkU"}))},r}(t.Component);E.propTypes={onLoadFiles:r.func.isRequired};var y={version:"0.0.2",generators:[{generator:"babylon.js glTF exporter for 3ds max 2017 *",name:"3DS Max exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Khronos Blender glTF 2.0 exporter",name:"Blender exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter",bugsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter/issues"},{generator:"blendergltf *",name:"Blender exporter",author:"Kupoman",type:"EXPORTER",docsURL:"https://github.com/Kupoman/blendergltf",bugsURL:"https://github.com/Kupoman/blendergltf/issues"},{generator:"COLLADA2GLTF",name:"COLLADA converter",author:"Khronos Group",type:"CONVERTER",docsURL:"https://github.com/KhronosGroup/COLLADA2GLTF",bugsURL:"https://github.com/KhronosGroup/COLLADA2GLTF/issues"},{generator:"FBX2glTF *",name:"FBX converter",author:"Facebook",type:"CONVERTER",docsURL:"https://github.com/facebookincubator/FBX2glTF",bugsURL:"https://github.com/facebookincubator/FBX2glTF/issues"},{generator:"Maya2glTF *",name:"Maya exporter",author:"Wonder Media Group",type:"EXPORTER",docsURL:"https://github.com/WonderMediaProductions/Maya2glTF",bugsURL:"https://github.com/WonderMediaProductions/Maya2glTF/issues"},{generator:"babylon.js glTF exporter for maya 2018 *",name:"Maya exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Microsoft GLTF Exporter *",name:"Microsoft exporter",author:"Microsoft",type:"EXPORTER",bugsText:"From the Feedback Hub on Windows, use the *Apps > Paint 3D* categorise."},{generator:"obj2gltf",name:"OBJ converter",author:"Analytical Graphics",type:"CONVERTER",docsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF",bugsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF/issues"},{generator:"Sketchfab (OSG glTF plugin)",name:"Sketchfab",author:"Sketchfab",type:"OTHER",docsURL:"https://sketchfab.com",bugsURL:"https://help.sketchfab.com/hc/en-us/articles/360000048623-Reporting-a-bug"},{generator:"Sketchup glTF Exporter by Centaur",name:"Sketchup exporter",author:"Centaur",type:"EXPORTER",docsURL:"https://extensions.sketchup.com/content/gltf-exporter"},{generator:"glTF Tools for Unity",name:"Unity exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/UnityGLTF",bugsURL:"https://github.com/KhronosGroup/UnityGLTF/issues"},{generator:"THREE.GLTFExporter",name:"three.js exporter",author:"The three.js authors",type:"EXPORTER",docsURL:"https://threejs.org/docs/#examples/exporters/GLTFExporter",bugsURL:"https://github.com/mrdoob/three.js/issues"}]},x=["Errors","Warnings","Infos","Hints"],C=function(){function e(e){var t=e.onError;this.handleSuccess=e.onSuccess,this.handleError=t}var t=e.prototype;return t.validate=function(e,t,r,n){var s=this;return fetch(e).then(function(e){return e.arrayBuffer()}).then(function(n){return c.validateBytes(new Uint8Array(n),{externalResourceFunction:function(n){return s.resolveExternalResource(n,e,t,r)}})}).then(function(e){return s.setReport(e,n)}).catch(function(e){return s.setReportException(e)})},t.resolveExternalResource=function(e,t,r,n){var s,o=l.LoaderUtils.extractUrlBase(t),i=r+decodeURI(e).replace(o,"").replace(/^(\.?\/)/,"");if(n.has(i)){var a=n.get(i);s=URL.createObjectURL(a)}return fetch(s||o+e).then(function(e){return e.arrayBuffer()}).then(function(e){return s&&URL.revokeObjectURL(s),new Uint8Array(e)})},t.setReport=function(e,t){var r,n,s=e&&e.info&&e.info.generator||"",o=y.generators.find(function(e){return-1===e.generator.indexOf("*")?e.generator===s:h(e.generator).test(s)});o&&o.name!==o.author&&(o.name=o.name+" by "+o.author),e.generator=o,e.issues.maxSeverity=-1,x.forEach(function(t,r){e.issues["num"+t]>0&&-1===e.issues.maxSeverity&&(e.issues.maxSeverity=r)}),e.errors=e.issues.messages.filter(function(e){return 0===e.severity}),e.warnings=e.issues.messages.filter(function(e){return 1===e.severity}),e.infos=e.issues.messages.filter(function(e){return 2===e.severity}),e.hints=e.issues.messages.filter(function(e){return 3===e.severity}),n={ACCESSOR_NON_UNIT:{message:"{count} accessor elements not of unit length: 0. [AGGREGATED]",pointerCounts:{}},ACCESSOR_ANIMATION_INPUT_NON_INCREASING:{message:"{count} animation input accessor elements not in ascending order. [AGGREGATED]",pointerCounts:{}}},(r=e).errors.forEach(function(e){n[e.code]&&(n[e.code].pointerCounts[e.pointer]||(n[e.code].pointerCounts[e.pointer]=0),n[e.code].pointerCounts[e.pointer]++)}),r.errors=r.errors.filter(function(e){return!n[e.code]||!n[e.code].pointerCounts[e.pointer]||n[e.code].pointerCounts[e.pointer]<2}),Object.keys(n).forEach(function(e){Object.keys(n[e].pointerCounts).forEach(function(t){r.errors.push({code:e,pointer:t,message:n[e].message.replace("{count}",n[e].pointerCounts[t])})})}),this.report=e,this.setResponse(t),this.handleSuccess(e)},t.setResponse=function(e){var t=e&&e.parser&&e.parser.json;if(t&&t.asset&&t.asset.extras){var r=t.asset.extras;this.report.info.extras={},r.author&&(this.report.info.extras.author=w(b(r.author))),r.license&&(this.report.info.extras.license=w(b(r.license))),r.source&&(this.report.info.extras.source=w(b(r.source))),r.title&&(this.report.info.extras.title=r.title)}},t.setReportException=function(e){this.handleError(e.message)},e}();function b(e){return e.replace(/&/g,"&amp").replace(/</g,"&lt").replace(/>/g,"&gt").replace(/"/g,"&quot").replace(/'/g,"&#039")}function w(e){return e.replace(/\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.]*[a-z0-9-+&@#\/%=~_|]/gim,'<a target="_blank" href="$&">$&</a>').replace(/(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim,'<a target="_blank" href="mailto:$1">$1</a>')}var R="[default]",L=(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&document,["map","aoMap","emissiveMap","glossinessMap","metalnessMap","normalMap","roughnessMap","specularMap"]);l.Cache.enabled=!0;var S=function(){function e(e,t){this.el=e,this.options=t,this.lights=[],this.content=null,this.mixer=null,this.clips=[],this.gui=null,this.options.environments.unshift({id:"",name:"None",path:null,format:".hdr"}),this.state={environment:this.options.environments[0].name,background:!1,playbackSpeed:1,actionStates:{},camera:R,backgroundColor:t.backgroundColor||"#1d1e20",wireframe:!1,skeleton:!1,grid:!0,addLights:!0,exposure:1,textureEncoding:"sRGB",ambientIntensity:.3,ambientColor:16777215,directIntensity:.8*Math.PI,directColor:16777215},this.report=null,this.prevTime=0,this.stats=new d,this.stats.dom.height="48px",[].forEach.call(this.stats.dom.children,function(e){e.style.display=""}),this.scene=new l.Scene;var r="assetgenerator"===t.preset?144/Math.PI:60;this.defaultCamera=new l.PerspectiveCamera(r,e.clientWidth/e.clientHeight,.01,1e3),this.activeCamera=this.defaultCamera,this.scene.add(this.defaultCamera),this.renderer=window.renderer=new l.WebGLRenderer({antialias:!0}),this.renderer.physicallyCorrectLights=!0,this.renderer.outputEncoding=l.sRGBEncoding,this.renderer.setClearColor(this.state.backgroundColor),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(e.clientWidth,e.clientHeight),this.pmremGenerator=new l.PMREMGenerator(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.controls=new p.OrbitControls(this.defaultCamera,this.renderer.domElement),this.controls.autoRotate=!1,this.controls.autoRotateSpeed=-10,this.controls.screenSpacePanning=!0,this.el.appendChild(this.renderer.domElement),this.cameraCtrl=null,this.cameraFolder=null,this.animFolder=null,this.animCtrls=[],this.morphFolder=null,this.morphCtrls=[],this.skeletonHelpers=[],this.gridHelper=null,this.axesHelper=null,this.addAxesHelper(),this.addGUI(),t.kiosk&&this.gui.close(),this.animate=this.animate.bind(this),requestAnimationFrame(this.animate),window.addEventListener("resize",this.resize.bind(this),!1)}var t=e.prototype;return t.animate=function(e){requestAnimationFrame(this.animate);var t=(e-this.prevTime)/1e3;this.controls.update(),this.stats.update(),this.mixer&&this.mixer.update(t),this.render(),this.prevTime=e},t.render=function(){this.renderer.render(this.scene,this.activeCamera),this.state.grid&&(this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesRenderer.render(this.axesScene,this.axesCamera))},t.resize=function(){var e=this.el.parentElement,t=e.clientHeight,r=e.clientWidth;this.defaultCamera.aspect=r/t,this.defaultCamera.updateProjectionMatrix(),this.renderer.setSize(r,t),this.axesCamera.aspect=this.axesDiv.clientWidth/this.axesDiv.clientHeight,this.axesCamera.updateProjectionMatrix(),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight)},t.destroy=function(){this.el.firstChild.remove()},t.load=function(e,t,r){var n=this,s=l.LoaderUtils.extractUrlBase(e);return new Promise(function(o,i){var a=new l.LoadingManager;a.setURLModifier(function(e,n){var o=t+decodeURI(e).replace(s,"").replace(/^(\.?\/)/,"");if(r.has(o)){var i=r.get(o),a=URL.createObjectURL(i);return c.push(a),a}return(n||"")+e});var h=new u.GLTFLoader(a).setCrossOrigin("anonymous"),c=[];h.load(e,function(e){var t=e.scene||e.scenes[0],r=e.animations||[];if(!t)throw new Error("This model contains no scene, and cannot be viewed here. However, it may contain individual 3D resources.");n.setContent(t,r),c.forEach(URL.revokeObjectURL),o(e)},void 0,i)})},t.setContent=function(e,t){var r=this;this.clear();var n=(new l.Box3).setFromObject(e),s=n.getSize(new l.Vector3).length(),o=n.getCenter(new l.Vector3);this.controls.reset(),e.position.x+=e.position.x-o.x,e.position.y+=e.position.y-o.y,e.position.z+=e.position.z-o.z,this.controls.maxDistance=10*s,this.defaultCamera.near=s/100,this.defaultCamera.far=100*s,this.defaultCamera.updateProjectionMatrix(),this.options.cameraPosition?(this.defaultCamera.position.fromArray(this.options.cameraPosition),this.defaultCamera.lookAt(new l.Vector3)):(this.defaultCamera.position.copy(o),this.defaultCamera.position.x+=s/2,this.defaultCamera.position.y+=s/5,this.defaultCamera.position.z+=s/2,this.defaultCamera.lookAt(o)),this.setCamera(R),this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesCamera.near=s/100,this.axesCamera.far=100*s,this.axesCamera.updateProjectionMatrix(),this.axesCorner.scale.set(s,s,s),this.controls.saveState(),this.scene.add(e),this.content=e,this.state.addLights=!0,this.content.traverse(function(e){e.isLight?r.state.addLights=!1:e.isMesh&&(e.material.depthWrite=!e.material.transparent)}),this.setClips(t),this.updateLights(),this.updateGUI(),this.updateEnvironment(),this.updateTextureEncoding(),this.updateDisplay(),window.content=this.content,console.info("[glTF Viewer] THREE.Scene exported as `window.content`."),this.printGraph(this.content)},t.printGraph=function(e){var t=this;console.group(" <"+e.type+"> "+e.name),e.children.forEach(function(e){return t.printGraph(e)}),console.groupEnd()},t.setClips=function(e){this.mixer&&(this.mixer.stopAllAction(),this.mixer.uncacheRoot(this.mixer.getRoot()),this.mixer=null),this.clips=e,e.length&&(this.mixer=new l.AnimationMixer(this.content))},t.playAllClips=function(){var e=this;this.clips.forEach(function(t){e.mixer.clipAction(t).reset().play(),e.state.actionStates[t.name]=!0})},t.setCamera=function(e){var t=this;e===R?(this.controls.enabled=!0,this.activeCamera=this.defaultCamera):(this.controls.enabled=!1,this.content.traverse(function(r){r.isCamera&&r.name===e&&(t.activeCamera=r)}))},t.updateTextureEncoding=function(){var e="sRGB"===this.state.textureEncoding?l.sRGBEncoding:l.LinearEncoding;F(this.content,function(t){t.map&&(t.map.encoding=e),t.emissiveMap&&(t.emissiveMap.encoding=e),(t.map||t.emissiveMap)&&(t.needsUpdate=!0)})},t.updateLights=function(){var e=this.state,t=this.lights;e.addLights&&!t.length?this.addLights():!e.addLights&&t.length&&this.removeLights(),this.renderer.toneMappingExposure=e.exposure,2===t.length&&(t[0].intensity=e.ambientIntensity,t[0].color.setHex(e.ambientColor),t[1].intensity=e.directIntensity,t[1].color.setHex(e.directColor))},t.addLights=function(){var e=this.state;if("assetgenerator"===this.options.preset){var t=new l.HemisphereLight;return t.name="hemi_light",this.scene.add(t),void this.lights.push(t)}var r=new l.AmbientLight(e.ambientColor,e.ambientIntensity);r.name="ambient_light",this.defaultCamera.add(r);var n=new l.DirectionalLight(e.directColor,e.directIntensity);n.position.set(.5,0,.866),n.name="main_light",this.defaultCamera.add(n),this.lights.push(r,n)},t.removeLights=function(){this.lights.forEach(function(e){return e.parent.remove(e)}),this.lights.length=0},t.updateEnvironment=function(){var e=this,t=this.options.environments.filter(function(t){return t.name===e.state.environment})[0];this.getCubeMapTexture(t).then(function(t){var r=t.envMap;e.scene.environment=r,e.state.background&&(e.scene.background=r)})},t.updateBackgroundColor=function(e){this.scene.background=new l.Color(e)},t.getCubeMapTexture=function(e){var t=this,r=e.path;return r?new Promise(function(e,n){(new m.RGBELoader).setDataType(l.UnsignedByteType).load(r,function(r){var n=t.pmremGenerator.fromEquirectangular(r).texture;t.pmremGenerator.dispose(),e({envMap:n})},void 0,n)}):Promise.resolve({envMap:null})},t.updateDisplay=function(){var e=this;this.skeletonHelpers.length&&this.skeletonHelpers.forEach(function(t){return e.scene.remove(t)}),F(this.content,function(t){t.wireframe=e.state.wireframe}),this.content.traverse(function(t){if(t.isMesh&&t.skeleton&&e.state.skeleton){var r=new l.SkeletonHelper(t.skeleton.bones[0].parent);r.material.linewidth=3,e.scene.add(r),e.skeletonHelpers.push(r)}}),this.state.grid!==Boolean(this.gridHelper)&&(this.state.grid?(this.gridHelper=new l.GridHelper,this.axesHelper=new l.AxesHelper,this.axesHelper.renderOrder=999,this.axesHelper.onBeforeRender=function(e){return e.clearDepth()},this.scene.add(this.gridHelper),this.scene.add(this.axesHelper)):(this.scene.remove(this.gridHelper),this.scene.remove(this.axesHelper),this.gridHelper=null,this.axesHelper=null,this.axesRenderer.clear()))},t.addAxesHelper=function(){this.axesDiv=document.createElement("div"),this.el.appendChild(this.axesDiv),this.axesDiv.classList.add("axes");var e=this.axesDiv,t=e.clientWidth,r=e.clientHeight;this.axesScene=new l.Scene,this.axesCamera=new l.PerspectiveCamera(50,t/r,.1,10),this.axesScene.add(this.axesCamera),this.axesRenderer=new l.WebGLRenderer({alpha:!0}),this.axesRenderer.setPixelRatio(window.devicePixelRatio),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight),this.axesCamera.up=this.defaultCamera.up,this.axesCorner=new l.AxesHelper(5),this.axesScene.add(this.axesCorner),this.axesDiv.appendChild(this.axesRenderer.domElement)},t.addGUI=function(){var e=this,t=this.gui=new f.GUI({autoPlace:!1,width:260,hideable:!0}),r=t.addFolder("Display");r.add(this.state,"wireframe").onChange(function(){return e.updateDisplay()}),r.add(this.state,"grid").onChange(function(){return e.updateDisplay()}),r.addColor(this.state,"backgroundColor").onChange(function(t){return e.updateBackgroundColor(t)}),r.add(this.controls,"autoRotate"),r.add(this.controls,"screenSpacePanning");var n=t.addFolder("Lighting");n.add(this.state,"textureEncoding",["sRGB","Linear"]).onChange(function(){return e.updateTextureEncoding()}),n.add(this.renderer,"outputEncoding",{sRGB:l.sRGBEncoding,Linear:l.LinearEncoding}).onChange(function(){e.renderer.outputEncoding=Number(e.renderer.outputEncoding),F(e.content,function(e){e.needsUpdate=!0})}),n.add(this.state,"environment",this.options.environments.map(function(e){return e.name})).onChange(function(){return e.updateEnvironment()}),[n.add(this.state,"exposure",0,6),n.add(this.state,"addLights").listen(),n.add(this.state,"ambientIntensity",0,6),n.addColor(this.state,"ambientColor"),n.add(this.state,"directIntensity",0,4),n.addColor(this.state,"directColor")].forEach(function(t){return t.onChange(function(){return e.updateLights()})}),this.animFolder=t.addFolder("Animation"),this.animFolder.domElement.style.display="none",this.animFolder.add(this.state,"playbackSpeed",0,1).onChange(function(t){e.mixer&&(e.mixer.timeScale=t)}),this.animFolder.add({playAll:function(){return e.playAllClips()}},"playAll"),this.morphFolder=t.addFolder("Morph Targets"),this.morphFolder.domElement.style.display="none",this.cameraFolder=t.addFolder("Cameras"),this.cameraFolder.domElement.style.display="none",this.reportFolder=t.addFolder("Report"),this.reportFolder.domElement.style.display="none";var s=t.addFolder("Performance"),o=document.createElement("li");this.stats.dom.style.position="static",o.appendChild(this.stats.dom),o.classList.add("gui-stats"),s.__ul.appendChild(o);var i=document.createElement("div");this.el.appendChild(i),i.classList.add("gui-wrap"),i.appendChild(t.domElement),t.open()},t.updateGUI=function(){var e=this;this.cameraFolder.domElement.style.display="none",this.morphCtrls.forEach(function(e){return e.remove()}),this.morphCtrls.length=0,this.morphFolder.domElement.style.display="none",this.animCtrls.forEach(function(e){return e.remove()}),this.animCtrls.length=0,this.animFolder.domElement.style.display="none";var t=[],r=[];if(this.content.traverse(function(e){e.isMesh&&e.morphTargetInfluences&&r.push(e),e.isCamera&&(e.name=e.name||"VIEWER__camera_"+(t.length+1),t.push(e.name))}),t.length){this.cameraFolder.domElement.style.display="",this.cameraCtrl&&this.cameraCtrl.remove();var n=[R].concat(t);this.cameraCtrl=this.cameraFolder.add(this.state,"camera",n),this.cameraCtrl.onChange(function(t){return e.setCamera(t)})}if(r.length&&(this.morphFolder.domElement.style.display="",r.forEach(function(t){if(t.morphTargetInfluences.length){var r=e.morphFolder.add({name:t.name||"Untitled"},"name");e.morphCtrls.push(r)}for(var n=function(r){var n=e.morphFolder.add(t.morphTargetInfluences,r,0,1,.01).listen();Object.keys(t.morphTargetDictionary).forEach(function(e){e&&t.morphTargetDictionary[e]===r&&n.name(e)}),e.morphCtrls.push(n)},s=0;s<t.morphTargetInfluences.length;s++)n(s)})),this.clips.length){this.animFolder.domElement.style.display="";var s=this.state.actionStates={};this.clips.forEach(function(t,r){var n;0===r?(s[t.name]=!0,(n=e.mixer.clipAction(t)).play()):s[t.name]=!1;var o=e.animFolder.add(s,t.name).listen();o.onChange(function(r){(n=n||e.mixer.clipAction(t)).setEffectiveTimeScale(1),r?n.play():n.stop()}),e.animCtrls.push(o)})}if(this.report&&this.reportFolder&&"object"==typeof this.report){var o=document.createElement("pre");o.classList.add("report-wrap"),o.appendChild(document.createTextNode(JSON.stringify(this.report,void 0,2))),this.reportFolder.__ul.appendChild(o)}},t.clear=function(){this.content&&(this.scene.remove(this.content),this.content.traverse(function(e){e.isMesh&&e.geometry.dispose()}),F(this.content,function(e){L.forEach(function(t){e[t]&&e[t].dispose()})}))},t.setReport=function(e){console.log("Set Report: ",e),this.report=e,this.updateGUI()},e}();function F(e,t){e.traverse(function(e){e.isMesh&&(Array.isArray(e.material)?e.material:[e.material]).forEach(t)})}var T=function(e){function r(r){var s;(s=e.call(this,r)||this).setErrorState=function(e){s.setState({errors:[].concat(s.state.errors,[e])})},s.createViewer=function(){if(s.viewerEl)return s.viewer=new S(s.viewerEl,s.options),s.viewer},s.view=function(e,t,r){s.viewer&&s.viewer.clear();var n=s.viewer||s.createViewer();if(n){var o="string"==typeof e?e:URL.createObjectURL(e);n.load(o,t,r).catch(function(e){s.onError(e),s.viewer.destroy()}).then(function(n){s.options.kiosk||s.validationCtrl.validate(o,t,r,n),"object"==typeof e&&URL.revokeObjectURL(o)}),s.forceUpdate()}},s.handleLoadComplete=function(e){var t,r;Array.from(e).forEach(function(e){var n=e[0],s=e[1];s.name.match(/\.(gltf|glb)$/i)&&(t=s,r=n.replace(s.name,""))}),t||s.onError("No .gltf or .glb asset found."),s.view(t,r,e)},s.onError=function(e){var t=(e||{}).message||e.toString();t.match(/ProgressEvent/)?t="Unable to retrieve this file. Check JS console and browser network tab.":t.match(/Unexpected token/)?t='Unable to parse file content. Verify that this file is valid. Error: "'+t+'"':e&&e.target&&e.target instanceof Image&&(t="Missing texture: "+e.target.src.split("/").pop()),s.setErrorState(t)},s.renderView=function(){var e=s.props.url;return e?t.createElement(v,{url:e,onLoadFiles:s.handleLoadComplete}):t.createElement(E,{onLoadFiles:s.handleLoadComplete})},s.handleToggleErrorsInfo=function(){s.setState({showErrors:!s.state.showErrors})},s.renderContent=function(){return t.createElement("div",{className:"_xB1cK",ref:function(e){s.viewerEl=e}},!s.viewer&&s.renderView())},s.renderError=function(e){var r=s.state,n=r.report;return t.createElement("div",{className:"_1BbDk"},t.createElement("div",{className:(r.showErrors?"":"hidden")+" mv-error-wrapper"},t.createElement("span",{className:"_3hzBn"},"Errors:"),t.createElement("button",{className:"_3iNj_",type:"button",onClick:s.handleToggleErrorsInfo},t.createElement("svg",{"data-name":"Layer 1",id:"Layer_1",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,"remove-delete-glyph"),t.createElement("polygon",{fill:"#ffffff",points:"512 86.78 425.22 0 256 169.22 86.78 0 0 86.78 169.22 256 0 425.22 86.78 512 256 342.78 425.22 511.99 512 425.22 342.78 256 512 86.78"}))),e.map(function(e,r){return t.createElement("div",{className:"mv-error",key:r},e.message&&t.createElement("span",null,"Code[",e.message,"]"),t.createElement("span",null,e.message))}),n&&"object"==typeof s.report&&t.createElement("pre",{className:"_3c7mJ"},t.createElement("span",{className:"_23UYM"},JSON.stringify(n,void 0,2)))))},s.gerErrorsList=function(){var e=s.state,t=e.errors,r=e.report,n=r&&r.errors,o=[];return t&&t.length>0&&t.forEach(function(e){e&&o.push({code:"C_ERR",message:e})}),n&&n.length>0&&o.push.apply(o,n),o};var o=location.hash?n.parse(location.hash):{};return s.options={environments:s.props.environments,kiosk:Boolean(o.kiosk),model:o.model||"",preset:o.preset||"",cameraPosition:o.cameraPosition?o.cameraPosition.split(",").map(Number):null},s.validationCtrl=new C({onSuccess:function(e){s.setState({report:e}),s.viewer&&s.viewer.setReport(e)},onError:function(e){return s.setErrorState(e?e.message?e.message:""+e:"Unknown")}}),s.viewer=null,s.viewerEl=document.body,s.state={report:{},errors:[],showErrors:!0},s}g(r,e);var o=r.prototype;return o.componentDidMount=function(){window.File&&window.FileReader&&window.FileList&&window.Blob?s.WEBGL.isWebGLAvailable()||this.setErrorState("WebGL is not supported in this browser."):this.setErrorState("The File APIs are not fully supported in this browser.")},o.render=function(){var e=this.gerErrorsList();return t.createElement("div",{className:"_yf3XL mv-general-wrapper"},e.length>0?this.renderError(e):this.renderContent())},r}(t.Component);T.propTypes={environments:r.array,url:r.string},T.defaultProps={environments:[],url:""};var P=function(e){return t.createElement(T,{environments:e.options.environments,url:e.url})};P.propTypes={options:r.shape({environments:r.array}),url:r.string},P.defaultProps={options:{environments:[]},url:""},module.exports=P;
function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=e(require("react")),r=e(require("prop-types")),n=e(require("query-string")),s=require("three/examples/jsm/WebGL"),o=e(require("jszip")),i=e(require("axios")),a=require("simple-dropzone"),l=require("three"),h=e(require("glob-to-regexp")),c=require("gltf-validator"),d=e(require("three/examples/jsm/libs/stats.module")),u=require("three/examples/jsm/loaders/GLTFLoader"),p=require("three/examples/jsm/controls/OrbitControls"),m=require("three/examples/jsm/loaders/RGBELoader"),f=require("dat.gui");function g(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var v=function(e){function r(t){var r;return(r=e.call(this,t)||this).state={downloadInProgress:!1,downloadProgress:0,error:""},r}g(r,e);var n=r.prototype;return n.componentDidMount=function(){try{return Promise.resolve(this.downloadFile()).then(function(){})}catch(e){return Promise.reject(e)}},n.downloadFile=function(){try{var e=this,t=e.props,r=t.url,n=t.onLoadFiles,s=new o;e.setState({downloadInProgress:!0,downloadProgress:0,error:""});var a=function(t,o){try{var a=Promise.resolve(i.get(r,{onDownloadProgress:function(t){var r=Math.round(100*t.loaded/t.total);e.setState({downloadProgress:r})},responseType:"blob"})).then(function(t){return Promise.resolve(s.loadAsync(t.data)).then(function(t){var r=new Map,s=Object.values(t.files).map(function(e){try{var n=e.name,s=function(){if(!n.startsWith("__MACOSX/"))return Promise.resolve(t.file(e.name).async("blob")).then(function(e){e.name=n,r.set(n,e)})}();return Promise.resolve(s&&s.then?s.then(function(){}):void 0)}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(s)).then(function(){e.setState({downloadInProgress:!1}),n(r)})})})}catch(e){return o(e)}return a&&a.then?a.then(void 0,o):a}(0,function(t){e.setState({error:t.message,downloadInProgress:!1})});return Promise.resolve(a&&a.then?a.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.render=function(){var e=this.state,r=e.downloadInProgress,n=e.downloadProgress,s=e.error;return t.createElement("div",{className:"_wfEBQ"},s&&t.createElement("div",{className:"mv-error"},"Error: ",s),r&&t.createElement("div",{className:"_wfEBQ"},n&&n>0?t.createElement("div",{className:"_puu7g"},"Downloading: ",n," %"):null))},r}(t.Component);v.propTypes={onLoadFiles:r.func.isRequired,url:r.string.isRequired};var E=function(e){function r(t){var r;return(r=e.call(this,t)||this).dropEl=null,r.inputEl=null,r.state={showSpinner:!1},r}g(r,e);var n=r.prototype;return n.componentDidMount=function(){var e=this,t=this.props.onLoadFiles,r=new a.SimpleDropzone(this.dropEl,this.inputEl);r.on("drop",function(e){return t(e.files)}),r.on("dropstart",function(){return e.setState({showSpinner:!0})}),r.on("droperror",function(){return e.setState({showSpinner:!1})})},n.render=function(){var e=this,r=this.state.showSpinner;return t.createElement("main",{className:"_1aO4D"},t.createElement("div",{className:"_2Z2uK",ref:function(t){e.dropEl=t}},t.createElement("div",{className:"_3-R8b"},t.createElement("p",null,"Drag GLTF file, folder or ZIP archive here")),t.createElement("div",{className:"_2S_9r"},t.createElement("input",{multiple:"",name:"file-input[]",ref:function(t){e.inputEl=t},type:"file"}),t.createElement("label",{htmlFor:"file-input",onClick:function(){e.inputEl.click()}},t.createElement("svg",{height:"17",viewBox:"0 0 20 17",width:"20",xmlns:"http://www.w3.org/2000/svg"},t.createElement("path",{d:"M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"})),t.createElement("span",null,"Upload")))),r&&t.createElement("div",{className:"_zvUkU"}))},r}(t.Component);E.propTypes={onLoadFiles:r.func.isRequired};var y={version:"0.0.2",generators:[{generator:"babylon.js glTF exporter for 3ds max 2017 *",name:"3DS Max exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Khronos Blender glTF 2.0 exporter",name:"Blender exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter",bugsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter/issues"},{generator:"blendergltf *",name:"Blender exporter",author:"Kupoman",type:"EXPORTER",docsURL:"https://github.com/Kupoman/blendergltf",bugsURL:"https://github.com/Kupoman/blendergltf/issues"},{generator:"COLLADA2GLTF",name:"COLLADA converter",author:"Khronos Group",type:"CONVERTER",docsURL:"https://github.com/KhronosGroup/COLLADA2GLTF",bugsURL:"https://github.com/KhronosGroup/COLLADA2GLTF/issues"},{generator:"FBX2glTF *",name:"FBX converter",author:"Facebook",type:"CONVERTER",docsURL:"https://github.com/facebookincubator/FBX2glTF",bugsURL:"https://github.com/facebookincubator/FBX2glTF/issues"},{generator:"Maya2glTF *",name:"Maya exporter",author:"Wonder Media Group",type:"EXPORTER",docsURL:"https://github.com/WonderMediaProductions/Maya2glTF",bugsURL:"https://github.com/WonderMediaProductions/Maya2glTF/issues"},{generator:"babylon.js glTF exporter for maya 2018 *",name:"Maya exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Microsoft GLTF Exporter *",name:"Microsoft exporter",author:"Microsoft",type:"EXPORTER",bugsText:"From the Feedback Hub on Windows, use the *Apps > Paint 3D* categorise."},{generator:"obj2gltf",name:"OBJ converter",author:"Analytical Graphics",type:"CONVERTER",docsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF",bugsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF/issues"},{generator:"Sketchfab (OSG glTF plugin)",name:"Sketchfab",author:"Sketchfab",type:"OTHER",docsURL:"https://sketchfab.com",bugsURL:"https://help.sketchfab.com/hc/en-us/articles/360000048623-Reporting-a-bug"},{generator:"Sketchup glTF Exporter by Centaur",name:"Sketchup exporter",author:"Centaur",type:"EXPORTER",docsURL:"https://extensions.sketchup.com/content/gltf-exporter"},{generator:"glTF Tools for Unity",name:"Unity exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/UnityGLTF",bugsURL:"https://github.com/KhronosGroup/UnityGLTF/issues"},{generator:"THREE.GLTFExporter",name:"three.js exporter",author:"The three.js authors",type:"EXPORTER",docsURL:"https://threejs.org/docs/#examples/exporters/GLTFExporter",bugsURL:"https://github.com/mrdoob/three.js/issues"}]},x=["Errors","Warnings","Infos","Hints"],C=function(){function e(e){var t=e.onError;this.handleSuccess=e.onSuccess,this.handleError=t}var t=e.prototype;return t.validate=function(e,t,r,n){var s=this;return fetch(e).then(function(e){return e.arrayBuffer()}).then(function(n){return c.validateBytes(new Uint8Array(n),{externalResourceFunction:function(n){return s.resolveExternalResource(n,e,t,r)}})}).then(function(e){return s.setReport(e,n)}).catch(function(e){return s.setReportException(e)})},t.resolveExternalResource=function(e,t,r,n){var s,o=l.LoaderUtils.extractUrlBase(t),i=r+decodeURI(e).replace(o,"").replace(/^(\.?\/)/,"");if(n.has(i)){var a=n.get(i);s=URL.createObjectURL(a)}return fetch(s||o+e).then(function(e){return e.arrayBuffer()}).then(function(e){return s&&URL.revokeObjectURL(s),new Uint8Array(e)})},t.setReport=function(e,t){var r,n,s=e&&e.info&&e.info.generator||"",o=y.generators.find(function(e){return-1===e.generator.indexOf("*")?e.generator===s:h(e.generator).test(s)});o&&o.name!==o.author&&(o.name=o.name+" by "+o.author),e.generator=o,e.issues.maxSeverity=-1,x.forEach(function(t,r){e.issues["num"+t]>0&&-1===e.issues.maxSeverity&&(e.issues.maxSeverity=r)}),e.errors=e.issues.messages.filter(function(e){return 0===e.severity}),e.warnings=e.issues.messages.filter(function(e){return 1===e.severity}),e.infos=e.issues.messages.filter(function(e){return 2===e.severity}),e.hints=e.issues.messages.filter(function(e){return 3===e.severity}),n={ACCESSOR_NON_UNIT:{message:"{count} accessor elements not of unit length: 0. [AGGREGATED]",pointerCounts:{}},ACCESSOR_ANIMATION_INPUT_NON_INCREASING:{message:"{count} animation input accessor elements not in ascending order. [AGGREGATED]",pointerCounts:{}}},(r=e).errors.forEach(function(e){n[e.code]&&(n[e.code].pointerCounts[e.pointer]||(n[e.code].pointerCounts[e.pointer]=0),n[e.code].pointerCounts[e.pointer]++)}),r.errors=r.errors.filter(function(e){return!n[e.code]||!n[e.code].pointerCounts[e.pointer]||n[e.code].pointerCounts[e.pointer]<2}),Object.keys(n).forEach(function(e){Object.keys(n[e].pointerCounts).forEach(function(t){r.errors.push({code:e,pointer:t,message:n[e].message.replace("{count}",n[e].pointerCounts[t])})})}),this.report=e,this.setResponse(t),this.handleSuccess(e)},t.setResponse=function(e){var t=e&&e.parser&&e.parser.json;if(t&&t.asset&&t.asset.extras){var r=t.asset.extras;this.report.info.extras={},r.author&&(this.report.info.extras.author=w(b(r.author))),r.license&&(this.report.info.extras.license=w(b(r.license))),r.source&&(this.report.info.extras.source=w(b(r.source))),r.title&&(this.report.info.extras.title=r.title)}},t.setReportException=function(e){this.handleError(e.message)},e}();function b(e){return e.replace(/&/g,"&amp").replace(/</g,"&lt").replace(/>/g,"&gt").replace(/"/g,"&quot").replace(/'/g,"&#039")}function w(e){return e.replace(/\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.]*[a-z0-9-+&@#\/%=~_|]/gim,'<a target="_blank" href="$&">$&</a>').replace(/(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim,'<a target="_blank" href="mailto:$1">$1</a>')}var R="[default]",L=(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&document,["map","aoMap","emissiveMap","glossinessMap","metalnessMap","normalMap","roughnessMap","specularMap"]);l.Cache.enabled=!0;var S=function(){function e(e,t){this.el=e,this.options=t,this.lights=[],this.content=null,this.mixer=null,this.clips=[],this.gui=null,this.options.environments.unshift({id:"",name:"None",path:null,format:".hdr"}),this.state={environment:this.options.environments[0].name,background:!1,playbackSpeed:1,actionStates:{},camera:R,backgroundColor:t.backgroundColor||"#1d1e20",wireframe:!1,skeleton:!1,grid:!0,addLights:!0,exposure:1,textureEncoding:"sRGB",ambientIntensity:.3,ambientColor:16777215,directIntensity:.8*Math.PI,directColor:16777215},this.report=null,this.prevTime=0,this.stats=new d,this.stats.dom.height="48px",[].forEach.call(this.stats.dom.children,function(e){e.style.display=""}),this.scene=new l.Scene;var r="assetgenerator"===t.preset?144/Math.PI:60;this.defaultCamera=new l.PerspectiveCamera(r,e.clientWidth/e.clientHeight,.01,1e3),this.activeCamera=this.defaultCamera,this.scene.add(this.defaultCamera),this.renderer=window.renderer=new l.WebGLRenderer({antialias:!0}),this.renderer.physicallyCorrectLights=!0,this.renderer.outputEncoding=l.sRGBEncoding,this.renderer.setClearColor(this.state.backgroundColor),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(e.clientWidth,e.clientHeight),this.pmremGenerator=new l.PMREMGenerator(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.controls=new p.OrbitControls(this.defaultCamera,this.renderer.domElement),this.controls.autoRotate=!1,this.controls.autoRotateSpeed=-10,this.controls.screenSpacePanning=!0,this.el.appendChild(this.renderer.domElement),this.cameraCtrl=null,this.cameraFolder=null,this.animFolder=null,this.animCtrls=[],this.morphFolder=null,this.morphCtrls=[],this.skeletonHelpers=[],this.gridHelper=null,this.axesHelper=null,this.addAxesHelper(),this.addGUI(),t.kiosk&&this.gui.close(),this.animate=this.animate.bind(this),requestAnimationFrame(this.animate),window.addEventListener("resize",this.resize.bind(this),!1)}var t=e.prototype;return t.animate=function(e){requestAnimationFrame(this.animate);var t=(e-this.prevTime)/1e3;this.controls.update(),this.stats.update(),this.mixer&&this.mixer.update(t),this.render(),this.prevTime=e},t.render=function(){this.renderer.render(this.scene,this.activeCamera),this.state.grid&&(this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesRenderer.render(this.axesScene,this.axesCamera))},t.resize=function(){var e=this.el.parentElement,t=e.clientHeight,r=e.clientWidth;this.defaultCamera.aspect=r/t,this.defaultCamera.updateProjectionMatrix(),this.renderer.setSize(r,t),this.axesCamera.aspect=this.axesDiv.clientWidth/this.axesDiv.clientHeight,this.axesCamera.updateProjectionMatrix(),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight)},t.destroy=function(){this.el.firstChild.remove()},t.load=function(e,t,r){var n=this,s=l.LoaderUtils.extractUrlBase(e);return new Promise(function(o,i){var a=new l.LoadingManager;a.setURLModifier(function(e,n){var o=t+decodeURI(e).replace(s,"").replace(/^(\.?\/)/,"");if(r.has(o)){var i=r.get(o),a=URL.createObjectURL(i);return c.push(a),a}return(n||"")+e});var h=new u.GLTFLoader(a).setCrossOrigin("anonymous"),c=[];h.load(e,function(e){var t=e.scene||e.scenes[0],r=e.animations||[];if(!t)throw new Error("This model contains no scene, and cannot be viewed here. However, it may contain individual 3D resources.");n.setContent(t,r),c.forEach(URL.revokeObjectURL),o(e)},void 0,i)})},t.setContent=function(e,t){var r=this;this.clear();var n=(new l.Box3).setFromObject(e),s=n.getSize(new l.Vector3).length(),o=n.getCenter(new l.Vector3);this.controls.reset(),e.position.x+=e.position.x-o.x,e.position.y+=e.position.y-o.y,e.position.z+=e.position.z-o.z,this.controls.maxDistance=10*s,this.defaultCamera.near=s/100,this.defaultCamera.far=100*s,this.defaultCamera.updateProjectionMatrix(),this.options.cameraPosition?(this.defaultCamera.position.fromArray(this.options.cameraPosition),this.defaultCamera.lookAt(new l.Vector3)):(this.defaultCamera.position.copy(o),this.defaultCamera.position.x+=s/2,this.defaultCamera.position.y+=s/5,this.defaultCamera.position.z+=s/2,this.defaultCamera.lookAt(o)),this.setCamera(R),this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesCamera.near=s/100,this.axesCamera.far=100*s,this.axesCamera.updateProjectionMatrix(),this.axesCorner.scale.set(s,s,s),this.controls.saveState(),this.scene.add(e),this.content=e,this.state.addLights=!0,this.content.traverse(function(e){e.isLight?r.state.addLights=!1:e.isMesh&&(e.material.depthWrite=!e.material.transparent)}),this.setClips(t),this.updateLights(),this.updateGUI(),this.updateEnvironment(),this.updateTextureEncoding(),this.updateDisplay(),window.content=this.content,console.info("[glTF Viewer] THREE.Scene exported as `window.content`."),this.printGraph(this.content)},t.printGraph=function(e){var t=this;console.group(" <"+e.type+"> "+e.name),e.children.forEach(function(e){return t.printGraph(e)}),console.groupEnd()},t.setClips=function(e){this.mixer&&(this.mixer.stopAllAction(),this.mixer.uncacheRoot(this.mixer.getRoot()),this.mixer=null),this.clips=e,e.length&&(this.mixer=new l.AnimationMixer(this.content))},t.playAllClips=function(){var e=this;this.clips.forEach(function(t){e.mixer.clipAction(t).reset().play(),e.state.actionStates[t.name]=!0})},t.setCamera=function(e){var t=this;e===R?(this.controls.enabled=!0,this.activeCamera=this.defaultCamera):(this.controls.enabled=!1,this.content.traverse(function(r){r.isCamera&&r.name===e&&(t.activeCamera=r)}))},t.updateTextureEncoding=function(){var e="sRGB"===this.state.textureEncoding?l.sRGBEncoding:l.LinearEncoding;F(this.content,function(t){t.map&&(t.map.encoding=e),t.emissiveMap&&(t.emissiveMap.encoding=e),(t.map||t.emissiveMap)&&(t.needsUpdate=!0)})},t.updateLights=function(){var e=this.state,t=this.lights;e.addLights&&!t.length?this.addLights():!e.addLights&&t.length&&this.removeLights(),this.renderer.toneMappingExposure=e.exposure,2===t.length&&(t[0].intensity=e.ambientIntensity,t[0].color.setHex(e.ambientColor),t[1].intensity=e.directIntensity,t[1].color.setHex(e.directColor))},t.addLights=function(){var e=this.state;if("assetgenerator"===this.options.preset){var t=new l.HemisphereLight;return t.name="hemi_light",this.scene.add(t),void this.lights.push(t)}var r=new l.AmbientLight(e.ambientColor,e.ambientIntensity);r.name="ambient_light",this.defaultCamera.add(r);var n=new l.DirectionalLight(e.directColor,e.directIntensity);n.position.set(.5,0,.866),n.name="main_light",this.defaultCamera.add(n),this.lights.push(r,n)},t.removeLights=function(){this.lights.forEach(function(e){return e.parent.remove(e)}),this.lights.length=0},t.updateEnvironment=function(){var e=this,t=this.options.environments.filter(function(t){return t.name===e.state.environment})[0];this.getCubeMapTexture(t).then(function(t){var r=t.envMap;e.scene.environment=r,e.state.background&&(e.scene.background=r)})},t.updateBackgroundColor=function(e){this.scene.background=new l.Color(e)},t.getCubeMapTexture=function(e){var t=this,r=e.path;return r?new Promise(function(e,n){(new m.RGBELoader).setDataType(l.UnsignedByteType).load(r,function(r){var n=t.pmremGenerator.fromEquirectangular(r).texture;t.pmremGenerator.dispose(),e({envMap:n})},void 0,n)}):Promise.resolve({envMap:null})},t.updateDisplay=function(){var e=this;this.skeletonHelpers.length&&this.skeletonHelpers.forEach(function(t){return e.scene.remove(t)}),F(this.content,function(t){t.wireframe=e.state.wireframe}),this.content.traverse(function(t){if(t.isMesh&&t.skeleton&&e.state.skeleton){var r=new l.SkeletonHelper(t.skeleton.bones[0].parent);r.material.linewidth=3,e.scene.add(r),e.skeletonHelpers.push(r)}}),this.state.grid!==Boolean(this.gridHelper)&&(this.state.grid?(this.gridHelper=new l.GridHelper,this.axesHelper=new l.AxesHelper,this.axesHelper.renderOrder=999,this.axesHelper.onBeforeRender=function(e){return e.clearDepth()},this.scene.add(this.gridHelper),this.scene.add(this.axesHelper)):(this.scene.remove(this.gridHelper),this.scene.remove(this.axesHelper),this.gridHelper=null,this.axesHelper=null,this.axesRenderer.clear()))},t.addAxesHelper=function(){this.axesDiv=document.createElement("div"),this.el.appendChild(this.axesDiv),this.axesDiv.classList.add("axes");var e=this.axesDiv,t=e.clientWidth,r=e.clientHeight;this.axesScene=new l.Scene,this.axesCamera=new l.PerspectiveCamera(50,t/r,.1,10),this.axesScene.add(this.axesCamera),this.axesRenderer=new l.WebGLRenderer({alpha:!0}),this.axesRenderer.setPixelRatio(window.devicePixelRatio),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight),this.axesCamera.up=this.defaultCamera.up,this.axesCorner=new l.AxesHelper(5),this.axesScene.add(this.axesCorner),this.axesDiv.appendChild(this.axesRenderer.domElement)},t.addGUI=function(){var e=this,t=this.gui=new f.GUI({autoPlace:!1,width:260,hideable:!0}),r=t.addFolder("Display");r.add(this.state,"wireframe").onChange(function(){return e.updateDisplay()}),r.add(this.state,"grid").onChange(function(){return e.updateDisplay()}),r.addColor(this.state,"backgroundColor").onChange(function(t){return e.updateBackgroundColor(t)}),r.add(this.controls,"autoRotate"),r.add(this.controls,"screenSpacePanning");var n=t.addFolder("Lighting");n.add(this.state,"textureEncoding",["sRGB","Linear"]).onChange(function(){return e.updateTextureEncoding()}),n.add(this.renderer,"outputEncoding",{sRGB:l.sRGBEncoding,Linear:l.LinearEncoding}).onChange(function(){e.renderer.outputEncoding=Number(e.renderer.outputEncoding),F(e.content,function(e){e.needsUpdate=!0})}),n.add(this.state,"environment",this.options.environments.map(function(e){return e.name})).onChange(function(){return e.updateEnvironment()}),[n.add(this.state,"exposure",0,6),n.add(this.state,"addLights").listen(),n.add(this.state,"ambientIntensity",0,6),n.addColor(this.state,"ambientColor"),n.add(this.state,"directIntensity",0,4),n.addColor(this.state,"directColor")].forEach(function(t){return t.onChange(function(){return e.updateLights()})}),this.animFolder=t.addFolder("Animation"),this.animFolder.domElement.style.display="none",this.animFolder.add(this.state,"playbackSpeed",0,1).onChange(function(t){e.mixer&&(e.mixer.timeScale=t)}),this.animFolder.add({playAll:function(){return e.playAllClips()}},"playAll"),this.morphFolder=t.addFolder("Morph Targets"),this.morphFolder.domElement.style.display="none",this.cameraFolder=t.addFolder("Cameras"),this.cameraFolder.domElement.style.display="none",this.reportFolder=t.addFolder("Report"),this.reportFolder.domElement.style.display="none";var s=t.addFolder("Performance"),o=document.createElement("li");this.stats.dom.style.position="static",o.appendChild(this.stats.dom),o.classList.add("gui-stats"),s.__ul.appendChild(o);var i=document.createElement("div");this.el.appendChild(i),i.classList.add("gui-wrap"),i.appendChild(t.domElement),t.open()},t.updateGUI=function(){var e=this;this.cameraFolder.domElement.style.display="none",this.morphCtrls.forEach(function(e){return e.remove()}),this.morphCtrls.length=0,this.morphFolder.domElement.style.display="none",this.animCtrls.forEach(function(e){return e.remove()}),this.animCtrls.length=0,this.animFolder.domElement.style.display="none";var t=[],r=[];if(this.content.traverse(function(e){e.isMesh&&e.morphTargetInfluences&&r.push(e),e.isCamera&&(e.name=e.name||"VIEWER__camera_"+(t.length+1),t.push(e.name))}),t.length){this.cameraFolder.domElement.style.display="",this.cameraCtrl&&this.cameraCtrl.remove();var n=[R].concat(t);this.cameraCtrl=this.cameraFolder.add(this.state,"camera",n),this.cameraCtrl.onChange(function(t){return e.setCamera(t)})}if(r.length&&(this.morphFolder.domElement.style.display="",r.forEach(function(t){if(t.morphTargetInfluences.length){var r=e.morphFolder.add({name:t.name||"Untitled"},"name");e.morphCtrls.push(r)}for(var n=function(r){var n=e.morphFolder.add(t.morphTargetInfluences,r,0,1,.01).listen();Object.keys(t.morphTargetDictionary).forEach(function(e){e&&t.morphTargetDictionary[e]===r&&n.name(e)}),e.morphCtrls.push(n)},s=0;s<t.morphTargetInfluences.length;s++)n(s)})),this.clips.length){this.animFolder.domElement.style.display="";var s=this.state.actionStates={};this.clips.forEach(function(t,r){var n;0===r?(s[t.name]=!0,(n=e.mixer.clipAction(t)).play()):s[t.name]=!1;var o=e.animFolder.add(s,t.name).listen();o.onChange(function(r){(n=n||e.mixer.clipAction(t)).setEffectiveTimeScale(1),r?n.play():n.stop()}),e.animCtrls.push(o)})}if(this.report&&this.reportFolder&&"object"==typeof this.report){var o=document.createElement("pre");o.classList.add("report-wrap"),o.appendChild(document.createTextNode(JSON.stringify(this.report,void 0,2))),this.reportFolder.__ul.appendChild(o)}},t.clear=function(){this.content&&(this.scene.remove(this.content),this.content.traverse(function(e){e.isMesh&&e.geometry.dispose()}),F(this.content,function(e){L.forEach(function(t){e[t]&&e[t].dispose()})}))},t.setReport=function(e){console.log("Set Report: ",e),this.report=e,this.updateGUI()},e}();function F(e,t){e.traverse(function(e){e.isMesh&&(Array.isArray(e.material)?e.material:[e.material]).forEach(t)})}var T=function(e){function r(r){var s;(s=e.call(this,r)||this).setErrorState=function(e){s.setState({errors:[].concat(s.state.errors,[e])})},s.createViewer=function(){if(s.viewerEl)return s.viewer=new S(s.viewerEl,s.options),s.viewer},s.view=function(e,t,r){s.viewer&&s.viewer.clear();var n=s.viewer||s.createViewer();if(n){var o="string"==typeof e?e:URL.createObjectURL(e);n.load(o,t,r).catch(function(e){s.onError(e),s.viewer.destroy()}).then(function(n){s.options.kiosk||s.validationCtrl.validate(o,t,r,n),"object"==typeof e&&URL.revokeObjectURL(o)}),s.forceUpdate()}},s.handleLoadComplete=function(e){var t,r;Array.from(e).forEach(function(e){var n=e[0],s=e[1];s.name.match(/\.(gltf|glb)$/i)&&(t=s,r=n.replace(s.name,""))}),t||s.onError("No .gltf or .glb asset found."),s.view(t,r,e)},s.onError=function(e){var t=(e||{}).message||e.toString();t.match(/ProgressEvent/)?t="Unable to retrieve this file. Check JS console and browser network tab.":t.match(/Unexpected token/)?t='Unable to parse file content. Verify that this file is valid. Error: "'+t+'"':e&&e.target&&e.target instanceof Image&&(t="Missing texture: "+e.target.src.split("/").pop()),s.setErrorState(t)},s.renderView=function(){var e=s.props.url;return e?t.createElement(v,{url:e,onLoadFiles:s.handleLoadComplete}):t.createElement(E,{onLoadFiles:s.handleLoadComplete})},s.handleToggleErrorsInfo=function(){s.setState({showErrors:!s.state.showErrors})},s.renderContent=function(){return t.createElement("div",{className:"_xB1cK",ref:function(e){s.viewerEl=e}},!s.viewer&&s.renderView())},s.renderError=function(e){var r=s.state,n=r.report;return t.createElement("div",{className:"_1BbDk"},t.createElement("div",{className:(r.showErrors?"":"hidden")+" mv-error-wrapper"},t.createElement("span",{className:"_3hzBn"},"Errors:"),t.createElement("button",{className:"_3iNj_",type:"button",onClick:s.handleToggleErrorsInfo},t.createElement("svg",{"data-name":"Layer 1",id:"Layer_1",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,"remove-delete-glyph"),t.createElement("polygon",{fill:"#ffffff",points:"512 86.78 425.22 0 256 169.22 86.78 0 0 86.78 169.22 256 0 425.22 86.78 512 256 342.78 425.22 511.99 512 425.22 342.78 256 512 86.78"}))),e.map(function(e,r){return t.createElement("div",{className:"mv-error",key:r},e.message&&t.createElement("span",null,"Code[",e.message,"]"),t.createElement("span",null,e.message))}),n&&"object"==typeof n&&t.createElement("pre",{className:"_3c7mJ"},t.createElement("span",{className:"_23UYM"},JSON.stringify(n,void 0,2)))))},s.gerErrorsList=function(){var e=s.state,t=e.errors,r=e.report,n=r&&r.errors,o=[];return t&&t.length>0&&t.forEach(function(e){e&&o.push({code:"C_ERR",message:e})}),n&&n.length>0&&o.push.apply(o,n),o};var o=location.hash?n.parse(location.hash):{};return s.options={environments:s.props.environments,kiosk:Boolean(o.kiosk),model:o.model||"",preset:o.preset||"",cameraPosition:o.cameraPosition?o.cameraPosition.split(",").map(Number):null},s.validationCtrl=new C({onSuccess:function(e){s.setState({report:e}),s.viewer&&s.viewer.setReport(e)},onError:function(e){return s.setErrorState(e?e.message?e.message:""+e:"Unknown")}}),s.viewer=null,s.viewerEl=document.body,s.state={report:{},errors:[],showErrors:!0},s}g(r,e);var o=r.prototype;return o.componentDidMount=function(){window.File&&window.FileReader&&window.FileList&&window.Blob?s.WEBGL.isWebGLAvailable()||this.setErrorState("WebGL is not supported in this browser."):this.setErrorState("The File APIs are not fully supported in this browser.")},o.render=function(){var e=this.gerErrorsList();return t.createElement("div",{className:"_yf3XL mv-general-wrapper"},e.length>0?this.renderError(e):this.renderContent())},r}(t.Component);T.propTypes={environments:r.array,url:r.string},T.defaultProps={environments:[],url:""};var P=function(e){return t.createElement(T,{environments:e.options.environments,url:e.url})};P.propTypes={options:r.shape({environments:r.array}),url:r.string},P.defaultProps={options:{environments:[]},url:""},module.exports=P;
//# sourceMappingURL=index.js.map

@@ -1,2 +0,2 @@

import e from"react";import t from"prop-types";import r from"query-string";import{WEBGL as n}from"three/examples/jsm/WebGL";import o from"jszip";import s from"axios";import{SimpleDropzone as i}from"simple-dropzone";import{LoaderUtils as a,Cache as l,Scene as h,PerspectiveCamera as c,WebGLRenderer as d,sRGBEncoding as u,PMREMGenerator as p,LoadingManager as m,Box3 as f,Vector3 as g,AnimationMixer as v,HemisphereLight as E,AmbientLight as y,DirectionalLight as x,Color as C,UnsignedByteType as b,SkeletonHelper as w,GridHelper as R,AxesHelper as L,LinearEncoding as S}from"three";import F from"glob-to-regexp";import{validateBytes as T}from"gltf-validator";import P from"three/examples/jsm/libs/stats.module";import{GLTFLoader as U}from"three/examples/jsm/loaders/GLTFLoader";import{OrbitControls as k}from"three/examples/jsm/controls/OrbitControls";import{RGBELoader as A}from"three/examples/jsm/loaders/RGBELoader";import{GUI as G}from"dat.gui";function M(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var _=function(t){function r(e){var r;return(r=t.call(this,e)||this).state={downloadInProgress:!1,downloadProgress:0,error:""},r}M(r,t);var n=r.prototype;return n.componentDidMount=function(){try{return Promise.resolve(this.downloadFile()).then(function(){})}catch(e){return Promise.reject(e)}},n.downloadFile=function(){try{var e=this,t=e.props,r=t.url,n=t.onLoadFiles,i=new o;e.setState({downloadInProgress:!0,downloadProgress:0,error:""});var a=function(t,o){try{var a=Promise.resolve(s.get(r,{onDownloadProgress:function(t){var r=Math.round(100*t.loaded/t.total);e.setState({downloadProgress:r})},responseType:"blob"})).then(function(t){return Promise.resolve(i.loadAsync(t.data)).then(function(t){var r=new Map,o=Object.values(t.files).map(function(e){try{var n=e.name,o=function(){if(!n.startsWith("__MACOSX/"))return Promise.resolve(t.file(e.name).async("blob")).then(function(e){e.name=n,r.set(n,e)})}();return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(o)).then(function(){e.setState({downloadInProgress:!1}),n(r)})})})}catch(e){return o(e)}return a&&a.then?a.then(void 0,o):a}(0,function(t){e.setState({error:t.message,downloadInProgress:!1})});return Promise.resolve(a&&a.then?a.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.render=function(){var t=this.state,r=t.downloadInProgress,n=t.downloadProgress,o=t.error;return e.createElement("div",{className:"_wfEBQ"},o&&e.createElement("div",{className:"mv-error"},"Error: ",o),r&&e.createElement("div",{className:"_wfEBQ"},n&&n>0?e.createElement("div",{className:"_puu7g"},"Downloading: ",n," %"):null))},r}(e.Component);_.propTypes={onLoadFiles:t.func.isRequired,url:t.string.isRequired};var O=function(t){function r(e){var r;return(r=t.call(this,e)||this).dropEl=null,r.inputEl=null,r.state={showSpinner:!1},r}M(r,t);var n=r.prototype;return n.componentDidMount=function(){var e=this,t=this.props.onLoadFiles,r=new i(this.dropEl,this.inputEl);r.on("drop",function(e){return t(e.files)}),r.on("dropstart",function(){return e.setState({showSpinner:!0})}),r.on("droperror",function(){return e.setState({showSpinner:!1})})},n.render=function(){var t=this,r=this.state.showSpinner;return e.createElement("main",{className:"_1aO4D"},e.createElement("div",{className:"_2Z2uK",ref:function(e){t.dropEl=e}},e.createElement("div",{className:"_3-R8b"},e.createElement("p",null,"Drag GLTF file, folder or ZIP archive here")),e.createElement("div",{className:"_2S_9r"},e.createElement("input",{multiple:"",name:"file-input[]",ref:function(e){t.inputEl=e},type:"file"}),e.createElement("label",{htmlFor:"file-input",onClick:function(){t.inputEl.click()}},e.createElement("svg",{height:"17",viewBox:"0 0 20 17",width:"20",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"})),e.createElement("span",null,"Upload")))),r&&e.createElement("div",{className:"_zvUkU"}))},r}(e.Component);O.propTypes={onLoadFiles:t.func.isRequired};var I={version:"0.0.2",generators:[{generator:"babylon.js glTF exporter for 3ds max 2017 *",name:"3DS Max exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Khronos Blender glTF 2.0 exporter",name:"Blender exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter",bugsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter/issues"},{generator:"blendergltf *",name:"Blender exporter",author:"Kupoman",type:"EXPORTER",docsURL:"https://github.com/Kupoman/blendergltf",bugsURL:"https://github.com/Kupoman/blendergltf/issues"},{generator:"COLLADA2GLTF",name:"COLLADA converter",author:"Khronos Group",type:"CONVERTER",docsURL:"https://github.com/KhronosGroup/COLLADA2GLTF",bugsURL:"https://github.com/KhronosGroup/COLLADA2GLTF/issues"},{generator:"FBX2glTF *",name:"FBX converter",author:"Facebook",type:"CONVERTER",docsURL:"https://github.com/facebookincubator/FBX2glTF",bugsURL:"https://github.com/facebookincubator/FBX2glTF/issues"},{generator:"Maya2glTF *",name:"Maya exporter",author:"Wonder Media Group",type:"EXPORTER",docsURL:"https://github.com/WonderMediaProductions/Maya2glTF",bugsURL:"https://github.com/WonderMediaProductions/Maya2glTF/issues"},{generator:"babylon.js glTF exporter for maya 2018 *",name:"Maya exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Microsoft GLTF Exporter *",name:"Microsoft exporter",author:"Microsoft",type:"EXPORTER",bugsText:"From the Feedback Hub on Windows, use the *Apps > Paint 3D* categorise."},{generator:"obj2gltf",name:"OBJ converter",author:"Analytical Graphics",type:"CONVERTER",docsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF",bugsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF/issues"},{generator:"Sketchfab (OSG glTF plugin)",name:"Sketchfab",author:"Sketchfab",type:"OTHER",docsURL:"https://sketchfab.com",bugsURL:"https://help.sketchfab.com/hc/en-us/articles/360000048623-Reporting-a-bug"},{generator:"Sketchup glTF Exporter by Centaur",name:"Sketchup exporter",author:"Centaur",type:"EXPORTER",docsURL:"https://extensions.sketchup.com/content/gltf-exporter"},{generator:"glTF Tools for Unity",name:"Unity exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/UnityGLTF",bugsURL:"https://github.com/KhronosGroup/UnityGLTF/issues"},{generator:"THREE.GLTFExporter",name:"three.js exporter",author:"The three.js authors",type:"EXPORTER",docsURL:"https://threejs.org/docs/#examples/exporters/GLTFExporter",bugsURL:"https://github.com/mrdoob/three.js/issues"}]},B=["Errors","Warnings","Infos","Hints"],N=function(){function e(e){var t=e.onError;this.handleSuccess=e.onSuccess,this.handleError=t}var t=e.prototype;return t.validate=function(e,t,r,n){var o=this;return fetch(e).then(function(e){return e.arrayBuffer()}).then(function(n){return T(new Uint8Array(n),{externalResourceFunction:function(n){return o.resolveExternalResource(n,e,t,r)}})}).then(function(e){return o.setReport(e,n)}).catch(function(e){return o.setReportException(e)})},t.resolveExternalResource=function(e,t,r,n){var o,s=a.extractUrlBase(t),i=r+decodeURI(e).replace(s,"").replace(/^(\.?\/)/,"");if(n.has(i)){var l=n.get(i);o=URL.createObjectURL(l)}return fetch(o||s+e).then(function(e){return e.arrayBuffer()}).then(function(e){return o&&URL.revokeObjectURL(o),new Uint8Array(e)})},t.setReport=function(e,t){var r,n,o=e&&e.info&&e.info.generator||"",s=I.generators.find(function(e){return-1===e.generator.indexOf("*")?e.generator===o:F(e.generator).test(o)});s&&s.name!==s.author&&(s.name=s.name+" by "+s.author),e.generator=s,e.issues.maxSeverity=-1,B.forEach(function(t,r){e.issues["num"+t]>0&&-1===e.issues.maxSeverity&&(e.issues.maxSeverity=r)}),e.errors=e.issues.messages.filter(function(e){return 0===e.severity}),e.warnings=e.issues.messages.filter(function(e){return 1===e.severity}),e.infos=e.issues.messages.filter(function(e){return 2===e.severity}),e.hints=e.issues.messages.filter(function(e){return 3===e.severity}),n={ACCESSOR_NON_UNIT:{message:"{count} accessor elements not of unit length: 0. [AGGREGATED]",pointerCounts:{}},ACCESSOR_ANIMATION_INPUT_NON_INCREASING:{message:"{count} animation input accessor elements not in ascending order. [AGGREGATED]",pointerCounts:{}}},(r=e).errors.forEach(function(e){n[e.code]&&(n[e.code].pointerCounts[e.pointer]||(n[e.code].pointerCounts[e.pointer]=0),n[e.code].pointerCounts[e.pointer]++)}),r.errors=r.errors.filter(function(e){return!n[e.code]||!n[e.code].pointerCounts[e.pointer]||n[e.code].pointerCounts[e.pointer]<2}),Object.keys(n).forEach(function(e){Object.keys(n[e].pointerCounts).forEach(function(t){r.errors.push({code:e,pointer:t,message:n[e].message.replace("{count}",n[e].pointerCounts[t])})})}),this.report=e,this.setResponse(t),this.handleSuccess(e)},t.setResponse=function(e){var t=e&&e.parser&&e.parser.json;if(t&&t.asset&&t.asset.extras){var r=t.asset.extras;this.report.info.extras={},r.author&&(this.report.info.extras.author=j(D(r.author))),r.license&&(this.report.info.extras.license=j(D(r.license))),r.source&&(this.report.info.extras.source=j(D(r.source))),r.title&&(this.report.info.extras.title=r.title)}},t.setReportException=function(e){this.handleError(e.message)},e}();function D(e){return e.replace(/&/g,"&amp").replace(/</g,"&lt").replace(/>/g,"&gt").replace(/"/g,"&quot").replace(/'/g,"&#039")}function j(e){return e.replace(/\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.]*[a-z0-9-+&@#\/%=~_|]/gim,'<a target="_blank" href="$&">$&</a>').replace(/(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim,'<a target="_blank" href="mailto:$1">$1</a>')}var H="[default]",z=(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&document,["map","aoMap","emissiveMap","glossinessMap","metalnessMap","normalMap","roughnessMap","specularMap"]);l.enabled=!0;var W=function(){function e(e,t){this.el=e,this.options=t,this.lights=[],this.content=null,this.mixer=null,this.clips=[],this.gui=null,this.options.environments.unshift({id:"",name:"None",path:null,format:".hdr"}),this.state={environment:this.options.environments[0].name,background:!1,playbackSpeed:1,actionStates:{},camera:H,backgroundColor:t.backgroundColor||"#1d1e20",wireframe:!1,skeleton:!1,grid:!0,addLights:!0,exposure:1,textureEncoding:"sRGB",ambientIntensity:.3,ambientColor:16777215,directIntensity:.8*Math.PI,directColor:16777215},this.report=null,this.prevTime=0,this.stats=new P,this.stats.dom.height="48px",[].forEach.call(this.stats.dom.children,function(e){e.style.display=""}),this.scene=new h;var r="assetgenerator"===t.preset?144/Math.PI:60;this.defaultCamera=new c(r,e.clientWidth/e.clientHeight,.01,1e3),this.activeCamera=this.defaultCamera,this.scene.add(this.defaultCamera),this.renderer=window.renderer=new d({antialias:!0}),this.renderer.physicallyCorrectLights=!0,this.renderer.outputEncoding=u,this.renderer.setClearColor(this.state.backgroundColor),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(e.clientWidth,e.clientHeight),this.pmremGenerator=new p(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.controls=new k(this.defaultCamera,this.renderer.domElement),this.controls.autoRotate=!1,this.controls.autoRotateSpeed=-10,this.controls.screenSpacePanning=!0,this.el.appendChild(this.renderer.domElement),this.cameraCtrl=null,this.cameraFolder=null,this.animFolder=null,this.animCtrls=[],this.morphFolder=null,this.morphCtrls=[],this.skeletonHelpers=[],this.gridHelper=null,this.axesHelper=null,this.addAxesHelper(),this.addGUI(),t.kiosk&&this.gui.close(),this.animate=this.animate.bind(this),requestAnimationFrame(this.animate),window.addEventListener("resize",this.resize.bind(this),!1)}var t=e.prototype;return t.animate=function(e){requestAnimationFrame(this.animate);var t=(e-this.prevTime)/1e3;this.controls.update(),this.stats.update(),this.mixer&&this.mixer.update(t),this.render(),this.prevTime=e},t.render=function(){this.renderer.render(this.scene,this.activeCamera),this.state.grid&&(this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesRenderer.render(this.axesScene,this.axesCamera))},t.resize=function(){var e=this.el.parentElement,t=e.clientHeight,r=e.clientWidth;this.defaultCamera.aspect=r/t,this.defaultCamera.updateProjectionMatrix(),this.renderer.setSize(r,t),this.axesCamera.aspect=this.axesDiv.clientWidth/this.axesDiv.clientHeight,this.axesCamera.updateProjectionMatrix(),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight)},t.destroy=function(){this.el.firstChild.remove()},t.load=function(e,t,r){var n=this,o=a.extractUrlBase(e);return new Promise(function(s,i){var a=new m;a.setURLModifier(function(e,n){var s=t+decodeURI(e).replace(o,"").replace(/^(\.?\/)/,"");if(r.has(s)){var i=r.get(s),a=URL.createObjectURL(i);return h.push(a),a}return(n||"")+e});var l=new U(a).setCrossOrigin("anonymous"),h=[];l.load(e,function(e){var t=e.scene||e.scenes[0],r=e.animations||[];if(!t)throw new Error("This model contains no scene, and cannot be viewed here. However, it may contain individual 3D resources.");n.setContent(t,r),h.forEach(URL.revokeObjectURL),s(e)},void 0,i)})},t.setContent=function(e,t){var r=this;this.clear();var n=(new f).setFromObject(e),o=n.getSize(new g).length(),s=n.getCenter(new g);this.controls.reset(),e.position.x+=e.position.x-s.x,e.position.y+=e.position.y-s.y,e.position.z+=e.position.z-s.z,this.controls.maxDistance=10*o,this.defaultCamera.near=o/100,this.defaultCamera.far=100*o,this.defaultCamera.updateProjectionMatrix(),this.options.cameraPosition?(this.defaultCamera.position.fromArray(this.options.cameraPosition),this.defaultCamera.lookAt(new g)):(this.defaultCamera.position.copy(s),this.defaultCamera.position.x+=o/2,this.defaultCamera.position.y+=o/5,this.defaultCamera.position.z+=o/2,this.defaultCamera.lookAt(s)),this.setCamera(H),this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesCamera.near=o/100,this.axesCamera.far=100*o,this.axesCamera.updateProjectionMatrix(),this.axesCorner.scale.set(o,o,o),this.controls.saveState(),this.scene.add(e),this.content=e,this.state.addLights=!0,this.content.traverse(function(e){e.isLight?r.state.addLights=!1:e.isMesh&&(e.material.depthWrite=!e.material.transparent)}),this.setClips(t),this.updateLights(),this.updateGUI(),this.updateEnvironment(),this.updateTextureEncoding(),this.updateDisplay(),window.content=this.content,console.info("[glTF Viewer] THREE.Scene exported as `window.content`."),this.printGraph(this.content)},t.printGraph=function(e){var t=this;console.group(" <"+e.type+"> "+e.name),e.children.forEach(function(e){return t.printGraph(e)}),console.groupEnd()},t.setClips=function(e){this.mixer&&(this.mixer.stopAllAction(),this.mixer.uncacheRoot(this.mixer.getRoot()),this.mixer=null),this.clips=e,e.length&&(this.mixer=new v(this.content))},t.playAllClips=function(){var e=this;this.clips.forEach(function(t){e.mixer.clipAction(t).reset().play(),e.state.actionStates[t.name]=!0})},t.setCamera=function(e){var t=this;e===H?(this.controls.enabled=!0,this.activeCamera=this.defaultCamera):(this.controls.enabled=!1,this.content.traverse(function(r){r.isCamera&&r.name===e&&(t.activeCamera=r)}))},t.updateTextureEncoding=function(){var e="sRGB"===this.state.textureEncoding?u:S;K(this.content,function(t){t.map&&(t.map.encoding=e),t.emissiveMap&&(t.emissiveMap.encoding=e),(t.map||t.emissiveMap)&&(t.needsUpdate=!0)})},t.updateLights=function(){var e=this.state,t=this.lights;e.addLights&&!t.length?this.addLights():!e.addLights&&t.length&&this.removeLights(),this.renderer.toneMappingExposure=e.exposure,2===t.length&&(t[0].intensity=e.ambientIntensity,t[0].color.setHex(e.ambientColor),t[1].intensity=e.directIntensity,t[1].color.setHex(e.directColor))},t.addLights=function(){var e=this.state;if("assetgenerator"===this.options.preset){var t=new E;return t.name="hemi_light",this.scene.add(t),void this.lights.push(t)}var r=new y(e.ambientColor,e.ambientIntensity);r.name="ambient_light",this.defaultCamera.add(r);var n=new x(e.directColor,e.directIntensity);n.position.set(.5,0,.866),n.name="main_light",this.defaultCamera.add(n),this.lights.push(r,n)},t.removeLights=function(){this.lights.forEach(function(e){return e.parent.remove(e)}),this.lights.length=0},t.updateEnvironment=function(){var e=this,t=this.options.environments.filter(function(t){return t.name===e.state.environment})[0];this.getCubeMapTexture(t).then(function(t){var r=t.envMap;e.scene.environment=r,e.state.background&&(e.scene.background=r)})},t.updateBackgroundColor=function(e){this.scene.background=new C(e)},t.getCubeMapTexture=function(e){var t=this,r=e.path;return r?new Promise(function(e,n){(new A).setDataType(b).load(r,function(r){var n=t.pmremGenerator.fromEquirectangular(r).texture;t.pmremGenerator.dispose(),e({envMap:n})},void 0,n)}):Promise.resolve({envMap:null})},t.updateDisplay=function(){var e=this;this.skeletonHelpers.length&&this.skeletonHelpers.forEach(function(t){return e.scene.remove(t)}),K(this.content,function(t){t.wireframe=e.state.wireframe}),this.content.traverse(function(t){if(t.isMesh&&t.skeleton&&e.state.skeleton){var r=new w(t.skeleton.bones[0].parent);r.material.linewidth=3,e.scene.add(r),e.skeletonHelpers.push(r)}}),this.state.grid!==Boolean(this.gridHelper)&&(this.state.grid?(this.gridHelper=new R,this.axesHelper=new L,this.axesHelper.renderOrder=999,this.axesHelper.onBeforeRender=function(e){return e.clearDepth()},this.scene.add(this.gridHelper),this.scene.add(this.axesHelper)):(this.scene.remove(this.gridHelper),this.scene.remove(this.axesHelper),this.gridHelper=null,this.axesHelper=null,this.axesRenderer.clear()))},t.addAxesHelper=function(){this.axesDiv=document.createElement("div"),this.el.appendChild(this.axesDiv),this.axesDiv.classList.add("axes");var e=this.axesDiv,t=e.clientWidth,r=e.clientHeight;this.axesScene=new h,this.axesCamera=new c(50,t/r,.1,10),this.axesScene.add(this.axesCamera),this.axesRenderer=new d({alpha:!0}),this.axesRenderer.setPixelRatio(window.devicePixelRatio),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight),this.axesCamera.up=this.defaultCamera.up,this.axesCorner=new L(5),this.axesScene.add(this.axesCorner),this.axesDiv.appendChild(this.axesRenderer.domElement)},t.addGUI=function(){var e=this,t=this.gui=new G({autoPlace:!1,width:260,hideable:!0}),r=t.addFolder("Display");r.add(this.state,"wireframe").onChange(function(){return e.updateDisplay()}),r.add(this.state,"grid").onChange(function(){return e.updateDisplay()}),r.addColor(this.state,"backgroundColor").onChange(function(t){return e.updateBackgroundColor(t)}),r.add(this.controls,"autoRotate"),r.add(this.controls,"screenSpacePanning");var n=t.addFolder("Lighting");n.add(this.state,"textureEncoding",["sRGB","Linear"]).onChange(function(){return e.updateTextureEncoding()}),n.add(this.renderer,"outputEncoding",{sRGB:u,Linear:S}).onChange(function(){e.renderer.outputEncoding=Number(e.renderer.outputEncoding),K(e.content,function(e){e.needsUpdate=!0})}),n.add(this.state,"environment",this.options.environments.map(function(e){return e.name})).onChange(function(){return e.updateEnvironment()}),[n.add(this.state,"exposure",0,6),n.add(this.state,"addLights").listen(),n.add(this.state,"ambientIntensity",0,6),n.addColor(this.state,"ambientColor"),n.add(this.state,"directIntensity",0,4),n.addColor(this.state,"directColor")].forEach(function(t){return t.onChange(function(){return e.updateLights()})}),this.animFolder=t.addFolder("Animation"),this.animFolder.domElement.style.display="none",this.animFolder.add(this.state,"playbackSpeed",0,1).onChange(function(t){e.mixer&&(e.mixer.timeScale=t)}),this.animFolder.add({playAll:function(){return e.playAllClips()}},"playAll"),this.morphFolder=t.addFolder("Morph Targets"),this.morphFolder.domElement.style.display="none",this.cameraFolder=t.addFolder("Cameras"),this.cameraFolder.domElement.style.display="none",this.reportFolder=t.addFolder("Report"),this.reportFolder.domElement.style.display="none";var o=t.addFolder("Performance"),s=document.createElement("li");this.stats.dom.style.position="static",s.appendChild(this.stats.dom),s.classList.add("gui-stats"),o.__ul.appendChild(s);var i=document.createElement("div");this.el.appendChild(i),i.classList.add("gui-wrap"),i.appendChild(t.domElement),t.open()},t.updateGUI=function(){var e=this;this.cameraFolder.domElement.style.display="none",this.morphCtrls.forEach(function(e){return e.remove()}),this.morphCtrls.length=0,this.morphFolder.domElement.style.display="none",this.animCtrls.forEach(function(e){return e.remove()}),this.animCtrls.length=0,this.animFolder.domElement.style.display="none";var t=[],r=[];if(this.content.traverse(function(e){e.isMesh&&e.morphTargetInfluences&&r.push(e),e.isCamera&&(e.name=e.name||"VIEWER__camera_"+(t.length+1),t.push(e.name))}),t.length){this.cameraFolder.domElement.style.display="",this.cameraCtrl&&this.cameraCtrl.remove();var n=[H].concat(t);this.cameraCtrl=this.cameraFolder.add(this.state,"camera",n),this.cameraCtrl.onChange(function(t){return e.setCamera(t)})}if(r.length&&(this.morphFolder.domElement.style.display="",r.forEach(function(t){if(t.morphTargetInfluences.length){var r=e.morphFolder.add({name:t.name||"Untitled"},"name");e.morphCtrls.push(r)}for(var n=function(r){var n=e.morphFolder.add(t.morphTargetInfluences,r,0,1,.01).listen();Object.keys(t.morphTargetDictionary).forEach(function(e){e&&t.morphTargetDictionary[e]===r&&n.name(e)}),e.morphCtrls.push(n)},o=0;o<t.morphTargetInfluences.length;o++)n(o)})),this.clips.length){this.animFolder.domElement.style.display="";var o=this.state.actionStates={};this.clips.forEach(function(t,r){var n;0===r?(o[t.name]=!0,(n=e.mixer.clipAction(t)).play()):o[t.name]=!1;var s=e.animFolder.add(o,t.name).listen();s.onChange(function(r){(n=n||e.mixer.clipAction(t)).setEffectiveTimeScale(1),r?n.play():n.stop()}),e.animCtrls.push(s)})}if(this.report&&this.reportFolder&&"object"==typeof this.report){var s=document.createElement("pre");s.classList.add("report-wrap"),s.appendChild(document.createTextNode(JSON.stringify(this.report,void 0,2))),this.reportFolder.__ul.appendChild(s)}},t.clear=function(){this.content&&(this.scene.remove(this.content),this.content.traverse(function(e){e.isMesh&&e.geometry.dispose()}),K(this.content,function(e){z.forEach(function(t){e[t]&&e[t].dispose()})}))},t.setReport=function(e){console.log("Set Report: ",e),this.report=e,this.updateGUI()},e}();function K(e,t){e.traverse(function(e){e.isMesh&&(Array.isArray(e.material)?e.material:[e.material]).forEach(t)})}var X=function(t){function o(n){var o;(o=t.call(this,n)||this).setErrorState=function(e){o.setState({errors:[].concat(o.state.errors,[e])})},o.createViewer=function(){if(o.viewerEl)return o.viewer=new W(o.viewerEl,o.options),o.viewer},o.view=function(e,t,r){o.viewer&&o.viewer.clear();var n=o.viewer||o.createViewer();if(n){var s="string"==typeof e?e:URL.createObjectURL(e);n.load(s,t,r).catch(function(e){o.onError(e),o.viewer.destroy()}).then(function(n){o.options.kiosk||o.validationCtrl.validate(s,t,r,n),"object"==typeof e&&URL.revokeObjectURL(s)}),o.forceUpdate()}},o.handleLoadComplete=function(e){var t,r;Array.from(e).forEach(function(e){var n=e[0],o=e[1];o.name.match(/\.(gltf|glb)$/i)&&(t=o,r=n.replace(o.name,""))}),t||o.onError("No .gltf or .glb asset found."),o.view(t,r,e)},o.onError=function(e){var t=(e||{}).message||e.toString();t.match(/ProgressEvent/)?t="Unable to retrieve this file. Check JS console and browser network tab.":t.match(/Unexpected token/)?t='Unable to parse file content. Verify that this file is valid. Error: "'+t+'"':e&&e.target&&e.target instanceof Image&&(t="Missing texture: "+e.target.src.split("/").pop()),o.setErrorState(t)},o.renderView=function(){var t=o.props.url;return t?e.createElement(_,{url:t,onLoadFiles:o.handleLoadComplete}):e.createElement(O,{onLoadFiles:o.handleLoadComplete})},o.handleToggleErrorsInfo=function(){o.setState({showErrors:!o.state.showErrors})},o.renderContent=function(){return e.createElement("div",{className:"_xB1cK",ref:function(e){o.viewerEl=e}},!o.viewer&&o.renderView())},o.renderError=function(t){var r=o.state,n=r.report;return e.createElement("div",{className:"_1BbDk"},e.createElement("div",{className:(r.showErrors?"":"hidden")+" mv-error-wrapper"},e.createElement("span",{className:"_3hzBn"},"Errors:"),e.createElement("button",{className:"_3iNj_",type:"button",onClick:o.handleToggleErrorsInfo},e.createElement("svg",{"data-name":"Layer 1",id:"Layer_1",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},e.createElement("title",null,"remove-delete-glyph"),e.createElement("polygon",{fill:"#ffffff",points:"512 86.78 425.22 0 256 169.22 86.78 0 0 86.78 169.22 256 0 425.22 86.78 512 256 342.78 425.22 511.99 512 425.22 342.78 256 512 86.78"}))),t.map(function(t,r){return e.createElement("div",{className:"mv-error",key:r},t.message&&e.createElement("span",null,"Code[",t.message,"]"),e.createElement("span",null,t.message))}),n&&"object"==typeof o.report&&e.createElement("pre",{className:"_3c7mJ"},e.createElement("span",{className:"_23UYM"},JSON.stringify(n,void 0,2)))))},o.gerErrorsList=function(){var e=o.state,t=e.errors,r=e.report,n=r&&r.errors,s=[];return t&&t.length>0&&t.forEach(function(e){e&&s.push({code:"C_ERR",message:e})}),n&&n.length>0&&s.push.apply(s,n),s};var s=location.hash?r.parse(location.hash):{};return o.options={environments:o.props.environments,kiosk:Boolean(s.kiosk),model:s.model||"",preset:s.preset||"",cameraPosition:s.cameraPosition?s.cameraPosition.split(",").map(Number):null},o.validationCtrl=new N({onSuccess:function(e){o.setState({report:e}),o.viewer&&o.viewer.setReport(e)},onError:function(e){return o.setErrorState(e?e.message?e.message:""+e:"Unknown")}}),o.viewer=null,o.viewerEl=document.body,o.state={report:{},errors:[],showErrors:!0},o}M(o,t);var s=o.prototype;return s.componentDidMount=function(){window.File&&window.FileReader&&window.FileList&&window.Blob?n.isWebGLAvailable()||this.setErrorState("WebGL is not supported in this browser."):this.setErrorState("The File APIs are not fully supported in this browser.")},s.render=function(){var t=this.gerErrorsList();return e.createElement("div",{className:"_yf3XL mv-general-wrapper"},t.length>0?this.renderError(t):this.renderContent())},o}(e.Component);X.propTypes={environments:t.array,url:t.string},X.defaultProps={environments:[],url:""};var J=function(t){return e.createElement(X,{environments:t.options.environments,url:t.url})};J.propTypes={options:t.shape({environments:t.array}),url:t.string},J.defaultProps={options:{environments:[]},url:""};export default J;
import e from"react";import t from"prop-types";import r from"query-string";import{WEBGL as n}from"three/examples/jsm/WebGL";import o from"jszip";import s from"axios";import{SimpleDropzone as i}from"simple-dropzone";import{LoaderUtils as a,Cache as l,Scene as h,PerspectiveCamera as c,WebGLRenderer as d,sRGBEncoding as u,PMREMGenerator as p,LoadingManager as m,Box3 as f,Vector3 as g,AnimationMixer as v,HemisphereLight as E,AmbientLight as y,DirectionalLight as x,Color as C,UnsignedByteType as b,SkeletonHelper as w,GridHelper as R,AxesHelper as L,LinearEncoding as S}from"three";import F from"glob-to-regexp";import{validateBytes as T}from"gltf-validator";import P from"three/examples/jsm/libs/stats.module";import{GLTFLoader as U}from"three/examples/jsm/loaders/GLTFLoader";import{OrbitControls as k}from"three/examples/jsm/controls/OrbitControls";import{RGBELoader as A}from"three/examples/jsm/loaders/RGBELoader";import{GUI as G}from"dat.gui";function M(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var _=function(t){function r(e){var r;return(r=t.call(this,e)||this).state={downloadInProgress:!1,downloadProgress:0,error:""},r}M(r,t);var n=r.prototype;return n.componentDidMount=function(){try{return Promise.resolve(this.downloadFile()).then(function(){})}catch(e){return Promise.reject(e)}},n.downloadFile=function(){try{var e=this,t=e.props,r=t.url,n=t.onLoadFiles,i=new o;e.setState({downloadInProgress:!0,downloadProgress:0,error:""});var a=function(t,o){try{var a=Promise.resolve(s.get(r,{onDownloadProgress:function(t){var r=Math.round(100*t.loaded/t.total);e.setState({downloadProgress:r})},responseType:"blob"})).then(function(t){return Promise.resolve(i.loadAsync(t.data)).then(function(t){var r=new Map,o=Object.values(t.files).map(function(e){try{var n=e.name,o=function(){if(!n.startsWith("__MACOSX/"))return Promise.resolve(t.file(e.name).async("blob")).then(function(e){e.name=n,r.set(n,e)})}();return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(o)).then(function(){e.setState({downloadInProgress:!1}),n(r)})})})}catch(e){return o(e)}return a&&a.then?a.then(void 0,o):a}(0,function(t){e.setState({error:t.message,downloadInProgress:!1})});return Promise.resolve(a&&a.then?a.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.render=function(){var t=this.state,r=t.downloadInProgress,n=t.downloadProgress,o=t.error;return e.createElement("div",{className:"_wfEBQ"},o&&e.createElement("div",{className:"mv-error"},"Error: ",o),r&&e.createElement("div",{className:"_wfEBQ"},n&&n>0?e.createElement("div",{className:"_puu7g"},"Downloading: ",n," %"):null))},r}(e.Component);_.propTypes={onLoadFiles:t.func.isRequired,url:t.string.isRequired};var O=function(t){function r(e){var r;return(r=t.call(this,e)||this).dropEl=null,r.inputEl=null,r.state={showSpinner:!1},r}M(r,t);var n=r.prototype;return n.componentDidMount=function(){var e=this,t=this.props.onLoadFiles,r=new i(this.dropEl,this.inputEl);r.on("drop",function(e){return t(e.files)}),r.on("dropstart",function(){return e.setState({showSpinner:!0})}),r.on("droperror",function(){return e.setState({showSpinner:!1})})},n.render=function(){var t=this,r=this.state.showSpinner;return e.createElement("main",{className:"_1aO4D"},e.createElement("div",{className:"_2Z2uK",ref:function(e){t.dropEl=e}},e.createElement("div",{className:"_3-R8b"},e.createElement("p",null,"Drag GLTF file, folder or ZIP archive here")),e.createElement("div",{className:"_2S_9r"},e.createElement("input",{multiple:"",name:"file-input[]",ref:function(e){t.inputEl=e},type:"file"}),e.createElement("label",{htmlFor:"file-input",onClick:function(){t.inputEl.click()}},e.createElement("svg",{height:"17",viewBox:"0 0 20 17",width:"20",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"})),e.createElement("span",null,"Upload")))),r&&e.createElement("div",{className:"_zvUkU"}))},r}(e.Component);O.propTypes={onLoadFiles:t.func.isRequired};var I={version:"0.0.2",generators:[{generator:"babylon.js glTF exporter for 3ds max 2017 *",name:"3DS Max exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Khronos Blender glTF 2.0 exporter",name:"Blender exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter",bugsURL:"https://github.com/KhronosGroup/glTF-Blender-Exporter/issues"},{generator:"blendergltf *",name:"Blender exporter",author:"Kupoman",type:"EXPORTER",docsURL:"https://github.com/Kupoman/blendergltf",bugsURL:"https://github.com/Kupoman/blendergltf/issues"},{generator:"COLLADA2GLTF",name:"COLLADA converter",author:"Khronos Group",type:"CONVERTER",docsURL:"https://github.com/KhronosGroup/COLLADA2GLTF",bugsURL:"https://github.com/KhronosGroup/COLLADA2GLTF/issues"},{generator:"FBX2glTF *",name:"FBX converter",author:"Facebook",type:"CONVERTER",docsURL:"https://github.com/facebookincubator/FBX2glTF",bugsURL:"https://github.com/facebookincubator/FBX2glTF/issues"},{generator:"Maya2glTF *",name:"Maya exporter",author:"Wonder Media Group",type:"EXPORTER",docsURL:"https://github.com/WonderMediaProductions/Maya2glTF",bugsURL:"https://github.com/WonderMediaProductions/Maya2glTF/issues"},{generator:"babylon.js glTF exporter for maya 2018 *",name:"Maya exporter",author:"The BabylonJS authors",type:"EXPORTER",docsURL:"https://github.com/BabylonJS/Exporters",bugsURL:"https://github.com/BabylonJS/Exporters/issues"},{generator:"Microsoft GLTF Exporter *",name:"Microsoft exporter",author:"Microsoft",type:"EXPORTER",bugsText:"From the Feedback Hub on Windows, use the *Apps > Paint 3D* categorise."},{generator:"obj2gltf",name:"OBJ converter",author:"Analytical Graphics",type:"CONVERTER",docsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF",bugsURL:"https://github.com/AnalyticalGraphicsInc/OBJ2GLTF/issues"},{generator:"Sketchfab (OSG glTF plugin)",name:"Sketchfab",author:"Sketchfab",type:"OTHER",docsURL:"https://sketchfab.com",bugsURL:"https://help.sketchfab.com/hc/en-us/articles/360000048623-Reporting-a-bug"},{generator:"Sketchup glTF Exporter by Centaur",name:"Sketchup exporter",author:"Centaur",type:"EXPORTER",docsURL:"https://extensions.sketchup.com/content/gltf-exporter"},{generator:"glTF Tools for Unity",name:"Unity exporter",author:"Khronos Group",type:"EXPORTER",docsURL:"https://github.com/KhronosGroup/UnityGLTF",bugsURL:"https://github.com/KhronosGroup/UnityGLTF/issues"},{generator:"THREE.GLTFExporter",name:"three.js exporter",author:"The three.js authors",type:"EXPORTER",docsURL:"https://threejs.org/docs/#examples/exporters/GLTFExporter",bugsURL:"https://github.com/mrdoob/three.js/issues"}]},B=["Errors","Warnings","Infos","Hints"],N=function(){function e(e){var t=e.onError;this.handleSuccess=e.onSuccess,this.handleError=t}var t=e.prototype;return t.validate=function(e,t,r,n){var o=this;return fetch(e).then(function(e){return e.arrayBuffer()}).then(function(n){return T(new Uint8Array(n),{externalResourceFunction:function(n){return o.resolveExternalResource(n,e,t,r)}})}).then(function(e){return o.setReport(e,n)}).catch(function(e){return o.setReportException(e)})},t.resolveExternalResource=function(e,t,r,n){var o,s=a.extractUrlBase(t),i=r+decodeURI(e).replace(s,"").replace(/^(\.?\/)/,"");if(n.has(i)){var l=n.get(i);o=URL.createObjectURL(l)}return fetch(o||s+e).then(function(e){return e.arrayBuffer()}).then(function(e){return o&&URL.revokeObjectURL(o),new Uint8Array(e)})},t.setReport=function(e,t){var r,n,o=e&&e.info&&e.info.generator||"",s=I.generators.find(function(e){return-1===e.generator.indexOf("*")?e.generator===o:F(e.generator).test(o)});s&&s.name!==s.author&&(s.name=s.name+" by "+s.author),e.generator=s,e.issues.maxSeverity=-1,B.forEach(function(t,r){e.issues["num"+t]>0&&-1===e.issues.maxSeverity&&(e.issues.maxSeverity=r)}),e.errors=e.issues.messages.filter(function(e){return 0===e.severity}),e.warnings=e.issues.messages.filter(function(e){return 1===e.severity}),e.infos=e.issues.messages.filter(function(e){return 2===e.severity}),e.hints=e.issues.messages.filter(function(e){return 3===e.severity}),n={ACCESSOR_NON_UNIT:{message:"{count} accessor elements not of unit length: 0. [AGGREGATED]",pointerCounts:{}},ACCESSOR_ANIMATION_INPUT_NON_INCREASING:{message:"{count} animation input accessor elements not in ascending order. [AGGREGATED]",pointerCounts:{}}},(r=e).errors.forEach(function(e){n[e.code]&&(n[e.code].pointerCounts[e.pointer]||(n[e.code].pointerCounts[e.pointer]=0),n[e.code].pointerCounts[e.pointer]++)}),r.errors=r.errors.filter(function(e){return!n[e.code]||!n[e.code].pointerCounts[e.pointer]||n[e.code].pointerCounts[e.pointer]<2}),Object.keys(n).forEach(function(e){Object.keys(n[e].pointerCounts).forEach(function(t){r.errors.push({code:e,pointer:t,message:n[e].message.replace("{count}",n[e].pointerCounts[t])})})}),this.report=e,this.setResponse(t),this.handleSuccess(e)},t.setResponse=function(e){var t=e&&e.parser&&e.parser.json;if(t&&t.asset&&t.asset.extras){var r=t.asset.extras;this.report.info.extras={},r.author&&(this.report.info.extras.author=j(D(r.author))),r.license&&(this.report.info.extras.license=j(D(r.license))),r.source&&(this.report.info.extras.source=j(D(r.source))),r.title&&(this.report.info.extras.title=r.title)}},t.setReportException=function(e){this.handleError(e.message)},e}();function D(e){return e.replace(/&/g,"&amp").replace(/</g,"&lt").replace(/>/g,"&gt").replace(/"/g,"&quot").replace(/'/g,"&#039")}function j(e){return e.replace(/\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.]*[a-z0-9-+&@#\/%=~_|]/gim,'<a target="_blank" href="$&">$&</a>').replace(/(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim,'<a target="_blank" href="mailto:$1">$1</a>')}var H="[default]",z=(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&document,["map","aoMap","emissiveMap","glossinessMap","metalnessMap","normalMap","roughnessMap","specularMap"]);l.enabled=!0;var W=function(){function e(e,t){this.el=e,this.options=t,this.lights=[],this.content=null,this.mixer=null,this.clips=[],this.gui=null,this.options.environments.unshift({id:"",name:"None",path:null,format:".hdr"}),this.state={environment:this.options.environments[0].name,background:!1,playbackSpeed:1,actionStates:{},camera:H,backgroundColor:t.backgroundColor||"#1d1e20",wireframe:!1,skeleton:!1,grid:!0,addLights:!0,exposure:1,textureEncoding:"sRGB",ambientIntensity:.3,ambientColor:16777215,directIntensity:.8*Math.PI,directColor:16777215},this.report=null,this.prevTime=0,this.stats=new P,this.stats.dom.height="48px",[].forEach.call(this.stats.dom.children,function(e){e.style.display=""}),this.scene=new h;var r="assetgenerator"===t.preset?144/Math.PI:60;this.defaultCamera=new c(r,e.clientWidth/e.clientHeight,.01,1e3),this.activeCamera=this.defaultCamera,this.scene.add(this.defaultCamera),this.renderer=window.renderer=new d({antialias:!0}),this.renderer.physicallyCorrectLights=!0,this.renderer.outputEncoding=u,this.renderer.setClearColor(this.state.backgroundColor),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(e.clientWidth,e.clientHeight),this.pmremGenerator=new p(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.controls=new k(this.defaultCamera,this.renderer.domElement),this.controls.autoRotate=!1,this.controls.autoRotateSpeed=-10,this.controls.screenSpacePanning=!0,this.el.appendChild(this.renderer.domElement),this.cameraCtrl=null,this.cameraFolder=null,this.animFolder=null,this.animCtrls=[],this.morphFolder=null,this.morphCtrls=[],this.skeletonHelpers=[],this.gridHelper=null,this.axesHelper=null,this.addAxesHelper(),this.addGUI(),t.kiosk&&this.gui.close(),this.animate=this.animate.bind(this),requestAnimationFrame(this.animate),window.addEventListener("resize",this.resize.bind(this),!1)}var t=e.prototype;return t.animate=function(e){requestAnimationFrame(this.animate);var t=(e-this.prevTime)/1e3;this.controls.update(),this.stats.update(),this.mixer&&this.mixer.update(t),this.render(),this.prevTime=e},t.render=function(){this.renderer.render(this.scene,this.activeCamera),this.state.grid&&(this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesRenderer.render(this.axesScene,this.axesCamera))},t.resize=function(){var e=this.el.parentElement,t=e.clientHeight,r=e.clientWidth;this.defaultCamera.aspect=r/t,this.defaultCamera.updateProjectionMatrix(),this.renderer.setSize(r,t),this.axesCamera.aspect=this.axesDiv.clientWidth/this.axesDiv.clientHeight,this.axesCamera.updateProjectionMatrix(),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight)},t.destroy=function(){this.el.firstChild.remove()},t.load=function(e,t,r){var n=this,o=a.extractUrlBase(e);return new Promise(function(s,i){var a=new m;a.setURLModifier(function(e,n){var s=t+decodeURI(e).replace(o,"").replace(/^(\.?\/)/,"");if(r.has(s)){var i=r.get(s),a=URL.createObjectURL(i);return h.push(a),a}return(n||"")+e});var l=new U(a).setCrossOrigin("anonymous"),h=[];l.load(e,function(e){var t=e.scene||e.scenes[0],r=e.animations||[];if(!t)throw new Error("This model contains no scene, and cannot be viewed here. However, it may contain individual 3D resources.");n.setContent(t,r),h.forEach(URL.revokeObjectURL),s(e)},void 0,i)})},t.setContent=function(e,t){var r=this;this.clear();var n=(new f).setFromObject(e),o=n.getSize(new g).length(),s=n.getCenter(new g);this.controls.reset(),e.position.x+=e.position.x-s.x,e.position.y+=e.position.y-s.y,e.position.z+=e.position.z-s.z,this.controls.maxDistance=10*o,this.defaultCamera.near=o/100,this.defaultCamera.far=100*o,this.defaultCamera.updateProjectionMatrix(),this.options.cameraPosition?(this.defaultCamera.position.fromArray(this.options.cameraPosition),this.defaultCamera.lookAt(new g)):(this.defaultCamera.position.copy(s),this.defaultCamera.position.x+=o/2,this.defaultCamera.position.y+=o/5,this.defaultCamera.position.z+=o/2,this.defaultCamera.lookAt(s)),this.setCamera(H),this.axesCamera.position.copy(this.defaultCamera.position),this.axesCamera.lookAt(this.axesScene.position),this.axesCamera.near=o/100,this.axesCamera.far=100*o,this.axesCamera.updateProjectionMatrix(),this.axesCorner.scale.set(o,o,o),this.controls.saveState(),this.scene.add(e),this.content=e,this.state.addLights=!0,this.content.traverse(function(e){e.isLight?r.state.addLights=!1:e.isMesh&&(e.material.depthWrite=!e.material.transparent)}),this.setClips(t),this.updateLights(),this.updateGUI(),this.updateEnvironment(),this.updateTextureEncoding(),this.updateDisplay(),window.content=this.content,console.info("[glTF Viewer] THREE.Scene exported as `window.content`."),this.printGraph(this.content)},t.printGraph=function(e){var t=this;console.group(" <"+e.type+"> "+e.name),e.children.forEach(function(e){return t.printGraph(e)}),console.groupEnd()},t.setClips=function(e){this.mixer&&(this.mixer.stopAllAction(),this.mixer.uncacheRoot(this.mixer.getRoot()),this.mixer=null),this.clips=e,e.length&&(this.mixer=new v(this.content))},t.playAllClips=function(){var e=this;this.clips.forEach(function(t){e.mixer.clipAction(t).reset().play(),e.state.actionStates[t.name]=!0})},t.setCamera=function(e){var t=this;e===H?(this.controls.enabled=!0,this.activeCamera=this.defaultCamera):(this.controls.enabled=!1,this.content.traverse(function(r){r.isCamera&&r.name===e&&(t.activeCamera=r)}))},t.updateTextureEncoding=function(){var e="sRGB"===this.state.textureEncoding?u:S;K(this.content,function(t){t.map&&(t.map.encoding=e),t.emissiveMap&&(t.emissiveMap.encoding=e),(t.map||t.emissiveMap)&&(t.needsUpdate=!0)})},t.updateLights=function(){var e=this.state,t=this.lights;e.addLights&&!t.length?this.addLights():!e.addLights&&t.length&&this.removeLights(),this.renderer.toneMappingExposure=e.exposure,2===t.length&&(t[0].intensity=e.ambientIntensity,t[0].color.setHex(e.ambientColor),t[1].intensity=e.directIntensity,t[1].color.setHex(e.directColor))},t.addLights=function(){var e=this.state;if("assetgenerator"===this.options.preset){var t=new E;return t.name="hemi_light",this.scene.add(t),void this.lights.push(t)}var r=new y(e.ambientColor,e.ambientIntensity);r.name="ambient_light",this.defaultCamera.add(r);var n=new x(e.directColor,e.directIntensity);n.position.set(.5,0,.866),n.name="main_light",this.defaultCamera.add(n),this.lights.push(r,n)},t.removeLights=function(){this.lights.forEach(function(e){return e.parent.remove(e)}),this.lights.length=0},t.updateEnvironment=function(){var e=this,t=this.options.environments.filter(function(t){return t.name===e.state.environment})[0];this.getCubeMapTexture(t).then(function(t){var r=t.envMap;e.scene.environment=r,e.state.background&&(e.scene.background=r)})},t.updateBackgroundColor=function(e){this.scene.background=new C(e)},t.getCubeMapTexture=function(e){var t=this,r=e.path;return r?new Promise(function(e,n){(new A).setDataType(b).load(r,function(r){var n=t.pmremGenerator.fromEquirectangular(r).texture;t.pmremGenerator.dispose(),e({envMap:n})},void 0,n)}):Promise.resolve({envMap:null})},t.updateDisplay=function(){var e=this;this.skeletonHelpers.length&&this.skeletonHelpers.forEach(function(t){return e.scene.remove(t)}),K(this.content,function(t){t.wireframe=e.state.wireframe}),this.content.traverse(function(t){if(t.isMesh&&t.skeleton&&e.state.skeleton){var r=new w(t.skeleton.bones[0].parent);r.material.linewidth=3,e.scene.add(r),e.skeletonHelpers.push(r)}}),this.state.grid!==Boolean(this.gridHelper)&&(this.state.grid?(this.gridHelper=new R,this.axesHelper=new L,this.axesHelper.renderOrder=999,this.axesHelper.onBeforeRender=function(e){return e.clearDepth()},this.scene.add(this.gridHelper),this.scene.add(this.axesHelper)):(this.scene.remove(this.gridHelper),this.scene.remove(this.axesHelper),this.gridHelper=null,this.axesHelper=null,this.axesRenderer.clear()))},t.addAxesHelper=function(){this.axesDiv=document.createElement("div"),this.el.appendChild(this.axesDiv),this.axesDiv.classList.add("axes");var e=this.axesDiv,t=e.clientWidth,r=e.clientHeight;this.axesScene=new h,this.axesCamera=new c(50,t/r,.1,10),this.axesScene.add(this.axesCamera),this.axesRenderer=new d({alpha:!0}),this.axesRenderer.setPixelRatio(window.devicePixelRatio),this.axesRenderer.setSize(this.axesDiv.clientWidth,this.axesDiv.clientHeight),this.axesCamera.up=this.defaultCamera.up,this.axesCorner=new L(5),this.axesScene.add(this.axesCorner),this.axesDiv.appendChild(this.axesRenderer.domElement)},t.addGUI=function(){var e=this,t=this.gui=new G({autoPlace:!1,width:260,hideable:!0}),r=t.addFolder("Display");r.add(this.state,"wireframe").onChange(function(){return e.updateDisplay()}),r.add(this.state,"grid").onChange(function(){return e.updateDisplay()}),r.addColor(this.state,"backgroundColor").onChange(function(t){return e.updateBackgroundColor(t)}),r.add(this.controls,"autoRotate"),r.add(this.controls,"screenSpacePanning");var n=t.addFolder("Lighting");n.add(this.state,"textureEncoding",["sRGB","Linear"]).onChange(function(){return e.updateTextureEncoding()}),n.add(this.renderer,"outputEncoding",{sRGB:u,Linear:S}).onChange(function(){e.renderer.outputEncoding=Number(e.renderer.outputEncoding),K(e.content,function(e){e.needsUpdate=!0})}),n.add(this.state,"environment",this.options.environments.map(function(e){return e.name})).onChange(function(){return e.updateEnvironment()}),[n.add(this.state,"exposure",0,6),n.add(this.state,"addLights").listen(),n.add(this.state,"ambientIntensity",0,6),n.addColor(this.state,"ambientColor"),n.add(this.state,"directIntensity",0,4),n.addColor(this.state,"directColor")].forEach(function(t){return t.onChange(function(){return e.updateLights()})}),this.animFolder=t.addFolder("Animation"),this.animFolder.domElement.style.display="none",this.animFolder.add(this.state,"playbackSpeed",0,1).onChange(function(t){e.mixer&&(e.mixer.timeScale=t)}),this.animFolder.add({playAll:function(){return e.playAllClips()}},"playAll"),this.morphFolder=t.addFolder("Morph Targets"),this.morphFolder.domElement.style.display="none",this.cameraFolder=t.addFolder("Cameras"),this.cameraFolder.domElement.style.display="none",this.reportFolder=t.addFolder("Report"),this.reportFolder.domElement.style.display="none";var o=t.addFolder("Performance"),s=document.createElement("li");this.stats.dom.style.position="static",s.appendChild(this.stats.dom),s.classList.add("gui-stats"),o.__ul.appendChild(s);var i=document.createElement("div");this.el.appendChild(i),i.classList.add("gui-wrap"),i.appendChild(t.domElement),t.open()},t.updateGUI=function(){var e=this;this.cameraFolder.domElement.style.display="none",this.morphCtrls.forEach(function(e){return e.remove()}),this.morphCtrls.length=0,this.morphFolder.domElement.style.display="none",this.animCtrls.forEach(function(e){return e.remove()}),this.animCtrls.length=0,this.animFolder.domElement.style.display="none";var t=[],r=[];if(this.content.traverse(function(e){e.isMesh&&e.morphTargetInfluences&&r.push(e),e.isCamera&&(e.name=e.name||"VIEWER__camera_"+(t.length+1),t.push(e.name))}),t.length){this.cameraFolder.domElement.style.display="",this.cameraCtrl&&this.cameraCtrl.remove();var n=[H].concat(t);this.cameraCtrl=this.cameraFolder.add(this.state,"camera",n),this.cameraCtrl.onChange(function(t){return e.setCamera(t)})}if(r.length&&(this.morphFolder.domElement.style.display="",r.forEach(function(t){if(t.morphTargetInfluences.length){var r=e.morphFolder.add({name:t.name||"Untitled"},"name");e.morphCtrls.push(r)}for(var n=function(r){var n=e.morphFolder.add(t.morphTargetInfluences,r,0,1,.01).listen();Object.keys(t.morphTargetDictionary).forEach(function(e){e&&t.morphTargetDictionary[e]===r&&n.name(e)}),e.morphCtrls.push(n)},o=0;o<t.morphTargetInfluences.length;o++)n(o)})),this.clips.length){this.animFolder.domElement.style.display="";var o=this.state.actionStates={};this.clips.forEach(function(t,r){var n;0===r?(o[t.name]=!0,(n=e.mixer.clipAction(t)).play()):o[t.name]=!1;var s=e.animFolder.add(o,t.name).listen();s.onChange(function(r){(n=n||e.mixer.clipAction(t)).setEffectiveTimeScale(1),r?n.play():n.stop()}),e.animCtrls.push(s)})}if(this.report&&this.reportFolder&&"object"==typeof this.report){var s=document.createElement("pre");s.classList.add("report-wrap"),s.appendChild(document.createTextNode(JSON.stringify(this.report,void 0,2))),this.reportFolder.__ul.appendChild(s)}},t.clear=function(){this.content&&(this.scene.remove(this.content),this.content.traverse(function(e){e.isMesh&&e.geometry.dispose()}),K(this.content,function(e){z.forEach(function(t){e[t]&&e[t].dispose()})}))},t.setReport=function(e){console.log("Set Report: ",e),this.report=e,this.updateGUI()},e}();function K(e,t){e.traverse(function(e){e.isMesh&&(Array.isArray(e.material)?e.material:[e.material]).forEach(t)})}var X=function(t){function o(n){var o;(o=t.call(this,n)||this).setErrorState=function(e){o.setState({errors:[].concat(o.state.errors,[e])})},o.createViewer=function(){if(o.viewerEl)return o.viewer=new W(o.viewerEl,o.options),o.viewer},o.view=function(e,t,r){o.viewer&&o.viewer.clear();var n=o.viewer||o.createViewer();if(n){var s="string"==typeof e?e:URL.createObjectURL(e);n.load(s,t,r).catch(function(e){o.onError(e),o.viewer.destroy()}).then(function(n){o.options.kiosk||o.validationCtrl.validate(s,t,r,n),"object"==typeof e&&URL.revokeObjectURL(s)}),o.forceUpdate()}},o.handleLoadComplete=function(e){var t,r;Array.from(e).forEach(function(e){var n=e[0],o=e[1];o.name.match(/\.(gltf|glb)$/i)&&(t=o,r=n.replace(o.name,""))}),t||o.onError("No .gltf or .glb asset found."),o.view(t,r,e)},o.onError=function(e){var t=(e||{}).message||e.toString();t.match(/ProgressEvent/)?t="Unable to retrieve this file. Check JS console and browser network tab.":t.match(/Unexpected token/)?t='Unable to parse file content. Verify that this file is valid. Error: "'+t+'"':e&&e.target&&e.target instanceof Image&&(t="Missing texture: "+e.target.src.split("/").pop()),o.setErrorState(t)},o.renderView=function(){var t=o.props.url;return t?e.createElement(_,{url:t,onLoadFiles:o.handleLoadComplete}):e.createElement(O,{onLoadFiles:o.handleLoadComplete})},o.handleToggleErrorsInfo=function(){o.setState({showErrors:!o.state.showErrors})},o.renderContent=function(){return e.createElement("div",{className:"_xB1cK",ref:function(e){o.viewerEl=e}},!o.viewer&&o.renderView())},o.renderError=function(t){var r=o.state,n=r.report;return e.createElement("div",{className:"_1BbDk"},e.createElement("div",{className:(r.showErrors?"":"hidden")+" mv-error-wrapper"},e.createElement("span",{className:"_3hzBn"},"Errors:"),e.createElement("button",{className:"_3iNj_",type:"button",onClick:o.handleToggleErrorsInfo},e.createElement("svg",{"data-name":"Layer 1",id:"Layer_1",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},e.createElement("title",null,"remove-delete-glyph"),e.createElement("polygon",{fill:"#ffffff",points:"512 86.78 425.22 0 256 169.22 86.78 0 0 86.78 169.22 256 0 425.22 86.78 512 256 342.78 425.22 511.99 512 425.22 342.78 256 512 86.78"}))),t.map(function(t,r){return e.createElement("div",{className:"mv-error",key:r},t.message&&e.createElement("span",null,"Code[",t.message,"]"),e.createElement("span",null,t.message))}),n&&"object"==typeof n&&e.createElement("pre",{className:"_3c7mJ"},e.createElement("span",{className:"_23UYM"},JSON.stringify(n,void 0,2)))))},o.gerErrorsList=function(){var e=o.state,t=e.errors,r=e.report,n=r&&r.errors,s=[];return t&&t.length>0&&t.forEach(function(e){e&&s.push({code:"C_ERR",message:e})}),n&&n.length>0&&s.push.apply(s,n),s};var s=location.hash?r.parse(location.hash):{};return o.options={environments:o.props.environments,kiosk:Boolean(s.kiosk),model:s.model||"",preset:s.preset||"",cameraPosition:s.cameraPosition?s.cameraPosition.split(",").map(Number):null},o.validationCtrl=new N({onSuccess:function(e){o.setState({report:e}),o.viewer&&o.viewer.setReport(e)},onError:function(e){return o.setErrorState(e?e.message?e.message:""+e:"Unknown")}}),o.viewer=null,o.viewerEl=document.body,o.state={report:{},errors:[],showErrors:!0},o}M(o,t);var s=o.prototype;return s.componentDidMount=function(){window.File&&window.FileReader&&window.FileList&&window.Blob?n.isWebGLAvailable()||this.setErrorState("WebGL is not supported in this browser."):this.setErrorState("The File APIs are not fully supported in this browser.")},s.render=function(){var t=this.gerErrorsList();return e.createElement("div",{className:"_yf3XL mv-general-wrapper"},t.length>0?this.renderError(t):this.renderContent())},o}(e.Component);X.propTypes={environments:t.array,url:t.string},X.defaultProps={environments:[],url:""};var J=function(t){return e.createElement(X,{environments:t.options.environments,url:t.url})};J.propTypes={options:t.shape({environments:t.array}),url:t.string},J.defaultProps={options:{environments:[]},url:""};export default J;
//# sourceMappingURL=index.modern.js.map
{
"name": "@wannaby/wanna-model-viewer",
"version": "0.0.6",
"version": "0.0.7",
"description": "3D Model Previewer",

@@ -5,0 +5,0 @@ "author": "Igor Kozlovsky <igor@wanna.by>",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc